22 #ifndef FIFE_OFFRENDERER_H
23 #define FIFE_OFFRENDERER_H
33 #include "video/animation.h"
39 class OffRendererElementInfo {
41 virtual void render(RenderBackend* renderbackend) {};
42 virtual ~OffRendererElementInfo() {};
45 class OffRendererLineInfo :
public OffRendererElementInfo {
47 void render(RenderBackend* renderbackend);
48 OffRendererLineInfo(Point n1, Point n2, uint8_t r, uint8_t g, uint8_t b, uint8_t a);
49 virtual ~OffRendererLineInfo() {};
58 class OffRendererPointInfo :
public OffRendererElementInfo {
60 void render(RenderBackend* renderbackend);
61 OffRendererPointInfo(Point n, uint8_t r, uint8_t g, uint8_t b, uint8_t a);
62 virtual ~OffRendererPointInfo() {};
70 class OffRendererTriangleInfo :
public OffRendererElementInfo {
72 void render(RenderBackend* renderbackend);
73 OffRendererTriangleInfo(Point n1, Point n2, Point n3, uint8_t r, uint8_t g, uint8_t b, uint8_t a);
74 virtual ~OffRendererTriangleInfo() {};
84 class OffRendererQuadInfo :
public OffRendererElementInfo {
86 void render(RenderBackend* renderbackend);
87 OffRendererQuadInfo(Point n1, Point n2, Point n3, Point n4, uint8_t r, uint8_t g, uint8_t b, uint8_t a);
88 virtual ~OffRendererQuadInfo() {};
100 class OffRendererVertexInfo :
public OffRendererElementInfo {
102 void render(RenderBackend* renderbackend);
103 OffRendererVertexInfo(Point center, int32_t size, uint8_t r, uint8_t g, uint8_t b, uint8_t a);
104 virtual ~OffRendererVertexInfo() {};
114 class OffRendererImageInfo :
public OffRendererElementInfo {
116 void render(RenderBackend* renderbackend);
117 OffRendererImageInfo(Point n, ImagePtr image);
118 virtual ~OffRendererImageInfo() {};
123 class OffRendererAnimationInfo :
public OffRendererElementInfo {
125 void render(RenderBackend* renderbackend);
126 OffRendererAnimationInfo(Point n, AnimationPtr animation);
127 virtual ~OffRendererAnimationInfo() {};
130 AnimationPtr m_animation;
131 uint32_t m_start_time;
134 class OffRendererTextInfo :
public OffRendererElementInfo {
136 void render(RenderBackend* renderbackend);
137 OffRendererTextInfo(Point n, IFont* font, std::string text);
138 virtual ~OffRendererTextInfo() {};
144 class OffRendererResizeInfo :
public OffRendererElementInfo {
146 void render(RenderBackend* renderbackend);
147 OffRendererResizeInfo(Point n, ImagePtr image, int32_t width, int32_t height);
148 virtual ~OffRendererResizeInfo() {};
160 OffRenderer(RenderBackend* renderbackend);
164 virtual ~OffRenderer();
166 void setEnabled(
bool enabled);
168 void setClipArea(Rect area);
169 const Rect& getClipArea()
const;
172 void addLine(
const std::string &group, Point n1, Point n2, uint8_t r, uint8_t g, uint8_t b, uint8_t a = 255);
173 void addPoint(
const std::string &group, Point n, uint8_t r, uint8_t g, uint8_t b, uint8_t a = 255);
174 void addTriangle(
const std::string &group, Point n1, Point n2, Point n3, uint8_t r, uint8_t g, uint8_t b, uint8_t a = 255);
175 void addQuad(
const std::string &group, Point n1, Point n2, Point n3, Point n4, uint8_t r, uint8_t g, uint8_t b, uint8_t a = 255);
176 void addVertex(
const std::string &group, Point n, int32_t size, uint8_t r, uint8_t g, uint8_t b, uint8_t a = 255);
177 void addText(
const std::string &group, Point n, IFont* font,
const std::string &text);
178 void addImage(
const std::string &group, Point n, ImagePtr image);
179 void addAnimation(
const std::string &group, Point n, AnimationPtr animation);
180 void resizeImage(
const std::string &group, Point n, ImagePtr image, int32_t width, int32_t height);
181 void removeAll(
const std::string &group);
185 std::map<std::string, std::vector<OffRendererElementInfo*> > m_groups;
186 RenderBackend* m_renderbackend;