Related: #i121532# unified processor2d usages from other modules

(cherry picked from commit f371f92c89d296207ef9a219518ba8caa481bcfe)

Conflicts:
	drawinglayer/Library_drawinglayer.mk
	drawinglayer/Package_inc.mk
	drawinglayer/inc/drawinglayer/processor2d/vclmetafileprocessor2d.hxx
	drawinglayer/inc/drawinglayer/processor2d/vclpixelprocessor2d.hxx
	drawinglayer/inc/drawinglayer/processor2d/vclprocessor2d.hxx
	drawinglayer/inc/drawinglayer/processor3d/defaultprocessor3d.hxx
	drawinglayer/inc/drawinglayer/processor3d/zbufferprocessor3d.hxx
	drawinglayer/source/processor2d/processor2dtools.cxx
	svx/Package_inc.mk
	svx/source/sdr/contact/objectcontactofobjlistpainter.cxx
	svx/source/sdr/contact/objectcontactofpageview.cxx
	svx/source/sdr/overlay/overlaymanager.cxx
	svx/source/sdr/overlay/overlayprimitive2dsequenceobject.cxx
	svx/source/svdraw/svdedxv.cxx
	sw/source/core/doc/notxtfrm.cxx

Change-Id: Iea4a79133f4375cb0625b187eeb3d727b50ff0fe

Related: #i121532# missing defaultprocessor3d.hxx breaks build

Revision 1440387 changed defaultprocessor3d.hxx to be no longer "delivered".
It is needed in svx by being included indirectly via cutfindprocessor3d.hxx.
Fixing the build breaker by "delivering" the missing header file again.

(cherry picked from commit 3bd3ea81c8d54109950b435225c3aac011d56c3d)

Conflicts:
	drawinglayer/Package_inc.mk

Change-Id: If0dcea79cfff4cf20a1ca1af3d0a34f86eb2e24e

Related: #i121532# removed include to no longer existing file

(cherry picked from commit a4c602d9b5b17e220dbaa4dec2cef91d39945154)

Conflicts:
	sw/source/core/doc/notxtfrm.cxx

Change-Id: I7dc2f99684fa285225dfdcfc7add553695b8412e
This commit is contained in:
Armin Le Grand
2013-01-30 12:10:59 +00:00
committed by Caolán McNamara
parent a074ee056a
commit d1310b7628
15 changed files with 199 additions and 60 deletions

View File

