Kaydet (Commit) 03a651d4 authored tarafından Noel Grandin's avatar Noel Grandin

return BaseProcessor2D by std::unique_ptr

Change-Id: Ibad6e989d2d7ba779e7557e41552d06c076f657b
Reviewed-on: https://gerrit.libreoffice.org/57448
Tested-by: Jenkins
Reviewed-by: 's avatarNoel Grandin <noel.grandin@collabora.co.uk>
üst 99876774
......@@ -17,6 +17,7 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#include <drawinglayer/processor2d/processor2dtools.hxx>
#include <o3tl/make_unique.hxx>
#include "vclpixelprocessor2d.hxx"
#include "vclmetafileprocessor2d.hxx"
......@@ -28,15 +29,15 @@ namespace drawinglayer
{
namespace processor2d
{
BaseProcessor2D* createPixelProcessor2DFromOutputDevice(
std::unique_ptr<BaseProcessor2D> createPixelProcessor2DFromOutputDevice(
OutputDevice& rTargetOutDev,
const drawinglayer::geometry::ViewInformation2D& rViewInformation2D)
{
// create Pixel Vcl-Processor
return new VclPixelProcessor2D(rViewInformation2D, rTargetOutDev);
return o3tl::make_unique<VclPixelProcessor2D>(rViewInformation2D, rTargetOutDev);
}
BaseProcessor2D* createProcessor2DFromOutputDevice(
std::unique_ptr<BaseProcessor2D> createProcessor2DFromOutputDevice(
OutputDevice& rTargetOutDev,
const drawinglayer::geometry::ViewInformation2D& rViewInformation2D)
{
......@@ -46,7 +47,7 @@ namespace drawinglayer
if(bOutputToRecordingMetaFile)
{
// create MetaFile Vcl-Processor and process
return new VclMetafileProcessor2D(rViewInformation2D, rTargetOutDev);
return o3tl::make_unique<VclMetafileProcessor2D>(rViewInformation2D, rTargetOutDev);
}
else
{
......
......@@ -26,6 +26,7 @@
#include "vclmetafileprocessor2d.hxx"
#include "vclpixelprocessor2d.hxx"
#include <vcl/window.hxx>
#include <o3tl/make_unique.hxx>
using namespace com::sun::star;
......@@ -33,7 +34,7 @@ namespace drawinglayer
{
namespace processor2d
{
drawinglayer::processor2d::BaseProcessor2D* createBaseProcessor2DFromOutputDevice(
std::unique_ptr<drawinglayer::processor2d::BaseProcessor2D> createBaseProcessor2DFromOutputDevice(
OutputDevice& rTargetOutDev,
const drawinglayer::geometry::ViewInformation2D& rViewInformation2D)
{
......@@ -43,12 +44,12 @@ namespace drawinglayer
if(bOutputToRecordingMetaFile)
{
// create MetaFile Vcl-Processor and process
return new drawinglayer::processor2d::VclMetafileProcessor2D(rViewInformation2D, rTargetOutDev);
return o3tl::make_unique<drawinglayer::processor2d::VclMetafileProcessor2D>(rViewInformation2D, rTargetOutDev);
}
else
{
// create Pixel Vcl-Processor
return new drawinglayer::processor2d::VclPixelProcessor2D(rViewInformation2D, rTargetOutDev);
return o3tl::make_unique<drawinglayer::processor2d::VclPixelProcessor2D>(rViewInformation2D, rTargetOutDev);
}
}
} // end of namespace processor2d
......
......@@ -80,7 +80,7 @@ namespace drawinglayer
// create pixel processor, also already takes care of AAing and
// checking the getOptionsDrawinglayer().IsAntiAliasing() switch. If
// not wanted, change after this call as needed
processor2d::BaseProcessor2D* pContentProcessor = processor2d::createPixelProcessor2DFromOutputDevice(
std::unique_ptr<processor2d::BaseProcessor2D> pContentProcessor = processor2d::createPixelProcessor2DFromOutputDevice(
*pContent.get(),
rViewInformation2D);
......@@ -122,7 +122,7 @@ namespace drawinglayer
// render
pContentProcessor->process(xSeq);
delete pContentProcessor;
pContentProcessor.reset();
// get alpha channel from vdev
pContent->EnableMapMode(false);
......
......@@ -22,6 +22,7 @@
#include <drawinglayer/drawinglayerdllapi.h>
#include <drawinglayer/processor2d/baseprocessor2d.hxx>
#include <drawinglayer/geometry/viewinformation2d.hxx>
#include <memory>
class OutputDevice;
......@@ -42,7 +43,7 @@ namespace drawinglayer
the created BaseProcessor2D (ownership change) or null if
something went wrong
*/
DRAWINGLAYER_DLLPUBLIC BaseProcessor2D* createPixelProcessor2DFromOutputDevice(
DRAWINGLAYER_DLLPUBLIC std::unique_ptr<BaseProcessor2D> createPixelProcessor2DFromOutputDevice(
OutputDevice& rTargetOutDev,
const drawinglayer::geometry::ViewInformation2D& rViewInformation2D);
......@@ -61,7 +62,7 @@ namespace drawinglayer
the created BaseProcessor2D (ownership change) or null if
something went wrong
*/
DRAWINGLAYER_DLLPUBLIC BaseProcessor2D* createProcessor2DFromOutputDevice(
DRAWINGLAYER_DLLPUBLIC std::unique_ptr<BaseProcessor2D> createProcessor2DFromOutputDevice(
OutputDevice& rTargetOutDev,
const drawinglayer::geometry::ViewInformation2D& rViewInformation2D);
......
......@@ -22,6 +22,7 @@
#include <drawinglayer/geometry/viewinformation2d.hxx>
#include <drawinglayer/drawinglayerdllapi.h>
#include <memory>
class OutputDevice;
......@@ -36,7 +37,7 @@ namespace drawinglayer
// create a mating VCL-Processor for given OutputDevice. This includes
// looking for MetaFile-recording. The returned renderer changes owner,
// deletion is duty of the caller
DRAWINGLAYER_DLLPUBLIC drawinglayer::processor2d::BaseProcessor2D* createBaseProcessor2DFromOutputDevice(
DRAWINGLAYER_DLLPUBLIC std::unique_ptr<drawinglayer::processor2d::BaseProcessor2D> createBaseProcessor2DFromOutputDevice(
OutputDevice& rTargetOutDev,
const drawinglayer::geometry::ViewInformation2D& rViewInformation2D);
......
......@@ -234,7 +234,7 @@ private:
void DrawRotatedFrame(vcl::RenderContext& rRenderContext); // pixel
drawinglayer::processor2d::BaseProcessor2D* CreateProcessor2D( );
std::unique_ptr<drawinglayer::processor2d::BaseProcessor2D> CreateProcessor2D( );
void DrawEditStandard(DrawEditParam& rParam);
void DrawEditBottomTop(DrawEditParam& rParam);
......
......@@ -1690,7 +1690,7 @@ void ScOutputData::DrawRotatedFrame(vcl::RenderContext& rRenderContext)
rRenderContext.SetClipRegion();
}
drawinglayer::processor2d::BaseProcessor2D* ScOutputData::CreateProcessor2D( )
std::unique_ptr<drawinglayer::processor2d::BaseProcessor2D> ScOutputData::CreateProcessor2D( )
{
mpDoc->InitDrawLayer(mpDoc->GetDocumentShell());
ScDrawLayer* pDrawLayer = mpDoc->GetDrawLayer();
......
......@@ -379,9 +379,8 @@ void SvxPageWindow::drawFillAttributes(vcl::RenderContext& rRenderContext,
basegfx::B2DHomMatrix(), GetViewTransformation(), aPaintRange, nullptr,
0.0, css::uno::Sequence<css::beans::PropertyValue >());
std::unique_ptr<drawinglayer::processor2d::BaseProcessor2D> pProcessor;
pProcessor.reset(drawinglayer::processor2d::createProcessor2DFromOutputDevice(rRenderContext, aViewInformation2D));
std::unique_ptr<drawinglayer::processor2d::BaseProcessor2D> pProcessor(
drawinglayer::processor2d::createProcessor2DFromOutputDevice(rRenderContext, aViewInformation2D));
if (pProcessor)
{
pProcessor->process(aSequence);
......@@ -727,9 +726,8 @@ void PageWindow::drawFillAttributes(vcl::RenderContext& rRenderContext,
basegfx::B2DHomMatrix(), rRenderContext.GetViewTransformation(), aPaintRange, nullptr,
0.0, css::uno::Sequence<css::beans::PropertyValue >());
std::unique_ptr<drawinglayer::processor2d::BaseProcessor2D> pProcessor;
pProcessor.reset(drawinglayer::processor2d::createProcessor2DFromOutputDevice(rRenderContext, aViewInformation2D));
std::unique_ptr<drawinglayer::processor2d::BaseProcessor2D> pProcessor(
drawinglayer::processor2d::createProcessor2DFromOutputDevice(rRenderContext, aViewInformation2D));
if (pProcessor)
{
pProcessor->process(aSequence);
......
......@@ -911,15 +911,13 @@ bool paintUsingPrimitivesHelper(
uno::Sequence< beans::PropertyValue >());
// get a primitive processor for rendering
drawinglayer::processor2d::BaseProcessor2D* pProcessor2D =
std::unique_ptr<drawinglayer::processor2d::BaseProcessor2D> pProcessor2D(
drawinglayer::processor2d::createProcessor2DFromOutputDevice(
rOutputDevice, aViewInformation2D);
rOutputDevice, aViewInformation2D) );
if(pProcessor2D)
{
// render and cleanup
pProcessor2D->process(rSequence);
delete pProcessor2D;
return true;
}
}
......
......@@ -555,7 +555,7 @@ public:
const Color *pColor,
const SvxBorderLineStyle = SvxBorderLineStyle::SOLID ) const;
drawinglayer::processor2d::BaseProcessor2D * CreateProcessor2D( ) const;
std::unique_ptr<drawinglayer::processor2d::BaseProcessor2D> CreateProcessor2D( ) const;
void ProcessPrimitives( const drawinglayer::primitive2d::Primitive2DContainer& rSequence ) const;
// retouch, not in the area of the given Rect!
......
......@@ -1763,16 +1763,12 @@ bool DrawFillAttributes(
nullptr,
0.0,
uno::Sequence< beans::PropertyValue >());
drawinglayer::processor2d::BaseProcessor2D* pProcessor = drawinglayer::processor2d::createProcessor2DFromOutputDevice(
std::unique_ptr<drawinglayer::processor2d::BaseProcessor2D> pProcessor(drawinglayer::processor2d::createProcessor2DFromOutputDevice(
rOut,
aViewInformation2D);
aViewInformation2D) );
if(pProcessor)
{
pProcessor->process(*pPrimitives);
delete pProcessor;
return true;
}
}
......@@ -4959,7 +4955,7 @@ static const SwFrame* lcl_GetCellFrameForBorderAttrs( const SwFrame* _pC
return pRet;
}
drawinglayer::processor2d::BaseProcessor2D * SwFrame::CreateProcessor2D( ) const
std::unique_ptr<drawinglayer::processor2d::BaseProcessor2D> SwFrame::CreateProcessor2D( ) const
{
basegfx::B2DRange aViewRange;
......@@ -4979,12 +4975,10 @@ drawinglayer::processor2d::BaseProcessor2D * SwFrame::CreateProcessor2D( ) const
void SwFrame::ProcessPrimitives( const drawinglayer::primitive2d::Primitive2DContainer& rSequence ) const
{
drawinglayer::processor2d::BaseProcessor2D * pProcessor2D = CreateProcessor2D();
std::unique_ptr<drawinglayer::processor2d::BaseProcessor2D> pProcessor2D = CreateProcessor2D();
if ( pProcessor2D )
{
pProcessor2D->process( rSequence );
delete pProcessor2D;
}
}
......
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