Mercurial > hg > orthanc-stone
diff Framework/Viewport/WebAssemblyViewport.h @ 907:722ee73e6ba2
cleanup + started to implement WebAssemblyCairoViewport (wip)
author | Alain Mazy <alain@mazy.be> |
---|---|
date | Thu, 18 Jul 2019 09:19:39 +0200 |
parents | 88bf49aebc13 |
children | a6c12fe88bcb |
line wrap: on
line diff
--- a/Framework/Viewport/WebAssemblyViewport.h Wed Jul 17 16:56:53 2019 +0200 +++ b/Framework/Viewport/WebAssemblyViewport.h Thu Jul 18 09:19:39 2019 +0200 @@ -23,28 +23,70 @@ #include "../OpenGL/WebAssemblyOpenGLContext.h" #include "../Scene2D/OpenGLCompositor.h" +#include "../Scene2D/CairoCompositor.h" #include "ViewportBase.h" namespace OrthancStone { class WebAssemblyViewport : public ViewportBase { + public: + WebAssemblyViewport(const std::string& identifier) + : ViewportBase(identifier) + { + } + + WebAssemblyViewport(const std::string& identifier, + boost::shared_ptr<Scene2D>& scene) + : ViewportBase(identifier, scene) + { + } + }; + + class WebAssemblyOpenGLViewport : public WebAssemblyViewport + { private: OpenGL::WebAssemblyOpenGLContext context_; OpenGLCompositor compositor_; public: - WebAssemblyViewport(const std::string& canvas); + WebAssemblyOpenGLViewport(const std::string& canvas); - WebAssemblyViewport(const std::string& canvas, - boost::shared_ptr<Scene2D>& scene); + WebAssemblyOpenGLViewport(const std::string& canvas, + boost::shared_ptr<Scene2D>& scene); // This function must be called each time the browser window is resized void UpdateSize(); - ICompositor& GetCompositor() + virtual ICompositor& GetCompositor() { return compositor_; } }; + + class WebAssemblyCairoViewport : public WebAssemblyViewport + { + private: + CairoCompositor compositor_; + + public: + WebAssemblyCairoViewport(const std::string& canvas, + unsigned int width, + unsigned int height); + + WebAssemblyCairoViewport(const std::string& canvas, + boost::shared_ptr<Scene2D>& scene, + unsigned int width, + unsigned int height); + + // This function must be called each time the browser window is resized + void UpdateSize(); // TODO: implement + + // TODO: implement Refresh + virtual ICompositor& GetCompositor() + { + return compositor_; + } + }; + }