22 #ifndef FIFE_INSTANCERENDERER_H
23 #define FIFE_INSTANCERENDERER_H
35 #include "view/rendererbase.h"
43 class InstanceRenderer:
public RendererBase {
50 InstanceRenderer(RenderBackend* renderbackend,
int position, ImagePool* imagepool, AnimationPool* animpool);
52 InstanceRenderer(
const InstanceRenderer& old);
58 virtual ~InstanceRenderer();
59 void render(Camera* cam, Layer* layer, RenderList& instances);
60 std::string getName() {
return "InstanceRenderer"; }
64 void addOutlined(Instance* instance,
int r,
int g,
int b,
int width);
68 void addColored(Instance* instance,
int r,
int g,
int b);
72 void addTransparentArea(Instance* instance,
const std::list<std::string> &groups,
unsigned int w,
unsigned int h,
unsigned char trans,
bool front =
true);
76 void removeOutlined(Instance* instance);
80 void removeColored(Instance* instance);
84 void removeTransparentArea(Instance* instance);
88 void removeAllOutlines();
92 void removeAllColored();
96 void removeAllTransparentAreas();
101 void addIgnoreLight(
const std::list<std::string> &groups);
105 void removeIgnoreLight(
const std::list<std::string> &groups);
109 void removeAllIgnoreLight();
113 static InstanceRenderer* getInstance(IRendererContainer* cnt);
117 RenderBackend* getRenderBackend()
const {
return m_renderbackend;}
122 ImagePool* m_imagepool;
123 AnimationPool* m_animationpool;
125 std::list<std::string> m_unlit_groups;
156 std::list<std::string> groups;
165 typedef std::map<Instance*, OutlineInfo> InstanceToOutlines_t;
166 typedef std::map<Instance*, ColoringInfo> InstanceToColoring_t;
167 typedef std::map<Instance*, AreaInfo> InstanceToAreas_t;
169 InstanceToOutlines_t m_instance_outlines;
170 InstanceToColoring_t m_instance_colorings;
171 InstanceToAreas_t m_instance_areas;
175 Image* bindOutline(OutlineInfo& info, RenderItem& vc, Camera* cam);
176 Image* bindColoring(ColoringInfo& info, RenderItem& vc, Camera* cam);