@@ -134,6 +134,7 @@ $(eval $(call gb_Library_add_exception_objects,drawinglayer,\
drawinglayer/source/primitive3d/textureprimitive3d \ drawinglayer/source/primitive3d/textureprimitive3d \
drawinglayer/source/primitive3d/transformprimitive3d \ drawinglayer/source/primitive3d/transformprimitive3d \
drawinglayer/source/processor2d/baseprocessor2d \ drawinglayer/source/processor2d/baseprocessor2d \
drawinglayer/source/processor2d/processor2dtools \
drawinglayer/source/processor2d/contourextractor2d \ drawinglayer/source/processor2d/contourextractor2d \
drawinglayer/source/processor2d/getdigitlanguage \ drawinglayer/source/processor2d/getdigitlanguage \
drawinglayer/source/processor2d/helperwrongspellrenderer \ drawinglayer/source/processor2d/helperwrongspellrenderer \

View File

@@ -0,0 +1,63 @@
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#include <drawinglayer/processor2d/processor2dtools.hxx>
#include <drawinglayer/processor2d/vclpixelprocessor2d.hxx>
#include <drawinglayer/processor2d/vclmetafileprocessor2d.hxx>
//////////////////////////////////////////////////////////////////////////////
using namespace com::sun::star;
//////////////////////////////////////////////////////////////////////////////
namespace drawinglayer
{
namespace processor2d
{
BaseProcessor2D* createPixelProcessor2DFromOutputDevice(
OutputDevice& rTargetOutDev,
const drawinglayer::geometry::ViewInformation2D& rViewInformation2D)
{
// create Pixel Vcl-Processor
return new VclPixelProcessor2D(rViewInformation2D, rTargetOutDev);
}
BaseProcessor2D* createProcessor2DFromOutputDevice(
OutputDevice& rTargetOutDev,
const drawinglayer::geometry::ViewInformation2D& rViewInformation2D)
{
const GDIMetaFile* pMetaFile = rTargetOutDev.GetConnectMetaFile();
const bool bOutputToRecordingMetaFile(pMetaFile && pMetaFile->IsRecord() && !pMetaFile->IsPause());
if(bOutputToRecordingMetaFile)
{
// create MetaFile Vcl-Processor and process
return new VclMetafileProcessor2D(rViewInformation2D, rTargetOutDev);
}
else
{
// create Pixel Vcl-Processor
return createPixelProcessor2DFromOutputDevice(
rTargetOutDev,
rViewInformation2D);
}
}
} // end of namespace processor2d
} // end of namespace drawinglayer
//////////////////////////////////////////////////////////////////////////////

View File

@@ -19,10 +19,10 @@
#include <drawinglayer/tools/converters.hxx> #include <drawinglayer/tools/converters.hxx>
#include <drawinglayer/geometry/viewinformation2d.hxx> #include <drawinglayer/geometry/viewinformation2d.hxx>
#include <drawinglayer/processor2d/vclpixelprocessor2d.hxx>
#include <drawinglayer/primitive2d/modifiedcolorprimitive2d.hxx> #include <drawinglayer/primitive2d/modifiedcolorprimitive2d.hxx>
#include <basegfx/matrix/b2dhommatrixtools.hxx> #include <basegfx/matrix/b2dhommatrixtools.hxx>
#include <drawinglayer/primitive2d/transformprimitive2d.hxx> #include <drawinglayer/primitive2d/transformprimitive2d.hxx>
#include <drawinglayer/processor2d/processor2dtools.hxx>
#include <vcl/virdev.hxx> #include <vcl/virdev.hxx>
#ifdef DBG_UTIL #ifdef DBG_UTIL
@@ -36,7 +36,7 @@ namespace drawinglayer
{ {
namespace tools namespace tools
{ {
BitmapEx DRAWINGLAYER_DLLPUBLIC convertToBitmapEx( BitmapEx convertToBitmapEx(
const drawinglayer::primitive2d::Primitive2DSequence& rSeq, const drawinglayer::primitive2d::Primitive2DSequence& rSeq,
const geometry::ViewInformation2D& rViewInformation2D, const geometry::ViewInformation2D& rViewInformation2D,
sal_uInt32 nDiscreteWidth, sal_uInt32 nDiscreteWidth,
@@ -81,42 +81,48 @@ namespace drawinglayer
maContent.SetBackground(Wallpaper(Color(COL_WHITE))); maContent.SetBackground(Wallpaper(Color(COL_WHITE)));
maContent.Erase(); maContent.Erase();
// create processor // create pixel processor
processor2d::VclPixelProcessor2D aContentProcessor(aViewInformation2D, maContent); processor2d::BaseProcessor2D* pContentProcessor = processor2d::createPixelProcessor2DFromOutputDevice(
maContent,
aViewInformation2D);
// render content if(pContentProcessor)
aContentProcessor.process(aSequence); {
// render content
pContentProcessor->process(aSequence);
// get content // get content
maContent.EnableMapMode(false); maContent.EnableMapMode(false);
const Bitmap aContent(maContent.GetBitmap(aEmptyPoint, aSizePixel)); const Bitmap aContent(maContent.GetBitmap(aEmptyPoint, aSizePixel));
// prepare for mask creation // prepare for mask creation
maContent.SetMapMode(aMapModePixel); maContent.SetMapMode(aMapModePixel);
maContent.SetAntialiasing(true); maContent.SetAntialiasing(true);
// set alpha to all white (fully transparent) // set alpha to all white (fully transparent)
maContent.Erase(); maContent.Erase();
// embed primitives to paint them black // embed primitives to paint them black
const primitive2d::Primitive2DReference xRef( const primitive2d::Primitive2DReference xRef(
new primitive2d::ModifiedColorPrimitive2D( new primitive2d::ModifiedColorPrimitive2D(
aSequence, aSequence,
basegfx::BColorModifier( basegfx::BColorModifier(
basegfx::BColor(0.0, 0.0, 0.0), basegfx::BColor(0.0, 0.0, 0.0),
0.5, 0.5,
basegfx::BCOLORMODIFYMODE_REPLACE))); basegfx::BCOLORMODIFYMODE_REPLACE)));
const primitive2d::Primitive2DSequence xSeq(&xRef, 1); const primitive2d::Primitive2DSequence xSeq(&xRef, 1);
// render // render
aContentProcessor.process(xSeq); pContentProcessor->process(xSeq);
delete pContentProcessor;
// get alpha cahannel from vdev // get alpha cahannel from vdev
maContent.EnableMapMode(false); maContent.EnableMapMode(false);
const AlphaMask aAlphaMask(maContent.GetBitmap(aEmptyPoint, aSizePixel)); const AlphaMask aAlphaMask(maContent.GetBitmap(aEmptyPoint, aSizePixel));
// create BitmapEx result // create BitmapEx result
aRetval = BitmapEx(aContent, aAlphaMask); aRetval = BitmapEx(aContent, aAlphaMask);
}
} }
#ifdef DBG_UTIL #ifdef DBG_UTIL

View File

@@ -0,0 +1,79 @@
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#ifndef INCLUDED_DRAWINGLAYER_PROCESSOR2D_PROCESSOR2DTOOLS_HXX
#define INCLUDED_DRAWINGLAYER_PROCESSOR2D_PROCESSOR2DTOOLS_HXX
#include <drawinglayer/drawinglayerdllapi.h>
#include <drawinglayer/processor2d/baseprocessor2d.hxx>
#include <drawinglayer/geometry/viewinformation2d.hxx>
//////////////////////////////////////////////////////////////////////////////
// predefines
class OutputDevice;
//////////////////////////////////////////////////////////////////////////////
namespace drawinglayer
{
namespace processor2d
{
/** create the best available pixel based BaseProcessor2D
(which may be system-dependent)
@param rTargetOutDev
The target OutputDevice
@param rViewInformation2D
The ViewInformation to use
@return
the created BaseProcessor2D (ownership change) or null if
something went wrong
*/
DRAWINGLAYER_DLLPUBLIC BaseProcessor2D* createPixelProcessor2DFromOutputDevice(
OutputDevice& rTargetOutDev,
const drawinglayer::geometry::ViewInformation2D& rViewInformation2D);
/** create a BaseProcessor2D dependent on some states of the
given OutputDevice. If metafile is recorded, the needed
VclMetafileProcessor2D will be created. If a pixel renderer
is requested, the best one is incarnated
@param rTargetOutDev
The target OutputDevice
@param rViewInformation2D
The ViewInformation to use
@return
the created BaseProcessor2D (ownership change) or null if
something went wrong
*/
DRAWINGLAYER_DLLPUBLIC BaseProcessor2D* createProcessor2DFromOutputDevice(
OutputDevice& rTargetOutDev,
const drawinglayer::geometry::ViewInformation2D& rViewInformation2D);
} // end of namespace processor2d
} // end of namespace drawinglayer
//////////////////////////////////////////////////////////////////////////////
#endif //INCLUDED_DRAWINGLAYER_PROCESSOR2D_PROCESSOR2DTOOLS_HXX
// eof

View File

@@ -69,7 +69,7 @@ namespace drawinglayer
and the extra-data added to it (which can be seen mostly as 'extensions' and the extra-data added to it (which can be seen mostly as 'extensions'
or simply as 'hacks'). or simply as 'hacks').
*/ */
class DRAWINGLAYER_DLLPUBLIC VclMetafileProcessor2D : public VclProcessor2D class VclMetafileProcessor2D : public VclProcessor2D
{ {
private: private:
/// local helper(s) /// local helper(s)

View File

@@ -37,7 +37,7 @@ namespace drawinglayer
all feeded primitives to a VCL Window. It is the currently used renderer all feeded primitives to a VCL Window. It is the currently used renderer
for all VCL editing output from the DrawingLayer. for all VCL editing output from the DrawingLayer.
*/ */
class DRAWINGLAYER_DLLPUBLIC VclPixelProcessor2D : public VclProcessor2D class VclPixelProcessor2D : public VclProcessor2D
{ {
private: private:
protected: protected:

View File

@@ -66,7 +66,7 @@ namespace drawinglayer
This processor is the base class for VCL-Based processors. It has no This processor is the base class for VCL-Based processors. It has no
processBasePrimitive2D implementation and thus is not usable directly. processBasePrimitive2D implementation and thus is not usable directly.
*/ */
class DRAWINGLAYER_DLLPUBLIC VclProcessor2D : public BaseProcessor2D class VclProcessor2D : public BaseProcessor2D
{ {
protected: protected:
// the destination OutDev // the destination OutDev

View File

@@ -71,7 +71,7 @@ namespace drawinglayer
rasterconvertB3DPolyPolygon for filled geometry is called. It is a beseclass to rasterconvertB3DPolyPolygon for filled geometry is called. It is a beseclass to
e.g. base a Z-Buffer supported renderer on the 3D primitive processing. e.g. base a Z-Buffer supported renderer on the 3D primitive processing.
*/ */
class DRAWINGLAYER_DLLPUBLIC DefaultProcessor3D : public BaseProcessor3D class DefaultProcessor3D : public BaseProcessor3D
{ {
protected: protected:
/// read-only scene infos (normal handling, etc...) /// read-only scene infos (normal handling, etc...)

View File

@@ -58,7 +58,7 @@ namespace drawinglayer
raster bitmap using a Z-Buffer based approach. It is able to supersample and to handle raster bitmap using a Z-Buffer based approach. It is able to supersample and to handle
transparent content. transparent content.
*/ */
class DRAWINGLAYER_DLLPUBLIC ZBufferProcessor3D : public DefaultProcessor3D class ZBufferProcessor3D : public DefaultProcessor3D
{ {
private: private:
/// the raster target, a Z-Buffer /// the raster target, a Z-Buffer

View File

@@ -24,9 +24,8 @@
#include <svx/svdobj.hxx> #include <svx/svdobj.hxx>
#include <svx/sdr/contact/viewcontact.hxx> #include <svx/sdr/contact/viewcontact.hxx>
#include <svx/svdmodel.hxx> #include <svx/svdmodel.hxx>
#include <drawinglayer/processor2d/vclprocessor2d.hxx>
#include <basegfx/matrix/b2dhommatrix.hxx> #include <basegfx/matrix/b2dhommatrix.hxx>
#include <drawinglayer/processor2d/processorfromoutputdevice.hxx> #include <drawinglayer/processor2d/processor2dtools.hxx>
#include <svx/unoapi.hxx> #include <svx/unoapi.hxx>
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////
@@ -128,9 +127,9 @@ namespace sdr
// if there is something to show, use a vclProcessor to render it // if there is something to show, use a vclProcessor to render it
if(xPrimitiveSequence.hasElements()) if(xPrimitiveSequence.hasElements())
{ {
drawinglayer::processor2d::BaseProcessor2D* pProcessor2D = drawinglayer::processor2d::BaseProcessor2D* pProcessor2D = drawinglayer::processor2d::createProcessor2DFromOutputDevice(
drawinglayer::processor2d::createBaseProcessor2DFromOutputDevice( *pTargetDevice,
*pTargetDevice, getViewInformation2D()); getViewInformation2D());
if(pProcessor2D) if(pProcessor2D)
{ {

View File

@@ -29,11 +29,10 @@
#include <svx/sdr/event/eventhandler.hxx> #include <svx/sdr/event/eventhandler.hxx>
#include <svx/sdrpagewindow.hxx> #include <svx/sdrpagewindow.hxx>
#include <svx/sdrpaintwindow.hxx> #include <svx/sdrpaintwindow.hxx>
#include <drawinglayer/processor2d/vclprocessor2d.hxx>
#include <basegfx/matrix/b2dhommatrix.hxx> #include <basegfx/matrix/b2dhommatrix.hxx>
#include <drawinglayer/primitive2d/transformprimitive2d.hxx> #include <drawinglayer/primitive2d/transformprimitive2d.hxx>
#include <drawinglayer/processor2d/processorfromoutputdevice.hxx>
#include <com/sun/star/rendering/XSpriteCanvas.hpp> #include <com/sun/star/rendering/XSpriteCanvas.hpp>
#include <drawinglayer/processor2d/processor2dtools.hxx>
#include <svx/unoapi.hxx> #include <svx/unoapi.hxx>
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////
@@ -240,7 +239,7 @@ namespace sdr
// if there is something to show, use a primitive processor to render it. There // if there is something to show, use a primitive processor to render it. There
// is a choice between VCL and Canvas processors currently. The decision is made in // is a choice between VCL and Canvas processors currently. The decision is made in
// createBaseProcessor2DFromOutputDevice and takes into accout things like the // createProcessor2DFromOutputDevice and takes into accout things like the
// Target is a MetaFile, a VDev or something else. The Canvas renderer is triggered // Target is a MetaFile, a VDev or something else. The Canvas renderer is triggered
// currently using the shown boolean. Canvas is not yet the default. // currently using the shown boolean. Canvas is not yet the default.
if(xPrimitiveSequence.hasElements()) if(xPrimitiveSequence.hasElements())
@@ -251,7 +250,7 @@ namespace sdr
// create renderer // create renderer
drawinglayer::processor2d::BaseProcessor2D* pProcessor2D = drawinglayer::processor2d::BaseProcessor2D* pProcessor2D =
drawinglayer::processor2d::createBaseProcessor2DFromOutputDevice( drawinglayer::processor2d::createProcessor2DFromOutputDevice(
rTargetOutDev, getViewInformation2D()); rTargetOutDev, getViewInformation2D());
if(pProcessor2D) if(pProcessor2D)

View File

@@ -25,8 +25,7 @@
#include <vcl/window.hxx> #include <vcl/window.hxx>
#include <svx/sdr/overlay/overlayobject.hxx> #include <svx/sdr/overlay/overlayobject.hxx>
#include <basegfx/matrix/b2dhommatrix.hxx> #include <basegfx/matrix/b2dhommatrix.hxx>
#include <drawinglayer/processor2d/baseprocessor2d.hxx> #include <drawinglayer/processor2d/processor2dtools.hxx>
#include <drawinglayer/processor2d/processorfromoutputdevice.hxx>
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////
@@ -48,10 +47,9 @@ namespace sdr
const bool bIsAntiAliasing(getDrawinglayerOpt().IsAntiAliasing()); const bool bIsAntiAliasing(getDrawinglayerOpt().IsAntiAliasing());
// create processor // create processor
drawinglayer::processor2d::BaseProcessor2D* pProcessor = drawinglayer::processor2d::BaseProcessor2D* pProcessor = drawinglayer::processor2d::createProcessor2DFromOutputDevice(
::drawinglayer::processor2d::createBaseProcessor2DFromOutputDevice( rDestinationDevice,
rDestinationDevice, getCurrentViewInformation2D());
getCurrentViewInformation2D());
if(pProcessor) if(pProcessor)
{ {

View File

@@ -20,8 +20,6 @@
#include <svx/sdr/overlay/overlayprimitive2dsequenceobject.hxx> #include <svx/sdr/overlay/overlayprimitive2dsequenceobject.hxx>
#include <drawinglayer/geometry/viewinformation2d.hxx> #include <drawinglayer/geometry/viewinformation2d.hxx>
#include <drawinglayer/processor2d/vclpixelprocessor2d.hxx>
#include <drawinglayer/processor2d/processorfromoutputdevice.hxx>
#include <svx/sdr/overlay/overlaymanager.hxx> #include <svx/sdr/overlay/overlaymanager.hxx>
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////

View File

@@ -59,8 +59,7 @@
#include <svx/sdrpaintwindow.hxx> #include <svx/sdrpaintwindow.hxx>
#include <svx/sdrundomanager.hxx> #include <svx/sdrundomanager.hxx>
#include <svx/sdr/overlay/overlaytools.hxx> #include <svx/sdr/overlay/overlaytools.hxx>
#include <drawinglayer/processor2d/baseprocessor2d.hxx> #include <drawinglayer/processor2d/processor2dtools.hxx>
#include <drawinglayer/processor2d/processorfromoutputdevice.hxx>
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -343,8 +342,7 @@ void SdrObjEditView::ImpPaintOutlinerView(OutlinerView& rOutlView, const Rectang
{ {
// completely reworked to use primitives; this ensures same look and functionality // completely reworked to use primitives; this ensures same look and functionality
const drawinglayer::geometry::ViewInformation2D aViewInformation2D; const drawinglayer::geometry::ViewInformation2D aViewInformation2D;
drawinglayer::processor2d::BaseProcessor2D* pProcessor = drawinglayer::processor2d::createProcessor2DFromOutputDevice(
drawinglayer::processor2d::BaseProcessor2D* pProcessor = drawinglayer::processor2d::createBaseProcessor2DFromOutputDevice(
rTargetDevice, rTargetDevice,
aViewInformation2D); aViewInformation2D);

View File

@@ -64,16 +64,14 @@
#include <accessibilityoptions.hxx> #include <accessibilityoptions.hxx>
#include <com/sun/star/embed/EmbedMisc.hpp> #include <com/sun/star/embed/EmbedMisc.hpp>
#include <com/sun/star/embed/EmbedStates.hpp> #include <com/sun/star/embed/EmbedStates.hpp>
#include <svtools/embedhlp.hxx> #include <svtools/embedhlp.hxx>
#include <svx/charthelper.hxx> #include <svx/charthelper.hxx>
#include <dview.hxx> // #i99665# #include <dview.hxx> // #i99665#
#include <basegfx/matrix/b2dhommatrix.hxx> #include <basegfx/matrix/b2dhommatrix.hxx>
#include <drawinglayer/processor2d/processorfromoutputdevice.hxx>
#include <drawinglayer/processor2d/baseprocessor2d.hxx> #include <drawinglayer/processor2d/baseprocessor2d.hxx>
#include <drawinglayer/primitive2d/bitmapprimitive2d.hxx> #include <drawinglayer/primitive2d/bitmapprimitive2d.hxx>
#include <basegfx/matrix/b2dhommatrixtools.hxx> #include <basegfx/matrix/b2dhommatrixtools.hxx>
#include <drawinglayer/processor2d/processor2dtools.hxx>
using namespace com::sun::star; using namespace com::sun::star;
@@ -762,7 +760,7 @@ bool paintUsingPrimitivesHelper(
// get a primitive processor for rendering // get a primitive processor for rendering
drawinglayer::processor2d::BaseProcessor2D* pProcessor2D = drawinglayer::processor2d::BaseProcessor2D* pProcessor2D =
drawinglayer::processor2d::createBaseProcessor2DFromOutputDevice( drawinglayer::processor2d::createProcessor2DFromOutputDevice(
rOutputDevice, aViewInformation2D); rOutputDevice, aViewInformation2D);
if(pProcessor2D) if(pProcessor2D)