diff options
24 files changed, 159 insertions, 155 deletions
diff --git a/canvas/source/vcl/spritecanvashelper.cxx b/canvas/source/vcl/spritecanvashelper.cxx index 8855dd567b71..51a234feca1c 100644 --- a/canvas/source/vcl/spritecanvashelper.cxx +++ b/canvas/source/vcl/spritecanvashelper.cxx @@ -324,7 +324,7 @@ namespace vclcanvas mpRedrawManager->forEachSprite( ::boost::bind( &spriteRedraw, - ::boost::ref( maVDev.get() ), + ::boost::ref( *maVDev.get() ), _1 ) ); // flush to screen @@ -582,7 +582,7 @@ namespace vclcanvas ::std::for_each( rSortedUpdateSprites.begin(), rSortedUpdateSprites.end(), ::boost::bind( &spriteRedrawStub2, - ::boost::ref( maVDev.get() ), + ::boost::ref( *maVDev.get() ), ::vcl::unotools::b2DPointFromPoint( aOutputPosition), _1 ) ); diff --git a/canvas/source/vcl/spritecanvashelper.hxx b/canvas/source/vcl/spritecanvashelper.hxx index 0396217065fc..a6b3c0393c8a 100644 --- a/canvas/source/vcl/spritecanvashelper.hxx +++ b/canvas/source/vcl/spritecanvashelper.hxx @@ -41,7 +41,7 @@ namespace vclcanvas { public: SpriteCanvasHelper(); - ~SpriteCanvasHelper() + ~SpriteCanvasHelper(); void init( const OutDevProviderSharedPtr& rOutDev, SpriteCanvas& rOwningSpriteCanvas, diff --git a/include/svx/sdrpaintwindow.hxx b/include/svx/sdrpaintwindow.hxx index 3a1f1ef7f986..d8f091885c95 100644 --- a/include/svx/sdrpaintwindow.hxx +++ b/include/svx/sdrpaintwindow.hxx @@ -50,10 +50,10 @@ PaintTransparentChildren(vcl::Window & rWindow, Rectangle const& rPixelRect); class SdrPreRenderDevice { // The original OutputDevice - OutputDevice& mrOutputDevice; + OutputDevice& mrOutputDevice; // The VirtualDevice for PreRendering - VirtualDevice maPreRenderDevice; + VclPtr<VirtualDevice> mpPreRenderDevice; public: explicit SdrPreRenderDevice(OutputDevice& rOriginal); @@ -63,7 +63,7 @@ public: void OutputPreRenderDevice(const vcl::Region& rExpandedRegion); OutputDevice& GetOriginalOutputDevice() const { return mrOutputDevice; } - OutputDevice& GetPreRenderDevice() { return maPreRenderDevice; } + OutputDevice& GetPreRenderDevice() { return *mpPreRenderDevice.get(); } }; diff --git a/include/svx/svdobj.hxx b/include/svx/svdobj.hxx index 971c5b250f0f..95019f2fcc7d 100644 --- a/include/svx/svdobj.hxx +++ b/include/svx/svdobj.hxx @@ -24,6 +24,7 @@ #include <com/sun/star/uno/Any.hxx> #include <cppuhelper/weakref.hxx> #include <rtl/ustring.hxx> +#include <vcl/vclptr.hxx> #include <svl/lstner.hxx> #include <svl/poolitem.hxx> #include <svx/svdtypes.hxx> @@ -174,7 +175,7 @@ class SVX_DLLPUBLIC SdrObjMacroHitRec public: Point aPos; Point aDownPos; - OutputDevice* pOut; + VclPtr<OutputDevice> pOut; const SetOfByte* pVisiLayer; const SdrPageView* pPageView; sal_uInt16 nTol; diff --git a/include/svx/svdpntv.hxx b/include/svx/svdpntv.hxx index 0959f1c239ab..49ecbe9a19b0 100644 --- a/include/svx/svdpntv.hxx +++ b/include/svx/svdpntv.hxx @@ -135,8 +135,8 @@ protected: #ifdef DBG_UTIL VclPtr<SdrItemBrowser> pItemBrowser; #endif - const OutputDevice* pActualOutDev; // Nur zum vergleichen - OutputDevice* pDragWin; + VclPtr<OutputDevice> pActualOutDev; // Nur zum vergleichen + VclPtr<OutputDevice> pDragWin; SfxStyleSheet* pDefaultStyleSheet; OUString aAktLayer; // Aktueller Zeichenlayer diff --git a/svx/source/svdraw/sdrpaintwindow.cxx b/svx/source/svdraw/sdrpaintwindow.cxx index 22e4167850de..d9cfce3e0c37 100644 --- a/svx/source/svdraw/sdrpaintwindow.cxx +++ b/svx/source/svdraw/sdrpaintwindow.cxx @@ -113,31 +113,33 @@ void CandidateMgr::PaintTransparentChildren(vcl::Window & rWindow, Rectangle con } SdrPreRenderDevice::SdrPreRenderDevice(OutputDevice& rOriginal) -: mrOutputDevice(rOriginal) +: mrOutputDevice(rOriginal), + mpPreRenderDevice(new VirtualDevice()) { } SdrPreRenderDevice::~SdrPreRenderDevice() { + mpPreRenderDevice.disposeAndClear(); } void SdrPreRenderDevice::PreparePreRenderDevice() { - // compare size of maPreRenderDevice with size of visible area - if(maPreRenderDevice.GetOutputSizePixel() != mrOutputDevice.GetOutputSizePixel()) + // compare size of mpPreRenderDevice with size of visible area + if(mpPreRenderDevice->GetOutputSizePixel() != mrOutputDevice.GetOutputSizePixel()) { - maPreRenderDevice.SetOutputSizePixel(mrOutputDevice.GetOutputSizePixel()); + mpPreRenderDevice->SetOutputSizePixel(mrOutputDevice.GetOutputSizePixel()); } // Also compare the MapModes for zoom/scroll changes - if(maPreRenderDevice.GetMapMode() != mrOutputDevice.GetMapMode()) + if(mpPreRenderDevice->GetMapMode() != mrOutputDevice.GetMapMode()) { - maPreRenderDevice.SetMapMode(mrOutputDevice.GetMapMode()); + mpPreRenderDevice->SetMapMode(mrOutputDevice.GetMapMode()); } // #i29186# - maPreRenderDevice.SetDrawMode(mrOutputDevice.GetDrawMode()); - maPreRenderDevice.SetSettings(mrOutputDevice.GetSettings()); + mpPreRenderDevice->SetDrawMode(mrOutputDevice.GetDrawMode()); + mpPreRenderDevice->SetSettings(mrOutputDevice.GetSettings()); } void SdrPreRenderDevice::OutputPreRenderDevice(const vcl::Region& rExpandedRegion) @@ -149,9 +151,9 @@ void SdrPreRenderDevice::OutputPreRenderDevice(const vcl::Region& rExpandedRegio // MapModes off bool bMapModeWasEnabledDest(mrOutputDevice.IsMapModeEnabled()); - bool bMapModeWasEnabledSource(maPreRenderDevice.IsMapModeEnabled()); + bool bMapModeWasEnabledSource(mpPreRenderDevice->IsMapModeEnabled()); mrOutputDevice.EnableMapMode(false); - maPreRenderDevice.EnableMapMode(false); + mpPreRenderDevice->EnableMapMode(false); RectangleVector aRectangles; aRegionPixel.GetRegionRectangles(aRectangles); @@ -165,7 +167,7 @@ void SdrPreRenderDevice::OutputPreRenderDevice(const vcl::Region& rExpandedRegio mrOutputDevice.DrawOutDev( aTopLeft, aSize, aTopLeft, aSize, - maPreRenderDevice); + *mpPreRenderDevice.get()); #ifdef DBG_UTIL // #i74769# @@ -186,7 +188,7 @@ void SdrPreRenderDevice::OutputPreRenderDevice(const vcl::Region& rExpandedRegio } mrOutputDevice.EnableMapMode(bMapModeWasEnabledDest); - maPreRenderDevice.EnableMapMode(bMapModeWasEnabledSource); + mpPreRenderDevice->EnableMapMode(bMapModeWasEnabledSource); } diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx index 660bb9041a16..f46b07d9c0a2 100644 --- a/svx/source/svdraw/svdedxv.cxx +++ b/svx/source/svdraw/svdedxv.cxx @@ -1733,7 +1733,7 @@ void SdrObjEditView::ImpMacroUp(const Point& rUpPos) aHitRec.nTol=nMacroTol; aHitRec.pVisiLayer=&pMacroPV->GetVisibleLayers(); aHitRec.pPageView=pMacroPV; - aHitRec.pOut=pMacroWin; + aHitRec.pOut=pMacroWin.get(); pMacroObj->PaintMacro(*pMacroWin,Rectangle(),aHitRec); bMacroDown=false; } @@ -1750,7 +1750,7 @@ void SdrObjEditView::ImpMacroDown(const Point& rDownPos) aHitRec.pVisiLayer=&pMacroPV->GetVisibleLayers(); aHitRec.pPageView=pMacroPV; aHitRec.bDown=true; - aHitRec.pOut=pMacroWin; + aHitRec.pOut=pMacroWin.get(); pMacroObj->PaintMacro(*pMacroWin,Rectangle(),aHitRec); bMacroDown=true; } @@ -1766,7 +1766,7 @@ void SdrObjEditView::MovMacroObj(const Point& rPnt) aHitRec.pVisiLayer=&pMacroPV->GetVisibleLayers(); aHitRec.pPageView=pMacroPV; aHitRec.bDown=bMacroDown; - aHitRec.pOut=pMacroWin; + aHitRec.pOut=pMacroWin.get(); bool bDown=pMacroObj->IsMacroHit(aHitRec); if (bDown) ImpMacroDown(rPnt); else ImpMacroUp(rPnt); @@ -1794,7 +1794,7 @@ bool SdrObjEditView::EndMacroObj() aHitRec.pVisiLayer=&pMacroPV->GetVisibleLayers(); aHitRec.pPageView=pMacroPV; aHitRec.bDown=true; - aHitRec.pOut=pMacroWin; + aHitRec.pOut=pMacroWin.get(); bool bRet=pMacroObj->DoMacro(aHitRec); pMacroObj=NULL; pMacroPV=NULL; diff --git a/svx/source/svdraw/svdpntv.cxx b/svx/source/svdraw/svdpntv.cxx index 7ee54bfd1370..f058b4e0c009 100644 --- a/svx/source/svdraw/svdpntv.cxx +++ b/svx/source/svdraw/svdpntv.cxx @@ -406,7 +406,7 @@ sal_uInt16 SdrPaintView::ImpGetHitTolLogic(short nHitTol, const OutputDevice* pO void SdrPaintView::TheresNewMapMode() { - if (pActualOutDev!=NULL) { + if (pActualOutDev) { nHitTolLog=(sal_uInt16)pActualOutDev->PixelToLogic(Size(nHitTolPix,0)).Width(); nMinMovLog=(sal_uInt16)pActualOutDev->PixelToLogic(Size(nMinMovPix,0)).Width(); } @@ -414,7 +414,7 @@ void SdrPaintView::TheresNewMapMode() void SdrPaintView::SetActualWin(const OutputDevice* pWin) { - pActualOutDev=pWin; + pActualOutDev = const_cast<OutputDevice *>(pWin); TheresNewMapMode(); } diff --git a/svx/source/svdraw/svdview.cxx b/svx/source/svdraw/svdview.cxx index 44cb7f006792..e2dd8d4dc3f1 100644 --- a/svx/source/svdraw/svdview.cxx +++ b/svx/source/svdraw/svdview.cxx @@ -488,7 +488,7 @@ SdrHitKind SdrView::PickAnything(const Point& rLogicPos, SdrViewEvent& rVEvt) co // we currently don't account for ticker text if(pActualOutDev && pActualOutDev->GetOutDevType() == OUTDEV_WINDOW) { - OutlinerView aOLV(pOutliner, const_cast<vcl::Window*>(static_cast<const vcl::Window*>(pActualOutDev))); + OutlinerView aOLV(pOutliner, const_cast<vcl::Window*>(static_cast<const vcl::Window*>(pActualOutDev.get()))); const EditView& aEV=aOLV.GetEditView(); const SvxFieldItem* pItem=aEV.GetField(aTemporaryTextRelativePosition); if (pItem!=NULL) { @@ -822,7 +822,7 @@ bool SdrView::DoMouseEvent(const SdrViewEvent& rVEvt) if (eHit==SDRHIT_TEXTEDIT) { bool bRet2(pActualOutDev && OUTDEV_WINDOW == pActualOutDev->GetOutDevType() && - SdrBeginTextEdit(rVEvt.pObj, rVEvt.pPV, const_cast<vcl::Window*>(static_cast<const vcl::Window*>(pActualOutDev)), false, (SdrOutliner*)0L)); + SdrBeginTextEdit(rVEvt.pObj, rVEvt.pPV, const_cast<vcl::Window*>(static_cast<const vcl::Window*>(pActualOutDev.get())), false, (SdrOutliner*)0L)); if(bRet2) { @@ -906,7 +906,7 @@ bool SdrView::DoMouseEvent(const SdrViewEvent& rVEvt) } else bRet=BegCreateObj(aLogicPos); } break; case SDREVENT_BEGMACROOBJ: { - bRet=BegMacroObj(aLogicPos,nHitTolLog,rVEvt.pObj,rVEvt.pPV,const_cast<vcl::Window*>(static_cast<const vcl::Window*>(pActualOutDev))); + bRet=BegMacroObj(aLogicPos,nHitTolLog,rVEvt.pObj,rVEvt.pPV,const_cast<vcl::Window*>(static_cast<const vcl::Window*>(pActualOutDev.get()))); } break; case SDREVENT_BEGTEXTEDIT: { if (!IsObjMarked(rVEvt.pObj)) { @@ -915,7 +915,7 @@ bool SdrView::DoMouseEvent(const SdrViewEvent& rVEvt) } bRet = pActualOutDev && OUTDEV_WINDOW == pActualOutDev->GetOutDevType()&& - SdrBeginTextEdit(rVEvt.pObj, rVEvt.pPV, const_cast<vcl::Window*>(static_cast<const vcl::Window*>(pActualOutDev)), false, (SdrOutliner*)0L); + SdrBeginTextEdit(rVEvt.pObj, rVEvt.pPV, const_cast<vcl::Window*>(static_cast<const vcl::Window*>(pActualOutDev.get())), false, (SdrOutliner*)0L); if(bRet) { @@ -927,8 +927,8 @@ bool SdrView::DoMouseEvent(const SdrViewEvent& rVEvt) } break; default: break; } // switch - if (bRet && pActualOutDev!=NULL && pActualOutDev->GetOutDevType()==OUTDEV_WINDOW) { - vcl::Window* pWin=const_cast<vcl::Window*>(static_cast<const vcl::Window*>(pActualOutDev)); + if (bRet && pActualOutDev && pActualOutDev->GetOutDevType()==OUTDEV_WINDOW) { + vcl::Window* pWin=const_cast<vcl::Window*>(static_cast<const vcl::Window*>(pActualOutDev.get())); // left mouse button pressed? bool bLeftDown=(rVEvt.nMouseCode&MOUSE_LEFT)!=0 && rVEvt.bMouseDown; // left mouse button released? @@ -970,7 +970,7 @@ Pointer SdrView::GetPreferredPointer(const Point& rMousePos, const OutputDevice* aHitRec.nTol=nMacroTol; aHitRec.pVisiLayer=&pMacroPV->GetVisibleLayers(); aHitRec.pPageView=pMacroPV; - aHitRec.pOut=pMacroWin; + aHitRec.pOut=pMacroWin.get(); aHitRec.bDown=bMacroDown; return pMacroObj->GetMacroPointer(aHitRec); } diff --git a/svx/source/unodraw/UnoGraphicExporter.cxx b/svx/source/unodraw/UnoGraphicExporter.cxx index cc58203958b8..9c10297095c5 100644 --- a/svx/source/unodraw/UnoGraphicExporter.cxx +++ b/svx/source/unodraw/UnoGraphicExporter.cxx @@ -624,7 +624,7 @@ bool GraphicExporter::GetGraphic( ExportSettings& rSettings, Graphic& aGraphic, if( !pPage ) return false; - VirtualDevice aVDev; + ScopedVclPtr<VirtualDevice> aVDev( new VirtualDevice() ); const MapMode aMap( mpDoc->GetScaleUnit(), Point(), rSettings.maScaleX, rSettings.maScaleY ); SdrOutliner& rOutl=mpDoc->GetDrawOutliner(NULL); @@ -704,15 +704,15 @@ bool GraphicExporter::GetGraphic( ExportSettings& rSettings, Graphic& aGraphic, boost::scoped_ptr< SdrView > pLocalView; if( PTR_CAST( FmFormModel, mpDoc ) ) { - pLocalView.reset( new FmFormView( PTR_CAST( FmFormModel, mpDoc ), &aVDev ) ); + pLocalView.reset( new FmFormView( PTR_CAST( FmFormModel, mpDoc ), aVDev ) ); } else { - pLocalView.reset( new SdrView( mpDoc, &aVDev ) ); + pLocalView.reset( new SdrView( mpDoc, aVDev ) ); } - boost::scoped_ptr<VirtualDevice> pVDev(CreatePageVDev( pPage, nWidthPix, nHeightPix )); + ScopedVclPtr<VirtualDevice> pVDev(CreatePageVDev( pPage, nWidthPix, nHeightPix )); if( pVDev ) { @@ -726,22 +726,22 @@ bool GraphicExporter::GetGraphic( ExportSettings& rSettings, Graphic& aGraphic, { GDIMetaFile aMtf; - aVDev.SetMapMode( aMap ); + aVDev->SetMapMode( aMap ); if( rSettings.mbUseHighContrast ) - aVDev.SetDrawMode( aVDev.GetDrawMode() | DRAWMODE_SETTINGSLINE | DRAWMODE_SETTINGSFILL | DRAWMODE_SETTINGSTEXT | DRAWMODE_SETTINGSGRADIENT ); - aVDev.EnableOutput( false ); - aMtf.Record( &aVDev ); + aVDev->SetDrawMode( aVDev->GetDrawMode() | DRAWMODE_SETTINGSLINE | DRAWMODE_SETTINGSFILL | DRAWMODE_SETTINGSTEXT | DRAWMODE_SETTINGSGRADIENT ); + aVDev->EnableOutput( false ); + aMtf.Record( aVDev ); Size aNewSize; // create a view boost::scoped_ptr< SdrView > pView; if( PTR_CAST( FmFormModel, mpDoc ) ) { - pView.reset(new FmFormView( PTR_CAST( FmFormModel, mpDoc ), &aVDev )); + pView.reset(new FmFormView( PTR_CAST( FmFormModel, mpDoc ), aVDev )); } else { - pView.reset(new SdrView( mpDoc, &aVDev )); + pView.reset(new SdrView( mpDoc, aVDev )); } pView->SetBordVisible( false ); @@ -754,17 +754,17 @@ bool GraphicExporter::GetGraphic( ExportSettings& rSettings, Graphic& aGraphic, const Rectangle aClipRect( aNewOrg, aNewSize ); MapMode aVMap( aMap ); - aVDev.Push(); + aVDev->Push(); aVMap.SetOrigin( Point( -aNewOrg.X(), -aNewOrg.Y() ) ); - aVDev.SetRelativeMapMode( aVMap ); - aVDev.IntersectClipRegion( aClipRect ); + aVDev->SetRelativeMapMode( aVMap ); + aVDev->IntersectClipRegion( aClipRect ); // Use new StandardCheckVisisbilityRedirector ImplExportCheckVisisbilityRedirector aRedirector( mpCurrentPage ); - pView->CompleteRedraw(&aVDev, vcl::Region(Rectangle(aNewOrg, aNewSize)), &aRedirector); + pView->CompleteRedraw(aVDev, vcl::Region(Rectangle(aNewOrg, aNewSize)), &aRedirector); - aVDev.Pop(); + aVDev->Pop(); aMtf.Stop(); aMtf.WindStart(); @@ -907,7 +907,7 @@ bool GraphicExporter::GetGraphic( ExportSettings& rSettings, Graphic& aGraphic, if( !bSingleGraphic ) { // create a metafile for all shapes - VirtualDevice aOut; + ScopedVclPtr<VirtualDevice> aOut; // calculate bound rect for all shapes Rectangle aBound; @@ -927,18 +927,18 @@ bool GraphicExporter::GetGraphic( ExportSettings& rSettings, Graphic& aGraphic, } } - aOut.EnableOutput( false ); - aOut.SetMapMode( aMap ); + aOut->EnableOutput( false ); + aOut->SetMapMode( aMap ); if( rSettings.mbUseHighContrast ) - aOut.SetDrawMode( aOut.GetDrawMode() | DRAWMODE_SETTINGSLINE | DRAWMODE_SETTINGSFILL | DRAWMODE_SETTINGSTEXT | DRAWMODE_SETTINGSGRADIENT ); + aOut->SetDrawMode( aOut->GetDrawMode() | DRAWMODE_SETTINGSLINE | DRAWMODE_SETTINGSFILL | DRAWMODE_SETTINGSTEXT | DRAWMODE_SETTINGSGRADIENT ); GDIMetaFile aMtf; aMtf.Clear(); - aMtf.Record( &aOut ); + aMtf.Record( aOut ); MapMode aOutMap( aMap ); aOutMap.SetOrigin( Point( -aBound.TopLeft().X(), -aBound.TopLeft().Y() ) ); - aOut.SetRelativeMapMode( aOutMap ); + aOut->SetRelativeMapMode( aOutMap ); sdr::contact::DisplayInfo aDisplayInfo; @@ -956,7 +956,7 @@ bool GraphicExporter::GetGraphic( ExportSettings& rSettings, Graphic& aGraphic, { // more effective way to paint a vector of SdrObjects. Hand over the processed page // to have it in the - sdr::contact::ObjectContactOfObjListPainter aMultiObjectPainter(aOut, aShapes, mpCurrentPage); + sdr::contact::ObjectContactOfObjListPainter aMultiObjectPainter(*aOut.get(), aShapes, mpCurrentPage); ImplExportCheckVisisbilityRedirector aCheckVisibilityRedirector(mpCurrentPage); aMultiObjectPainter.SetViewObjectContactRedirector(&aCheckVisibilityRedirector); @@ -966,7 +966,7 @@ bool GraphicExporter::GetGraphic( ExportSettings& rSettings, Graphic& aGraphic, aMtf.Stop(); aMtf.WindStart(); - const Size aExtSize( aOut.PixelToLogic( Size( 0, 0 ) ) ); + const Size aExtSize( aOut->PixelToLogic( Size( 0, 0 ) ) ); Size aBoundSize( aBound.GetWidth() + ( aExtSize.Width() ), aBound.GetHeight() + ( aExtSize.Height() ) ); diff --git a/svx/source/unodraw/unoshape.cxx b/svx/source/unodraw/unoshape.cxx index 58a3e7d14ff4..9c1981ee027f 100644 --- a/svx/source/unodraw/unoshape.cxx +++ b/svx/source/unodraw/unoshape.cxx @@ -670,13 +670,13 @@ uno::Any SvxShape::GetBitmap( bool bMetaFile /* = false */ ) const if( !mpObj.is() || mpModel == NULL || !mpObj->IsInserted() || NULL == mpObj->GetPage() ) return aAny; - VirtualDevice aVDev; - aVDev.SetMapMode(MapMode(MAP_100TH_MM)); + ScopedVclPtr<VirtualDevice> pVDev( new VirtualDevice() ); + pVDev->SetMapMode(MapMode(MAP_100TH_MM)); SdrModel* pModel = mpObj->GetModel(); SdrPage* pPage = mpObj->GetPage(); - boost::scoped_ptr<E3dView> pView(new E3dView( pModel, &aVDev )); + boost::scoped_ptr<E3dView> pView(new E3dView( pModel, pVDev.get() )); pView->hideMarkHandles(); SdrPageView* pPageView = pView->ShowSdrPage(pPage); diff --git a/svx/source/xoutdev/_xoutbmp.cxx b/svx/source/xoutdev/_xoutbmp.cxx index 1f39734d3dff..5e4a7e7d8b99 100644 --- a/svx/source/xoutdev/_xoutbmp.cxx +++ b/svx/source/xoutdev/_xoutbmp.cxx @@ -250,27 +250,27 @@ sal_uInt16 XOutBitmap::WriteGraphic( const Graphic& rGraphic, OUString& rFileNam { if( pMtfSize_100TH_MM && ( rGraphic.GetType() != GRAPHIC_BITMAP ) ) { - VirtualDevice aVDev; - const Size aSize( aVDev.LogicToPixel( *pMtfSize_100TH_MM, MAP_100TH_MM ) ); + ScopedVclPtr< VirtualDevice > pVDev(new VirtualDevice()); + const Size aSize( pVDev->LogicToPixel( *pMtfSize_100TH_MM, MAP_100TH_MM ) ); - if( aVDev.SetOutputSizePixel( aSize ) ) + if( pVDev->SetOutputSizePixel( aSize ) ) { - const Wallpaper aWallpaper( aVDev.GetBackground() ); + const Wallpaper aWallpaper( pVDev->GetBackground() ); const Point aPt; - aVDev.SetBackground( Wallpaper( Color( COL_BLACK ) ) ); - aVDev.Erase(); - rGraphic.Draw( &aVDev, aPt, aSize ); + pVDev->SetBackground( Wallpaper( Color( COL_BLACK ) ) ); + pVDev->Erase(); + rGraphic.Draw( pVDev.get(), aPt, aSize ); - const Bitmap aBitmap( aVDev.GetBitmap( aPt, aSize ) ); + const Bitmap aBitmap( pVDev->GetBitmap( aPt, aSize ) ); - aVDev.SetBackground( aWallpaper ); - aVDev.Erase(); - rGraphic.Draw( &aVDev, aPt, aSize ); + pVDev->SetBackground( aWallpaper ); + pVDev->Erase(); + rGraphic.Draw( pVDev.get(), aPt, aSize ); - aVDev.SetRasterOp( ROP_XOR ); - aVDev.DrawBitmap( aPt, aSize, aBitmap ); - aGraphic = BitmapEx( aBitmap, aVDev.GetBitmap( aPt, aSize ) ); + pVDev->SetRasterOp( ROP_XOR ); + pVDev->DrawBitmap( aPt, aSize, aBitmap ); + aGraphic = BitmapEx( aBitmap, pVDev->GetBitmap( aPt, aSize ) ); } else aGraphic = rGraphic.GetBitmapEx(); @@ -283,13 +283,13 @@ sal_uInt16 XOutBitmap::WriteGraphic( const Graphic& rGraphic, OUString& rFileNam { if( pMtfSize_100TH_MM && ( rGraphic.GetType() != GRAPHIC_BITMAP ) ) { - VirtualDevice aVDev; - const Size aSize( aVDev.LogicToPixel( *pMtfSize_100TH_MM, MAP_100TH_MM ) ); + ScopedVclPtr< VirtualDevice > pVDev(new VirtualDevice()); + const Size aSize( pVDev->LogicToPixel( *pMtfSize_100TH_MM, MAP_100TH_MM ) ); - if( aVDev.SetOutputSizePixel( aSize ) ) + if( pVDev->SetOutputSizePixel( aSize ) ) { - rGraphic.Draw( &aVDev, Point(), aSize ); - aGraphic = aVDev.GetBitmap( Point(), aSize ); + rGraphic.Draw( pVDev.get(), Point(), aSize ); + aGraphic = pVDev->GetBitmap( Point(), aSize ); } else aGraphic = rGraphic.GetBitmap(); diff --git a/svx/source/xoutdev/xattrbmp.cxx b/svx/source/xoutdev/xattrbmp.cxx index 0518bdddf0e6..cecfc7c27725 100644 --- a/svx/source/xoutdev/xattrbmp.cxx +++ b/svx/source/xoutdev/xattrbmp.cxx @@ -140,7 +140,7 @@ const GraphicObject& XOBitmap::GetGraphicObject() const void XOBitmap::Bitmap2Array() { - VirtualDevice aVD; + ScopedVclPtr<VirtualDevice> pVDev( new VirtualDevice() ); bool bPixelColor = false; const Bitmap aBitmap( GetBitmap() ); const sal_uInt16 nLines = 8; // type dependent @@ -148,23 +148,23 @@ void XOBitmap::Bitmap2Array() if( !pPixelArray ) pPixelArray = new sal_uInt16[ nLines * nLines ]; - aVD.SetOutputSizePixel( aBitmap.GetSizePixel() ); - aVD.DrawBitmap( Point(), aBitmap ); - aPixelColor = aBckgrColor = aVD.GetPixel( Point() ); + pVDev->SetOutputSizePixel( aBitmap.GetSizePixel() ); + pVDev->DrawBitmap( Point(), aBitmap ); + aPixelColor = aBckgrColor = pVDev->GetPixel( Point() ); // create array and determine foreground and background color for( sal_uInt16 i = 0; i < nLines; i++ ) { for( sal_uInt16 j = 0; j < nLines; j++ ) { - if ( aVD.GetPixel( Point( j, i ) ) == aBckgrColor ) + if ( pVDev->GetPixel( Point( j, i ) ) == aBckgrColor ) *( pPixelArray + j + i * nLines ) = 0; else { *( pPixelArray + j + i * nLines ) = 1; if( !bPixelColor ) { - aPixelColor = aVD.GetPixel( Point( j, i ) ); + aPixelColor = pVDev->GetPixel( Point( j, i ) ); bPixelColor = true; } } @@ -175,13 +175,13 @@ void XOBitmap::Bitmap2Array() /// convert array, fore- and background color into a bitmap void XOBitmap::Array2Bitmap() { - VirtualDevice aVD; - sal_uInt16 nLines = 8; // type dependent + ScopedVclPtr<VirtualDevice> pVDev( new VirtualDevice() ); + sal_uInt16 nLines = 8; // type dependent if( !pPixelArray ) return; - aVD.SetOutputSizePixel( Size( nLines, nLines ) ); + pVDev->SetOutputSizePixel( Size( nLines, nLines ) ); // create bitmap for( sal_uInt16 i = 0; i < nLines; i++ ) @@ -189,13 +189,13 @@ void XOBitmap::Array2Bitmap() for( sal_uInt16 j = 0; j < nLines; j++ ) { if( *( pPixelArray + j + i * nLines ) == 0 ) - aVD.DrawPixel( Point( j, i ), aBckgrColor ); + pVDev->DrawPixel( Point( j, i ), aBckgrColor ); else - aVD.DrawPixel( Point( j, i ), aPixelColor ); + pVDev->DrawPixel( Point( j, i ), aPixelColor ); } } - aGraphicObject = GraphicObject( aVD.GetBitmap( Point(), Size( nLines, nLines ) ) ); + aGraphicObject = GraphicObject( pVDev->GetBitmap( Point(), Size( nLines, nLines ) ) ); bGraphicDirty = false; } diff --git a/svx/source/xoutdev/xtabdash.cxx b/svx/source/xoutdev/xtabdash.cxx index 129490a8b82a..07d02a1c724e 100644 --- a/svx/source/xoutdev/xtabdash.cxx +++ b/svx/source/xoutdev/xtabdash.cxx @@ -135,11 +135,11 @@ Bitmap XDashList::ImpCreateBitmapForXDash(const XDash* pDash) aStrokeAttribute)); // prepare VirtualDevice - VirtualDevice aVirtualDevice; + ScopedVclPtr< VirtualDevice > pVirtualDevice(new VirtualDevice()); const drawinglayer::geometry::ViewInformation2D aNewViewInformation2D; - aVirtualDevice.SetOutputSizePixel(aSize); - aVirtualDevice.SetDrawMode(rStyleSettings.GetHighContrastMode() + pVirtualDevice->SetOutputSizePixel(aSize); + pVirtualDevice->SetDrawMode(rStyleSettings.GetHighContrastMode() ? DRAWMODE_SETTINGSLINE | DRAWMODE_SETTINGSFILL | DRAWMODE_SETTINGSTEXT | DRAWMODE_SETTINGSGRADIENT : DRAWMODE_DEFAULT); @@ -150,17 +150,17 @@ Bitmap XDashList::ImpCreateBitmapForXDash(const XDash* pDash) static const Color aW(COL_WHITE); static const Color aG(0xef, 0xef, 0xef); - aVirtualDevice.DrawCheckered(aNull, aSize, nLen, aW, aG); + pVirtualDevice->DrawCheckered(aNull, aSize, nLen, aW, aG); } else { - aVirtualDevice.SetBackground(rStyleSettings.GetFieldColor()); - aVirtualDevice.Erase(); + pVirtualDevice->SetBackground(rStyleSettings.GetFieldColor()); + pVirtualDevice->Erase(); } // create processor and draw primitives boost::scoped_ptr<drawinglayer::processor2d::BaseProcessor2D> pProcessor2D(drawinglayer::processor2d::createPixelProcessor2DFromOutputDevice( - aVirtualDevice, + *pVirtualDevice.get(), aNewViewInformation2D)); if(pProcessor2D) @@ -172,7 +172,7 @@ Bitmap XDashList::ImpCreateBitmapForXDash(const XDash* pDash) } // get result bitmap and scale - Bitmap aRetval(aVirtualDevice.GetBitmap(Point(0, 0), aVirtualDevice.GetOutputSizePixel())); + Bitmap aRetval(pVirtualDevice->GetBitmap(Point(0, 0), pVirtualDevice->GetOutputSizePixel())); if(1 != nFactor) { diff --git a/svx/source/xoutdev/xtabgrdt.cxx b/svx/source/xoutdev/xtabgrdt.cxx index f25a215fd29f..560765974e4c 100644 --- a/svx/source/xoutdev/xtabgrdt.cxx +++ b/svx/source/xoutdev/xtabgrdt.cxx @@ -181,17 +181,17 @@ Bitmap XGradientList::CreateBitmapForUI( long nIndex ) aBlack)); // prepare VirtualDevice - VirtualDevice aVirtualDevice; + ScopedVclPtr< VirtualDevice > pVirtualDevice(new VirtualDevice()); const drawinglayer::geometry::ViewInformation2D aNewViewInformation2D; - aVirtualDevice.SetOutputSizePixel(rSize); - aVirtualDevice.SetDrawMode(rStyleSettings.GetHighContrastMode() + pVirtualDevice->SetOutputSizePixel(rSize); + pVirtualDevice->SetDrawMode(rStyleSettings.GetHighContrastMode() ? DRAWMODE_SETTINGSLINE | DRAWMODE_SETTINGSFILL | DRAWMODE_SETTINGSTEXT | DRAWMODE_SETTINGSGRADIENT : DRAWMODE_DEFAULT); // create processor and draw primitives boost::scoped_ptr<drawinglayer::processor2d::BaseProcessor2D> pProcessor2D(drawinglayer::processor2d::createPixelProcessor2DFromOutputDevice( - aVirtualDevice, + *pVirtualDevice.get(), aNewViewInformation2D)); if(pProcessor2D) @@ -206,7 +206,7 @@ Bitmap XGradientList::CreateBitmapForUI( long nIndex ) } // get result bitmap and scale - aRetval = aVirtualDevice.GetBitmap(Point(0, 0), aVirtualDevice.GetOutputSizePixel()); + aRetval = pVirtualDevice->GetBitmap(Point(0, 0), pVirtualDevice->GetOutputSizePixel()); } return aRetval; diff --git a/svx/source/xoutdev/xtabhtch.cxx b/svx/source/xoutdev/xtabhtch.cxx index ba73c5c7c8b4..555347669a3b 100644 --- a/svx/source/xoutdev/xtabhtch.cxx +++ b/svx/source/xoutdev/xtabhtch.cxx @@ -142,11 +142,11 @@ Bitmap XHatchList::CreateBitmapForUI( long nIndex ) aBlack)); // prepare VirtualDevice - VirtualDevice aVirtualDevice; + ScopedVclPtr< VirtualDevice > pVirtualDevice(new VirtualDevice()); const drawinglayer::geometry::ViewInformation2D aNewViewInformation2D; - aVirtualDevice.SetOutputSizePixel(rSize); - aVirtualDevice.SetDrawMode(rStyleSettings.GetHighContrastMode() + pVirtualDevice->SetOutputSizePixel(rSize); + pVirtualDevice->SetDrawMode(rStyleSettings.GetHighContrastMode() ? DRAWMODE_SETTINGSLINE | DRAWMODE_SETTINGSFILL | DRAWMODE_SETTINGSTEXT | DRAWMODE_SETTINGSGRADIENT : DRAWMODE_DEFAULT); @@ -156,17 +156,17 @@ Bitmap XHatchList::CreateBitmapForUI( long nIndex ) static const sal_uInt32 nLen(8); static const Color aW(COL_WHITE); static const Color aG(0xef, 0xef, 0xef); - aVirtualDevice.DrawCheckered(aNull, rSize, nLen, aW, aG); + pVirtualDevice->DrawCheckered(aNull, rSize, nLen, aW, aG); } else { - aVirtualDevice.SetBackground(rStyleSettings.GetFieldColor()); - aVirtualDevice.Erase(); + pVirtualDevice->SetBackground(rStyleSettings.GetFieldColor()); + pVirtualDevice->Erase(); } // create processor and draw primitives boost::scoped_ptr<drawinglayer::processor2d::BaseProcessor2D> pProcessor2D(drawinglayer::processor2d::createPixelProcessor2DFromOutputDevice( - aVirtualDevice, + *pVirtualDevice.get(), aNewViewInformation2D)); if(pProcessor2D) @@ -180,7 +180,7 @@ Bitmap XHatchList::CreateBitmapForUI( long nIndex ) } // get result bitmap and scale - aRetval = aVirtualDevice.GetBitmap(Point(0, 0), aVirtualDevice.GetOutputSizePixel()); + aRetval = pVirtualDevice->GetBitmap(Point(0, 0), pVirtualDevice->GetOutputSizePixel()); } return aRetval; diff --git a/svx/source/xoutdev/xtablend.cxx b/svx/source/xoutdev/xtablend.cxx index cd4dae3f091b..1c5b8a843bf3 100644 --- a/svx/source/xoutdev/xtablend.cxx +++ b/svx/source/xoutdev/xtablend.cxx @@ -125,11 +125,11 @@ Bitmap XLineEndList::CreateBitmapForUI( long nIndex ) aLineStartEndAttribute)); // prepare VirtualDevice - VirtualDevice aVirtualDevice; + ScopedVclPtr< VirtualDevice > pVirtualDevice(new VirtualDevice()); const drawinglayer::geometry::ViewInformation2D aNewViewInformation2D; - aVirtualDevice.SetOutputSizePixel(aSize); - aVirtualDevice.SetDrawMode(rStyleSettings.GetHighContrastMode() + pVirtualDevice->SetOutputSizePixel(aSize); + pVirtualDevice->SetDrawMode(rStyleSettings.GetHighContrastMode() ? DRAWMODE_SETTINGSLINE | DRAWMODE_SETTINGSFILL | DRAWMODE_SETTINGSTEXT | DRAWMODE_SETTINGSGRADIENT : DRAWMODE_DEFAULT); @@ -139,17 +139,17 @@ Bitmap XLineEndList::CreateBitmapForUI( long nIndex ) static const sal_uInt32 nLen(8); static const Color aW(COL_WHITE); static const Color aG(0xef, 0xef, 0xef); - aVirtualDevice.DrawCheckered(aNull, aSize, nLen, aW, aG); + pVirtualDevice->DrawCheckered(aNull, aSize, nLen, aW, aG); } else { - aVirtualDevice.SetBackground(rStyleSettings.GetFieldColor()); - aVirtualDevice.Erase(); + pVirtualDevice->SetBackground(rStyleSettings.GetFieldColor()); + pVirtualDevice->Erase(); } // create processor and draw primitives boost::scoped_ptr<drawinglayer::processor2d::BaseProcessor2D> pProcessor2D(drawinglayer::processor2d::createPixelProcessor2DFromOutputDevice( - aVirtualDevice, + *pVirtualDevice.get(), aNewViewInformation2D)); if(pProcessor2D) @@ -161,7 +161,7 @@ Bitmap XLineEndList::CreateBitmapForUI( long nIndex ) } // get result bitmap and scale - aRetval = aVirtualDevice.GetBitmap(Point(0, 0), aVirtualDevice.GetOutputSizePixel()); + aRetval = pVirtualDevice->GetBitmap(Point(0, 0), pVirtualDevice->GetOutputSizePixel()); } return aRetval; diff --git a/sw/inc/viewsh.hxx b/sw/inc/viewsh.hxx index 7ad04e5c948b..610d9633f4d7 100644 --- a/sw/inc/viewsh.hxx +++ b/sw/inc/viewsh.hxx @@ -125,12 +125,12 @@ class SW_DLLPUBLIC SwViewShell : public sw::Ring<SwViewShell> SwRect maInvalidRect; SfxViewShell *mpSfxViewShell; - SwViewShellImp *mpImp; // Core-internals of SwViewShell. - // The pointer is never 0. + SwViewShellImp *mpImp; // Core-internals of SwViewShell. + // The pointer is never 0. - VclPtr<::vcl::Window> mpWin; ///< = 0 during printing or pdf export - OutputDevice *mpOut; ///< Window, Printer, VirtDev, ... - OutputDevice* mpTmpRef; // Temporariy reference device. Is used + VclPtr<::vcl::Window> mpWin; ///< = 0 during printing or pdf export + VclPtr<OutputDevice> mpOut; ///< Window, Printer, VirtDev, ... + VclPtr<OutputDevice> mpTmpRef; // Temporariy reference device. Is used // during (printer depending) prospect // and page preview printing // (because a scaling has to be set at @@ -161,7 +161,7 @@ class SW_DLLPUBLIC SwViewShell : public sw::Ring<SwViewShell> bool mbInConstructor:1; SdrPaintWindow* mpTargetPaintWindow; - OutputDevice* mpBufferedOut; + VclPtr<OutputDevice> mpBufferedOut; SwRootFrmPtr mpLayout; @@ -236,7 +236,7 @@ public: // #i72754# set of Pre/PostPaints with lock counter and initial target OutDev protected: std::stack<vcl::Region> mPrePostPaintRegions; // acts also as a lock counter (empty == not locked) - OutputDevice* mpPrePostOutDev; + VclPtr<OutputDevice> mpPrePostOutDev; MapMode maPrePostMapMode; public: void PrePaint(); diff --git a/sw/qa/tiledrendering/tiledrendering.cxx b/sw/qa/tiledrendering/tiledrendering.cxx index dfedd6ba8036..c89d6f49574e 100644 --- a/sw/qa/tiledrendering/tiledrendering.cxx +++ b/sw/qa/tiledrendering/tiledrendering.cxx @@ -131,13 +131,13 @@ IMPL_LINK ( TiledRenderingDialog, RenderHdl, Button *, EMPTYARG ) // SystemGraphicsData aData; // [setup the aData] // VirtualDevice aDevice(&aData, [color depth]); - VirtualDevice aDevice; + ScopedVclPtr< VirtualDevice > pDevice(new VirtualDevice()); // paint to it - pViewShell->PaintTile(aDevice, contextWidth, contextHeight, tilePosX, tilePosY, tileWidth, tileHeight); + pViewShell->PaintTile(*pDevice.get(), contextWidth, contextHeight, tilePosX, tilePosY, tileWidth, tileHeight); // copy the aDevice content to mpImage - Bitmap aBitmap(aDevice.GetBitmap(aDevice.PixelToLogic(Point(0,0)), aDevice.PixelToLogic(Size(contextWidth, contextHeight)))); + Bitmap aBitmap(pDevice->GetBitmap(aDevice->PixelToLogic(Point(0,0)), pDevice->PixelToLogic(Size(contextWidth, contextHeight)))); mpImage->SetImage(Image(aBitmap)); // update the dialog size diff --git a/sw/source/core/frmedt/fecopy.cxx b/sw/source/core/frmedt/fecopy.cxx index 0e36a90abc63..91ac5290f87a 100644 --- a/sw/source/core/frmedt/fecopy.cxx +++ b/sw/source/core/frmedt/fecopy.cxx @@ -1239,15 +1239,15 @@ bool SwFEShell::GetDrawObjGraphic( SotClipboardFormatId nFmt, Graphic& rGrf ) co Point aPt; GetGrfSize( aSz ); - VirtualDevice aVirtDev; - aVirtDev.EnableOutput( false ); + ScopedVclPtr< VirtualDevice > pVirtDev(new VirtualDevice()); + pVirtDev->EnableOutput( false ); MapMode aTmp( GetWin()->GetMapMode() ); aTmp.SetOrigin( aPt ); - aVirtDev.SetMapMode( aTmp ); + pVirtDev->SetMapMode( aTmp ); GDIMetaFile aMtf; - aMtf.Record( &aVirtDev ); + aMtf.Record( pVirtDev.get() ); aGrf.Draw( &aVirtDev, aPt, aSz ); aMtf.Stop(); aMtf.SetPrefMapMode( aTmp ); @@ -1266,14 +1266,14 @@ bool SwFEShell::GetDrawObjGraphic( SotClipboardFormatId nFmt, Graphic& rGrf ) co // Otherwise it could happen that for vector graphics // many MB's of memory are allocated. const Size aSz( FindFlyFrm()->Prt().SSize() ); - VirtualDevice aVirtDev( *GetWin() ); + ScopedVclPtr< VirtualDevice > pVirtDev(new VirtualDevice(*GetWin())); MapMode aTmp( MAP_TWIP ); - aVirtDev.SetMapMode( aTmp ); - if( aVirtDev.SetOutputSize( aSz ) ) + pVirtDev->SetMapMode( aTmp ); + if( pVirtDev->SetOutputSize( aSz ) ) { - aGrf.Draw( &aVirtDev, Point(), aSz ); - rGrf = aVirtDev.GetBitmap( Point(), aSz ); + aGrf.Draw( pVirtDev.get(), Point(), aSz ); + rGrf = pVirtDev->GetBitmap( Point(), aSz ); } else { diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx index 2f129a3a35a2..00ce3847aab1 100644 --- a/sw/source/core/layout/paintfrm.cxx +++ b/sw/source/core/layout/paintfrm.cxx @@ -7640,21 +7640,21 @@ Graphic SwFlyFrmFmt::MakeGraphic( ImageMap* pMap ) SwFlyFrm *pFly = static_cast<SwFlyFrm*>(pFirst); OutputDevice *pOld = pSh->GetOut(); - VirtualDevice aDev( *pOld ); - aDev.EnableOutput( false ); + ScopedVclPtr< VirtualDevice > pDev( new VirtualDevice( *pOld ) ); + pDev->EnableOutput( false ); GDIMetaFile aMet; MapMode aMap( pOld->GetMapMode().GetMapUnit() ); - aDev.SetMapMode( aMap ); + pDev->SetMapMode( aMap ); aMet.SetPrefMapMode( aMap ); ::SwCalcPixStatics( pSh->GetOut() ); aMet.SetPrefSize( pFly->Frm().SSize() ); - aMet.Record( &aDev ); - aDev.SetLineColor(); - aDev.SetFillColor(); - aDev.SetFont( pOld->GetFont() ); + aMet.Record( pDev.get() ); + pDev->SetLineColor(); + pDev->SetFillColor(); + pDev->SetFont( pOld->GetFont() ); //Enlarge the rectangle if needed, so the border is painted too. SwRect aOut( pFly->Frm() ); diff --git a/sw/source/core/view/vnew.cxx b/sw/source/core/view/vnew.cxx index 5fdaf05ba411..cd7bd856c530 100644 --- a/sw/source/core/view/vnew.cxx +++ b/sw/source/core/view/vnew.cxx @@ -371,7 +371,7 @@ SwViewShell::~SwViewShell() } } - delete mpTmpRef; + mpTmpRef.disposeAndClear(); delete mpAccOptions; } diff --git a/sw/source/filter/ww8/wrtww8gr.cxx b/sw/source/filter/ww8/wrtww8gr.cxx index 355ef9bda016..2d3db2b581fb 100644 --- a/sw/source/filter/ww8/wrtww8gr.cxx +++ b/sw/source/filter/ww8/wrtww8gr.cxx @@ -726,9 +726,9 @@ void SwWW8WrGrf::WriteGrfFromGrfNode(SvStream& rStrm, const SwGrfNode &rGrfNd, { case GRAPHIC_BITMAP: // Bitmap -> play in Metafile { - VirtualDevice aVirt; - aMeta.Record(&aVirt); - aVirt.DrawBitmap( Point( 0,0 ), rGrf.GetBitmap() ); + ScopedVclPtr< VirtualDevice > pVirt(new VirtualDevice()); + aMeta.Record(pVirt.get()); + pVirt->DrawBitmap( Point( 0,0 ), rGrf.GetBitmap() ); aMeta.Stop(); aMeta.WindStart(); aMeta.SetPrefMapMode( rGrf.GetPrefMapMode()); @@ -854,9 +854,9 @@ void SwWW8WrGrf::WriteGrfForBullet(SvStream& rStrm, const Graphic &rGrf, sal_uIn { case GRAPHIC_BITMAP: // Bitmap -> in Metafile abspielen { - VirtualDevice aVirt; - aMeta.Record(&aVirt); - aVirt.DrawBitmap( Point( 0,0 ), rGrf.GetBitmap() ); + ScopedVclPtr< VirtualDevice > pVirt(new VirtualDevice()); + aMeta.Record(pVirt.get()); + pVirt->DrawBitmap( Point( 0,0 ), rGrf.GetBitmap() ); aMeta.Stop(); aMeta.WindStart(); aMeta.SetPrefMapMode( rGrf.GetPrefMapMode()); diff --git a/vcl/workben/vcldemo.cxx b/vcl/workben/vcldemo.cxx index 23daa29a1c87..508d38fe7647 100644 --- a/vcl/workben/vcldemo.cxx +++ b/vcl/workben/vcldemo.cxx @@ -945,7 +945,8 @@ public: BitmapEx AlphaRecovery(OutputDevice &rDev, Point aPt, BitmapEx &aSrc) { // Compositing onto 2x colors beyond our control - VirtualDevice aWhite, aBlack; + ScopedVclPtr< VirtualDevice > aWhite(new VirtualDevice()); + ScopedVclPtr< VirtualDevice > aBlack(new VirtualDevice()); aWhite.SetOutputSizePixel(aSrc.GetSizePixel()); aWhite.SetBackground(Wallpaper(COL_WHITE)); aWhite.Erase(); @@ -1503,7 +1504,7 @@ public: DrawWallpaper(aWholeSize, aWallpaper); Pop(); - VirtualDevice aDev(*this); + ScopedVclPtr< VirtualDevice > aDev(new VirtualDevice(*this)); aDev.EnableRTL(IsRTLEnabled()); aDev.SetOutputSizePixel(aExclude.GetSize()); |