Kaydet (Commit) 3a091f8c authored tarafından Michael Meeks's avatar Michael Meeks

Unwind VCLObject bits for OutputDevice derivatives.

Change-Id: I1abdf0a6d43029fb29e5cbc6c3f788aa98f55a1f
üst b5f08b33
...@@ -43,14 +43,20 @@ namespace vclcanvas ...@@ -43,14 +43,20 @@ namespace vclcanvas
} }
} }
BackBuffer::~BackBuffer()
{
SolarMutexGuard aGuard;
maVDev.disposeAndClear();
}
OutputDevice& BackBuffer::getOutDev() OutputDevice& BackBuffer::getOutDev()
{ {
return maVDev.get(); return *maVDev.get();
} }
const OutputDevice& BackBuffer::getOutDev() const const OutputDevice& BackBuffer::getOutDev() const
{ {
return maVDev.get(); return *maVDev.get();
} }
void BackBuffer::setSize( const ::Size& rNewSize ) void BackBuffer::setSize( const ::Size& rNewSize )
......
...@@ -43,6 +43,7 @@ namespace vclcanvas ...@@ -43,6 +43,7 @@ namespace vclcanvas
*/ */
BackBuffer( const OutputDevice& rRefDevice, BackBuffer( const OutputDevice& rRefDevice,
bool bMonochromeBuffer=false ); bool bMonochromeBuffer=false );
~BackBuffer();
virtual OutputDevice& getOutDev() SAL_OVERRIDE; virtual OutputDevice& getOutDev() SAL_OVERRIDE;
virtual const OutputDevice& getOutDev() const SAL_OVERRIDE; virtual const OutputDevice& getOutDev() const SAL_OVERRIDE;
...@@ -50,7 +51,7 @@ namespace vclcanvas ...@@ -50,7 +51,7 @@ namespace vclcanvas
void setSize( const ::Size& rNewSize ); void setSize( const ::Size& rNewSize );
private: private:
::canvas::vcltools::VCLObject<VirtualDevice> maVDev; VclPtr< VirtualDevice > maVDev;
}; };
typedef ::boost::shared_ptr< BackBuffer > BackBufferSharedPtr; typedef ::boost::shared_ptr< BackBuffer > BackBufferSharedPtr;
......
...@@ -189,6 +189,12 @@ namespace vclcanvas ...@@ -189,6 +189,12 @@ namespace vclcanvas
#endif #endif
} }
SpriteCanvasHelper::~SpriteCanvasHelper()
{
SolarMutexGuard aGuard;
maVDev.disposeAndClear();
}
void SpriteCanvasHelper::init( const OutDevProviderSharedPtr& rOutDev, void SpriteCanvasHelper::init( const OutDevProviderSharedPtr& rOutDev,
SpriteCanvas& rOwningSpriteCanvas, SpriteCanvas& rOwningSpriteCanvas,
::canvas::SpriteRedrawManager& rManager, ::canvas::SpriteRedrawManager& rManager,
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
#include <com/sun/star/rendering/XSpriteCanvas.hpp> #include <com/sun/star/rendering/XSpriteCanvas.hpp>
#include <com/sun/star/rendering/XIntegerBitmap.hpp> #include <com/sun/star/rendering/XIntegerBitmap.hpp>
#include <vcl/vclptr.hxx>
#include <vcl/virdev.hxx> #include <vcl/virdev.hxx>
#include <canvas/spriteredrawmanager.hxx> #include <canvas/spriteredrawmanager.hxx>
...@@ -40,6 +41,7 @@ namespace vclcanvas ...@@ -40,6 +41,7 @@ namespace vclcanvas
{ {
public: public:
SpriteCanvasHelper(); SpriteCanvasHelper();
~SpriteCanvasHelper()
void init( const OutDevProviderSharedPtr& rOutDev, void init( const OutDevProviderSharedPtr& rOutDev,
SpriteCanvas& rOwningSpriteCanvas, SpriteCanvas& rOwningSpriteCanvas,
...@@ -150,7 +152,7 @@ namespace vclcanvas ...@@ -150,7 +152,7 @@ namespace vclcanvas
Typically, sprites will be composited in the background, Typically, sprites will be composited in the background,
before pushing them to screen. This happens here. before pushing them to screen. This happens here.
*/ */
::canvas::vcltools::VCLObject< VirtualDevice > maVDev; VclPtr< VirtualDevice > maVDev;
/// For the frame counter timings /// For the frame counter timings
::canvas::tools::ElapsedTime maLastUpdate; ::canvas::tools::ElapsedTime maLastUpdate;
......
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