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 }