Mercurial > hg > orthanc-stone
comparison Framework/Scene2D/CairoCompositor.h @ 848:80829436ce0c am-mainline
starting to re-implement radiography editor with latest framework
author | Alain Mazy <alain@mazy.be> |
---|---|
date | Thu, 13 Jun 2019 16:47:02 +0200 |
parents | c237e0625065 |
children | 6e79e8c9021c |
comparison
equal
deleted
inserted
replaced
842:2b245953b44b | 848:80829436ce0c |
---|---|
27 #include "Internals/ICairoContextProvider.h" | 27 #include "Internals/ICairoContextProvider.h" |
28 | 28 |
29 namespace OrthancStone | 29 namespace OrthancStone |
30 { | 30 { |
31 class CairoCompositor : | 31 class CairoCompositor : |
32 public ICompositor, | |
32 private Internals::CompositorHelper::IRendererFactory, | 33 private Internals::CompositorHelper::IRendererFactory, |
33 private Internals::ICairoContextProvider | 34 private Internals::ICairoContextProvider |
34 { | 35 { |
35 private: | 36 private: |
36 typedef std::map<size_t, GlyphBitmapAlphabet*> Fonts; | 37 typedef std::map<size_t, GlyphBitmapAlphabet*> Fonts; |
42 // Only valid during a call to "Refresh()" | 43 // Only valid during a call to "Refresh()" |
43 std::auto_ptr<CairoContext> context_; | 44 std::auto_ptr<CairoContext> context_; |
44 | 45 |
45 virtual cairo_t* GetCairoContext(); | 46 virtual cairo_t* GetCairoContext(); |
46 | 47 |
47 virtual unsigned int GetCairoWidth() | |
48 { | |
49 return canvas_.GetWidth(); | |
50 } | |
51 | |
52 virtual unsigned int GetCairoHeight() | |
53 { | |
54 return canvas_.GetHeight(); | |
55 } | |
56 | |
57 virtual Internals::CompositorHelper::ILayerRenderer* Create(const ISceneLayer& layer); | 48 virtual Internals::CompositorHelper::ILayerRenderer* Create(const ISceneLayer& layer); |
58 | 49 |
59 public: | 50 public: |
60 CairoCompositor(const Scene2D& scene, | 51 CairoCompositor(const Scene2D& scene, |
61 unsigned int canvasWidth, | 52 unsigned int canvasWidth, |
62 unsigned int canvasHeight); | 53 unsigned int canvasHeight); |
63 | 54 |
64 ~CairoCompositor(); | 55 ~CairoCompositor(); |
56 | |
57 virtual unsigned int GetWidth() const | |
58 { | |
59 return canvas_.GetWidth(); | |
60 } | |
61 | |
62 virtual unsigned int GetHeight() const | |
63 { | |
64 return canvas_.GetHeight(); | |
65 } | |
65 | 66 |
66 const CairoSurface& GetCanvas() const | 67 const CairoSurface& GetCanvas() const |
67 { | 68 { |
68 return canvas_; | 69 return canvas_; |
69 } | 70 } |
76 Orthanc::EmbeddedResources::FileResourceId resource, | 77 Orthanc::EmbeddedResources::FileResourceId resource, |
77 unsigned int fontSize, | 78 unsigned int fontSize, |
78 Orthanc::Encoding codepage); | 79 Orthanc::Encoding codepage); |
79 #endif | 80 #endif |
80 | 81 |
81 void Refresh(); | 82 virtual void Refresh(); |
82 | 83 |
83 Orthanc::ImageAccessor* RenderText(size_t fontIndex, | 84 Orthanc::ImageAccessor* RenderText(size_t fontIndex, |
84 const std::string& utf8) const; | 85 const std::string& utf8) const; |
85 }; | 86 }; |
86 } | 87 } |