Kaydet (Commit) f371f92c authored tarafından Armin Le Grand's avatar Armin Le Grand

#121532# unified processor2d usages from other modules

üst 0529555d
......@@ -156,6 +156,7 @@ $(eval $(call gb_Library_add_exception_objects,drawinglayer,\
drawinglayer/source/primitive3d/textureprimitive3d \
drawinglayer/source/primitive3d/transformprimitive3d \
drawinglayer/source/processor2d/baseprocessor2d \
drawinglayer/source/processor2d/processor2dtools \
drawinglayer/source/processor2d/vclhelperbufferdevice \
drawinglayer/source/processor2d/vclprocessor2d \
drawinglayer/source/processor2d/helperwrongspellrenderer \
......
......@@ -102,9 +102,7 @@ $(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/geometry/vie
$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/geometry/viewinformation3d.hxx,drawinglayer/geometry/viewinformation3d.hxx))
$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/processor2d/baseprocessor2d.hxx,drawinglayer/processor2d/baseprocessor2d.hxx))
$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/processor2d/vclprocessor2d.hxx,drawinglayer/processor2d/vclprocessor2d.hxx))
$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/processor2d/vclpixelprocessor2d.hxx,drawinglayer/processor2d/vclpixelprocessor2d.hxx))
$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/processor2d/vclmetafileprocessor2d.hxx,drawinglayer/processor2d/vclmetafileprocessor2d.hxx))
$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/processor2d/processor2dtools.hxx,drawinglayer/processor2d/processor2dtools.hxx))
$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/processor2d/contourextractor2d.hxx,drawinglayer/processor2d/contourextractor2d.hxx))
$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/processor2d/linegeometryextractor2d.hxx,drawinglayer/processor2d/linegeometryextractor2d.hxx))
$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/processor2d/hittestprocessor2d.hxx,drawinglayer/processor2d/hittestprocessor2d.hxx))
......@@ -113,10 +111,8 @@ $(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/processor2d/
$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/processor3d/baseprocessor3d.hxx,drawinglayer/processor3d/baseprocessor3d.hxx))
$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/processor3d/cutfindprocessor3d.hxx,drawinglayer/processor3d/cutfindprocessor3d.hxx))
$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/processor3d/defaultprocessor3d.hxx,drawinglayer/processor3d/defaultprocessor3d.hxx))
$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/processor3d/geometry2dextractor.hxx,drawinglayer/processor3d/geometry2dextractor.hxx))
$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/processor3d/shadow3dextractor.hxx,drawinglayer/processor3d/shadow3dextractor.hxx))
$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/processor3d/zbufferprocessor3d.hxx,drawinglayer/processor3d/zbufferprocessor3d.hxx))
$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/attribute/fillgradientattribute.hxx,drawinglayer/attribute/fillgradientattribute.hxx))
$(eval $(call gb_Package_add_file,drawinglayer_inc,inc/drawinglayer/attribute/fillhatchattribute.hxx,drawinglayer/attribute/fillhatchattribute.hxx))
......
......@@ -19,41 +19,65 @@
*
*************************************************************/
#ifndef INCLUDED_DRAWINGLAYER_PROCESSOR2D_PROCESSOR2DTOOLS_HXX
#define INCLUDED_DRAWINGLAYER_PROCESSOR2D_PROCESSOR2DTOOLS_HXX
#ifndef _SDR_CONTACT_OBJECTCONTACTTOOLS_HXX
#define _SDR_CONTACT_OBJECTCONTACTTOOLS_HXX
#include <drawinglayer/drawinglayerdllapi.h>
#include <drawinglayer/processor2d/baseprocessor2d.hxx>
#include <drawinglayer/geometry/viewinformation2d.hxx>
#include <svx/svxdllapi.h>
//////////////////////////////////////////////////////////////////////////////
// predeclarations
// predefines
class OutputDevice;
namespace drawinglayer { namespace processor2d {
class BaseProcessor2D;
}}
//////////////////////////////////////////////////////////////////////////////
namespace sdr
namespace drawinglayer
{
namespace contact
namespace processor2d
{
// create a mating VCL-Provessor for given OutputDevice. This includes
// looking for MetaFile-recording. The returned renderer changes owner,
// deletion is duty of the caller
SVX_DLLPUBLIC drawinglayer::processor2d::BaseProcessor2D* createBaseProcessor2DFromOutputDevice(
/** 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 contact
} // end of namespace sdr
} // end of namespace processor2d
} // end of namespace drawinglayer
//////////////////////////////////////////////////////////////////////////////
#endif //_SDR_CONTACT_OBJECTCONTACTTOOLS_HXX
#endif //INCLUDED_DRAWINGLAYER_PROCESSOR2D_PROCESSOR2DTOOLS_HXX
// eof
......@@ -72,7 +72,7 @@ namespace drawinglayer
and the extra-data added to it (which can be seen mostly as 'extensions'
or simply as 'hacks').
*/
class DRAWINGLAYER_DLLPUBLIC VclMetafileProcessor2D : public VclProcessor2D
class VclMetafileProcessor2D : public VclProcessor2D
{
private:
/// local helper(s)
......
......@@ -40,7 +40,7 @@ namespace drawinglayer
all feeded primitives to a VCL Window. It is the currently used renderer
for all VCL editing output from the DrawingLayer.
*/
class DRAWINGLAYER_DLLPUBLIC VclPixelProcessor2D : public VclProcessor2D
class VclPixelProcessor2D : public VclProcessor2D
{
private:
protected:
......
......@@ -69,7 +69,7 @@ namespace drawinglayer
This processor is the base class for VCL-Based processors. It has no
processBasePrimitive2D implementation and thus is not usable directly.
*/
class DRAWINGLAYER_DLLPUBLIC VclProcessor2D : public BaseProcessor2D
class VclProcessor2D : public BaseProcessor2D
{
protected:
// the destination OutDev
......
......@@ -74,7 +74,7 @@ namespace drawinglayer
rasterconvertB3DPolyPolygon for filled geometry is called. It is a beseclass to
e.g. base a Z-Buffer supported renderer on the 3D primitive processing.
*/
class DRAWINGLAYER_DLLPUBLIC DefaultProcessor3D : public BaseProcessor3D
class DefaultProcessor3D : public BaseProcessor3D
{
protected:
/// read-only scene infos (normal handling, etc...)
......
......@@ -61,7 +61,7 @@ namespace drawinglayer
raster bitmap using a Z-Buffer based approach. It is able to supersample and to handle
transparent content.
*/
class DRAWINGLAYER_DLLPUBLIC ZBufferProcessor3D : public DefaultProcessor3D
class ZBufferProcessor3D : public DefaultProcessor3D
{
private:
/// the raster target, a Z-Buffer
......
......@@ -19,20 +19,12 @@
*
*************************************************************/
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
#include "precompiled_drawinglayer.hxx"
#include <svx/sdr/contact/objectcontacttools.hxx>
#include <vcl/outdev.hxx>
#include <basegfx/matrix/b2dhommatrix.hxx>
#include <basegfx/range/b2drange.hxx>
#include <vcl/gdimtf.hxx>
#include <basegfx/tools/canvastools.hxx>
#include <drawinglayer/processor2d/vclmetafileprocessor2d.hxx>
#include <drawinglayer/processor2d/processor2dtools.hxx>
#include <drawinglayer/processor2d/vclpixelprocessor2d.hxx>
#include <vcl/window.hxx>
#include <drawinglayer/processor2d/vclmetafileprocessor2d.hxx>
//////////////////////////////////////////////////////////////////////////////
......@@ -40,11 +32,19 @@ using namespace com::sun::star;
//////////////////////////////////////////////////////////////////////////////
namespace sdr
namespace drawinglayer
{
namespace contact
namespace processor2d
{
drawinglayer::processor2d::BaseProcessor2D* createBaseProcessor2DFromOutputDevice(
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)
{
......@@ -54,16 +54,18 @@ namespace sdr
if(bOutputToRecordingMetaFile)
{
// create MetaFile Vcl-Processor and process
return new drawinglayer::processor2d::VclMetafileProcessor2D(rViewInformation2D, rTargetOutDev);
return new VclMetafileProcessor2D(rViewInformation2D, rTargetOutDev);
}
else
{
// create Pixel Vcl-Processor
return new drawinglayer::processor2d::VclPixelProcessor2D(rViewInformation2D, rTargetOutDev);
return createPixelProcessor2DFromOutputDevice(
rTargetOutDev,
rViewInformation2D);
}
}
} // end of namespace contact
} // end of namespace sdr
} // end of namespace processor2d
} // end of namespace drawinglayer
//////////////////////////////////////////////////////////////////////////////
// eof
......@@ -24,10 +24,10 @@
#include <drawinglayer/tools/converters.hxx>
#include <drawinglayer/geometry/viewinformation2d.hxx>
#include <drawinglayer/processor2d/vclpixelprocessor2d.hxx>
#include <drawinglayer/primitive2d/modifiedcolorprimitive2d.hxx>
#include <basegfx/matrix/b2dhommatrixtools.hxx>
#include <drawinglayer/primitive2d/transformprimitive2d.hxx>
#include <drawinglayer/processor2d/processor2dtools.hxx>
#include <vcl/virdev.hxx>
#ifdef DBG_UTIL
......@@ -41,7 +41,7 @@ namespace drawinglayer
{
namespace tools
{
BitmapEx DRAWINGLAYER_DLLPUBLIC convertToBitmapEx(
BitmapEx convertToBitmapEx(
const drawinglayer::primitive2d::Primitive2DSequence& rSeq,
const geometry::ViewInformation2D& rViewInformation2D,
sal_uInt32 nDiscreteWidth,
......@@ -87,42 +87,48 @@ namespace drawinglayer
maContent.SetBackground(Wallpaper(Color(COL_WHITE)));
maContent.Erase();
// create processor
processor2d::VclPixelProcessor2D aContentProcessor(aViewInformation2D, maContent);
// create pixel processor
processor2d::BaseProcessor2D* pContentProcessor = processor2d::createPixelProcessor2DFromOutputDevice(
maContent,
aViewInformation2D);
// render content
aContentProcessor.process(aSequence);
// get content
maContent.EnableMapMode(false);
const Bitmap aContent(maContent.GetBitmap(aEmptyPoint, aSizePixel));
// prepare for mask creation
maContent.SetMapMode(aMapModePixel);
maContent.SetAntialiasing(true);
// set alpha to all white (fully transparent)
maContent.Erase();
// embed primitives to paint them black
const primitive2d::Primitive2DReference xRef(
new primitive2d::ModifiedColorPrimitive2D(
aSequence,
basegfx::BColorModifier(
basegfx::BColor(0.0, 0.0, 0.0),
0.5,
basegfx::BCOLORMODIFYMODE_REPLACE)));
const primitive2d::Primitive2DSequence xSeq(&xRef, 1);
// render
aContentProcessor.process(xSeq);
// get alpha cahannel from vdev
maContent.EnableMapMode(false);
const AlphaMask aAlphaMask(maContent.GetBitmap(aEmptyPoint, aSizePixel));
// create BitmapEx result
aRetval = BitmapEx(aContent, aAlphaMask);
if(pContentProcessor)
{
// render content
pContentProcessor->process(aSequence);
// get content
maContent.EnableMapMode(false);
const Bitmap aContent(maContent.GetBitmap(aEmptyPoint, aSizePixel));
// prepare for mask creation
maContent.SetMapMode(aMapModePixel);
maContent.SetAntialiasing(true);
// set alpha to all white (fully transparent)
maContent.Erase();
// embed primitives to paint them black
const primitive2d::Primitive2DReference xRef(
new primitive2d::ModifiedColorPrimitive2D(
aSequence,
basegfx::BColorModifier(
basegfx::BColor(0.0, 0.0, 0.0),
0.5,
basegfx::BCOLORMODIFYMODE_REPLACE)));
const primitive2d::Primitive2DSequence xSeq(&xRef, 1);
// render
pContentProcessor->process(xSeq);
delete pContentProcessor;
// get alpha cahannel from vdev
maContent.EnableMapMode(false);
const AlphaMask aAlphaMask(maContent.GetBitmap(aEmptyPoint, aSizePixel));
// create BitmapEx result
aRetval = BitmapEx(aContent, aAlphaMask);
}
}
#ifdef DBG_UTIL
......
......@@ -218,7 +218,6 @@ $(eval $(call gb_Library_add_exception_objects,svxcore,\
svx/source/sdr/contact/viewcontact \
svx/source/sdr/contact/viewcontactofsdrole2obj \
svx/source/sdr/contact/displayinfo \
svx/source/sdr/contact/objectcontacttools \
svx/source/sdr/contact/viewcontactofe3dscene \
svx/source/sdr/contact/viewcontactofsdrrectobj \
svx/source/sdr/contact/viewobjectcontactofsdrole2obj \
......
......@@ -241,7 +241,6 @@ $(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/primitive3d/sdrattributecr
$(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/contact/viewcontactofe3dextrude.hxx,svx/sdr/contact/viewcontactofe3dextrude.hxx))
$(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/contact/viewcontactofvirtobj.hxx,svx/sdr/contact/viewcontactofvirtobj.hxx))
$(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/contact/viewcontactofe3dscene.hxx,svx/sdr/contact/viewcontactofe3dscene.hxx))
$(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/contact/objectcontacttools.hxx,svx/sdr/contact/objectcontacttools.hxx))
$(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/contact/objectcontact.hxx,svx/sdr/contact/objectcontact.hxx))
$(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/contact/viewcontactofpageobj.hxx,svx/sdr/contact/viewcontactofpageobj.hxx))
$(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/contact/viewcontactofe3dcube.hxx,svx/sdr/contact/viewcontactofe3dcube.hxx))
......
......@@ -30,9 +30,8 @@
#include <svx/svdobj.hxx>
#include <svx/sdr/contact/viewcontact.hxx>
#include <svx/svdmodel.hxx>
#include <drawinglayer/processor2d/vclprocessor2d.hxx>
#include <basegfx/matrix/b2dhommatrix.hxx>
#include <svx/sdr/contact/objectcontacttools.hxx>
#include <drawinglayer/processor2d/processor2dtools.hxx>
#include <svx/unoapi.hxx>
//////////////////////////////////////////////////////////////////////////////
......@@ -134,8 +133,9 @@ namespace sdr
// if there is something to show, use a vclProcessor to render it
if(xPrimitiveSequence.hasElements())
{
drawinglayer::processor2d::BaseProcessor2D* pProcessor2D = createBaseProcessor2DFromOutputDevice(
*pTargetDevice, getViewInformation2D());
drawinglayer::processor2d::BaseProcessor2D* pProcessor2D = drawinglayer::processor2d::createProcessor2DFromOutputDevice(
*pTargetDevice,
getViewInformation2D());
if(pProcessor2D)
{
......
......@@ -35,11 +35,10 @@
#include <svx/sdr/event/eventhandler.hxx>
#include <svx/sdrpagewindow.hxx>
#include <svx/sdrpaintwindow.hxx>
#include <drawinglayer/processor2d/vclprocessor2d.hxx>
#include <basegfx/matrix/b2dhommatrix.hxx>
#include <drawinglayer/primitive2d/transformprimitive2d.hxx>
#include <svx/sdr/contact/objectcontacttools.hxx>
#include <com/sun/star/rendering/XSpriteCanvas.hpp>
#include <drawinglayer/processor2d/processor2dtools.hxx>
#include <svx/unoapi.hxx>
//////////////////////////////////////////////////////////////////////////////
......@@ -251,7 +250,7 @@ namespace sdr
// 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
// 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
// currently using the shown boolean. Canvas is not yet the default.
if(xPrimitiveSequence.hasElements())
......@@ -261,8 +260,9 @@ namespace sdr
pOutDev->SetLayoutMode(0); // reset, default is no BiDi/RTL
// create renderer
drawinglayer::processor2d::BaseProcessor2D* pProcessor2D = createBaseProcessor2DFromOutputDevice(
rTargetOutDev, getViewInformation2D());
drawinglayer::processor2d::BaseProcessor2D* pProcessor2D = drawinglayer::processor2d::createProcessor2DFromOutputDevice(
rTargetOutDev,
getViewInformation2D());
if(pProcessor2D)
{
......
......@@ -32,8 +32,7 @@
#include <vcl/window.hxx>
#include <svx/sdr/overlay/overlayobject.hxx>
#include <basegfx/matrix/b2dhommatrix.hxx>
#include <drawinglayer/processor2d/baseprocessor2d.hxx>
#include <svx/sdr/contact/objectcontacttools.hxx>
#include <drawinglayer/processor2d/processor2dtools.hxx>
//////////////////////////////////////////////////////////////////////////////
......@@ -55,7 +54,7 @@ namespace sdr
const bool bIsAntiAliasing(getDrawinglayerOpt().IsAntiAliasing());
// create processor
drawinglayer::processor2d::BaseProcessor2D* pProcessor = ::sdr::contact::createBaseProcessor2DFromOutputDevice(
drawinglayer::processor2d::BaseProcessor2D* pProcessor = drawinglayer::processor2d::createProcessor2DFromOutputDevice(
rDestinationDevice,
getCurrentViewInformation2D());
......
......@@ -34,7 +34,6 @@
#include <basegfx/polygon/b2dpolypolygon.hxx>
#include <basegfx/polygon/b2dpolygontools.hxx>
#include <basegfx/polygon/b2dpolypolygontools.hxx>
#include <svx/sdr/contact/objectcontacttools.hxx>
#include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
//////////////////////////////////////////////////////////////////////////////
......
......@@ -26,8 +26,6 @@
#include <svx/sdr/overlay/overlayprimitive2dsequenceobject.hxx>
#include <drawinglayer/geometry/viewinformation2d.hxx>
#include <drawinglayer/processor2d/vclpixelprocessor2d.hxx>
#include <svx/sdr/contact/objectcontacttools.hxx>
#include <svx/sdr/overlay/overlaymanager.hxx>
//////////////////////////////////////////////////////////////////////////////
......
......@@ -64,9 +64,8 @@
#include <vcl/svapp.hxx>
#include <svx/sdrpaintwindow.hxx>
#include <svx/sdrundomanager.hxx>
#include <svx/sdr/contact/objectcontacttools.hxx>
#include <svx/sdr/overlay/overlaytools.hxx>
#include <drawinglayer/processor2d/baseprocessor2d.hxx>
#include <drawinglayer/processor2d/processor2dtools.hxx>
////////////////////////////////////////////////////////////////////////////////////////////////////
......@@ -359,7 +358,7 @@ void SdrObjEditView::ImpPaintOutlinerView(OutlinerView& rOutlView, const Rectang
{
// completely reworked to use primitives; this ensures same look and functionality
const drawinglayer::geometry::ViewInformation2D aViewInformation2D;
drawinglayer::processor2d::BaseProcessor2D* pProcessor = ::sdr::contact::createBaseProcessor2DFromOutputDevice(
drawinglayer::processor2d::BaseProcessor2D* pProcessor = drawinglayer::processor2d::createProcessor2DFromOutputDevice(
rTargetDevice,
aViewInformation2D);
......
......@@ -19,12 +19,9 @@
*
*************************************************************/
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_sw.hxx"
#include <hintids.hxx>
#include <tools/urlobj.hxx>
#include <vcl/print.hxx>
......@@ -71,17 +68,14 @@
#include <accessibilityoptions.hxx>
#include <com/sun/star/embed/EmbedMisc.hpp>
#include <com/sun/star/embed/EmbedStates.hpp>
#include <svtools/embedhlp.hxx>
#include <svx/charthelper.hxx>
// --> OD 2009-03-05 #i99665#
#include <dview.hxx>
// <--
#include <basegfx/matrix/b2dhommatrix.hxx>
#include <svx/sdr/contact/objectcontacttools.hxx>
#include <drawinglayer/processor2d/baseprocessor2d.hxx>
#include <basegfx/matrix/b2dhommatrixtools.hxx>
#include <drawinglayer/processor2d/processor2dtools.hxx>
using namespace com::sun::star;
......@@ -886,7 +880,7 @@ bool paintUsingPrimitivesHelper(
uno::Sequence< beans::PropertyValue >());
// get a primitive processor for rendering
drawinglayer::processor2d::BaseProcessor2D* pProcessor2D = sdr::contact::createBaseProcessor2DFromOutputDevice(
drawinglayer::processor2d::BaseProcessor2D* pProcessor2D = drawinglayer::processor2d::createProcessor2DFromOutputDevice(
rOutputDevice,
aViewInformation2D);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment