rag
graphic 2d engine
RenderTarget.h
1 #ifndef _RenderTarget_H_
2 #define _RenderTarget_H_
3 
4 #include "Material.h"
5 
6 namespace rag
7 {
9  struct Color4B
10  {
11  unsigned char r;
12  unsigned char g;
13  unsigned char b;
14  unsigned char a;
15  };
16 
18  struct Vertex
19  {
20  glm::vec2 position;
21  glm::vec2 texCoords;
22  Color4B color;
23  };
24 
26  enum PrimitiveType
27  {
28  Points,
29  Lines,
30  LineLoop,
31  LineStrip,
32  Triangles,
33  TriangleStrip,
34  TriangleFan
35  };
36 
37  typedef std::vector<Vertex> VertexArray;
38 
40 
45 {
46 
47 public:
48 
50  RenderTarget();
51 
53  virtual ~RenderTarget() {};
54 
56  void draw(const VertexArray& vertexArray, const Material& material);
57 
59  void flush();
60 
61 private:
62 
63  Material currentMaterial;
64  VertexArray batch;
65 
66 };
67 
68 } // rag
69 
70 #endif
void draw(const VertexArray &vertexArray, const Material &material)
Enqueues draw command.
Definition: RenderTarget.cpp:14
virtual ~RenderTarget()
Default destructor.
Definition: RenderTarget.h:53
Definition: Bitmap.h:8
RenderTarget()
Create a RenderTarget object.
Definition: RenderTarget.cpp:7
void flush()
Renders enqueued render commands.
Definition: RenderTarget.cpp:27
Color representation using 4 bytes.
Definition: RenderTarget.h:9
Object where DisplayObject instances with render capability are suposed to render.
Definition: RenderTarget.h:44
Represents a render material that would affect how objects will be rendered.
Definition: Material.h:39
Vertex representation.
Definition: RenderTarget.h:18