Mercurial > hg > orthanc-stone
diff Framework/Scene2D/CairoCompositor.h @ 1211:d10d2acb8a02 broker
compositors do not keep a reference to the scene anymore
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 04 Dec 2019 16:47:21 +0100 |
parents | 685c9a2d115f |
children | 0ca50d275b9a |
line wrap: on
line diff
--- a/Framework/Scene2D/CairoCompositor.h Wed Dec 04 16:13:10 2019 +0100 +++ b/Framework/Scene2D/CairoCompositor.h Wed Dec 04 16:47:21 2019 +0100 @@ -37,7 +37,7 @@ private: typedef std::map<size_t, GlyphBitmapAlphabet*> Fonts; - Internals::CompositorHelper helper_; + std::auto_ptr<Internals::CompositorHelper> helper_; CairoSurface canvas_; Fonts fonts_; @@ -49,8 +49,7 @@ virtual Internals::CompositorHelper::ILayerRenderer* Create(const ISceneLayer& layer) ORTHANC_OVERRIDE; public: - CairoCompositor(const Scene2D& scene, - unsigned int canvasWidth, + CairoCompositor(unsigned int canvasWidth, unsigned int canvasHeight); virtual ~CairoCompositor(); @@ -80,7 +79,12 @@ Orthanc::Encoding codepage) ORTHANC_OVERRIDE; #endif - virtual void Refresh() ORTHANC_OVERRIDE; + virtual void Refresh(const Scene2D& scene) ORTHANC_OVERRIDE; + + virtual void ResetScene() ORTHANC_OVERRIDE + { + helper_.reset(new Internals::CompositorHelper(*this)); + } void UpdateSize(unsigned int canvasWidth, unsigned int canvasHeight);