MyScript Interactive Ink SDK  3.0.1
IRenderTarget.h
1 // Copyright @ MyScript. All rights reserved.
2 
3 #pragma once
4 
5 #include <memory>
6 
7 
8 namespace myscript {
9 namespace iink {
10 namespace graphics {
11 struct Transform;
12 class ICanvas;
13 }
14 
15 class Renderer;
16 
21 {
22  MODEL = 1 << 0,
23  CAPTURE = 1 << 1,
24  LayerType_ALL = (1 << 2) - 1,
25 };
26 
31 {
32 public:
33  virtual ~IRenderTarget() = default;
34 
41  virtual void invalidate(std::shared_ptr<Renderer> renderer, std::underlying_type<LayerType>::type layers) = 0;
42 
54  virtual void invalidate(std::shared_ptr<Renderer> renderer, int x, int y, int width, int height, std::underlying_type<LayerType>::type layers) = 0;
55 
63  virtual bool supportsOffscreenRendering() { return false; }
64 
72  virtual float getPixelDensity() { return 1.0f; }
73 
91  virtual uint32_t createOffscreenRenderSurface(int width, int height, bool alphaMask) { return (uint32_t)-1; };
92 
101  virtual void releaseOffscreenRenderSurface(uint32_t surfaceId) {}
102 
113  virtual std::shared_ptr<graphics::ICanvas> createOffscreenRenderCanvas(uint32_t surfaceId) { return nullptr; }
114 
123 };
124 
125 }
126 }
Definition: IRenderTarget.h:31
virtual uint32_t createOffscreenRenderSurface(int width, int height, bool alphaMask)
Definition: IRenderTarget.h:91
virtual float getPixelDensity()
Definition: IRenderTarget.h:72
virtual void releaseOffscreenRenderSurface(uint32_t surfaceId)
Definition: IRenderTarget.h:101
virtual std::shared_ptr< graphics::ICanvas > createOffscreenRenderCanvas(uint32_t surfaceId)
Definition: IRenderTarget.h:113
virtual ~IRenderTarget()=default
virtual bool supportsOffscreenRendering()
Definition: IRenderTarget.h:63
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:122
Definition: ICanvas.h:23
LayerType
Definition: IRenderTarget.h:21
@ LayerType_ALL
Definition: IRenderTarget.h:24
@ MODEL
Definition: IRenderTarget.h:22
@ CAPTURE
Definition: IRenderTarget.h:23
Definition: Configuration.h:11