MyScript Interactive Ink SDK  4.0.0
IRenderTarget.h
1 // Copyright @ MyScript. All rights reserved.
2 
3 #pragma once
4 
5 #include <memory>
6 
7 namespace myscript {
8 namespace iink {
9 
10 namespace graphics {
11 class ICanvas;
12 }
13 
14 class Renderer;
15 
20 {
21  MODEL = 1 << 0,
22  CAPTURE = 1 << 1,
23  LayerType_ALL = (1 << 2) - 1,
24 };
25 
30 {
31 public:
32  virtual ~IRenderTarget() = default;
33 
40  virtual void invalidate(std::shared_ptr<Renderer> renderer, std::underlying_type<LayerType>::type layers) = 0;
41 
53  virtual void invalidate(std::shared_ptr<Renderer> renderer, int x, int y, int width, int height, std::underlying_type<LayerType>::type layers) = 0;
54 
62  virtual bool supportsOffscreenRendering() { return false; }
63 
71  virtual float getPixelDensity() { return 1.0f; }
72 
90  virtual uint32_t createOffscreenRenderSurface(int width, int height, bool alphaMask) { return (uint32_t)-1; };
91 
100  virtual void releaseOffscreenRenderSurface(uint32_t surfaceId) {}
101 
112  virtual std::shared_ptr<graphics::ICanvas> createOffscreenRenderCanvas(uint32_t surfaceId) { return nullptr; }
113 
122 };
123 
124 }
125 }
Definition: IRenderTarget.h:30
virtual uint32_t createOffscreenRenderSurface(int width, int height, bool alphaMask)
Definition: IRenderTarget.h:90
virtual float getPixelDensity()
Definition: IRenderTarget.h:71
virtual void releaseOffscreenRenderSurface(uint32_t surfaceId)
Definition: IRenderTarget.h:100
virtual std::shared_ptr< graphics::ICanvas > createOffscreenRenderCanvas(uint32_t surfaceId)
Definition: IRenderTarget.h:112
virtual ~IRenderTarget()=default
virtual bool supportsOffscreenRendering()
Definition: IRenderTarget.h:62
virtual void invalidate(std::shared_ptr< Renderer > renderer, int x, int y, int width, int height, std::underlying_type< LayerType >::type layers)=0
virtual void invalidate(std::shared_ptr< Renderer > renderer, std::underlying_type< LayerType >::type layers)=0
virtual void releaseOffscreenRenderCanvas(graphics::ICanvas *canvas)
Definition: IRenderTarget.h:121
Definition: ICanvas.h:26
LayerType
Definition: IRenderTarget.h:20
@ LayerType_ALL
Definition: IRenderTarget.h:23
@ MODEL
Definition: IRenderTarget.h:21
@ CAPTURE
Definition: IRenderTarget.h:22
Definition: Configuration.h:11