gramods
ChromaKeyTexture.hh
1 
2 
3 #ifndef GRAMODS_GRAPHICS_CHROMAKEYTEXTURE
4 #define GRAMODS_GRAPHICS_CHROMAKEYTEXTURE
5 
6 // Required before gmCore/OFactory.hh for some compilers
7 #include <gmCore/io_float.hh>
8 #include <gmCore/io_eigen.hh>
9 
10 #include <gmGraphics/Texture.hh>
11 
12 #include <gmCore/OFactory.hh>
13 
14 #include <memory>
15 
16 BEGIN_NAMESPACE_GMGRAPHICS;
17 
22  : public gmGraphics::Texture {
23 
24 public:
25 
27 
43  GLuint updateTexture(size_t frame_number, Eye eye) override;
44 
48  void setTexture(std::shared_ptr<TextureInterface> texture);
49 
55  void setKey(gmCore::float3 key);
56 
64  void setTolerance(gmCore::float2 tol);
65 
71  void traverse(Visitor *visitor) override;
72 
73  GM_OFI_DECLARE;
74 
75 private:
76 
77  struct Impl;
78  std::unique_ptr<Impl> _impl;
79 };
80 
81 END_NAMESPACE_GMGRAPHICS;
82 
83 #endif
Decoder of Yuv encoded texture into a new texture.
Definition: ChromaKeyTexture.hh:22
The base of classes providing texture data for rendering.
Definition: Texture.hh:18
std::array< float, 3 > float3
Array of 3 float.
Definition: io_float.hh:15
std::array< float, 2 > float2
Array of 2 float.
Definition: io_float.hh:9
The visitor of a design pattern for automatic traversal.
Definition: Object.hh:75
Definition: ChromaKeyTexture.cpp:18
An indexed eye that can be rendered.
Definition: Eye.hh:20