Mercurial > fife-parpg
comparison engine/core/view/renderers/floatingtextrenderer.cpp @ 579:b2feacaed53c
* Added the colorbuffer patch with a small change due to SDL. Performance boost between 20-30% under OpenGL.
* Improved the most renderers with setColor() function.
* Fixed the genericrenderer, is now tested whether the images are in the viewport.
* Fixed the gridrenderer, the grid is now drawn only up to the viewport.
* Changed the vertex functions in opengl/renderbackendopengl.cpp from vertex3f() to vertex2f().
* Improved the Editor, now you can use blocking, grid and coordinate renderer over gui or keys. Additionally, the colors can be changed with the settings.xml.
author | helios2000@33b003aa-7bff-0310-803a-e67f0ece8222 |
---|---|
date | Sat, 31 Jul 2010 17:46:19 +0000 |
parents | 7b451e3b2439 |
children | 5e04f6349894 |
comparison
equal
deleted
inserted
replaced
578:54d83a0462ee | 579:b2feacaed53c |
---|---|
46 | 46 |
47 | 47 |
48 FloatingTextRenderer::FloatingTextRenderer(RenderBackend* renderbackend, int position, AbstractFont* font): | 48 FloatingTextRenderer::FloatingTextRenderer(RenderBackend* renderbackend, int position, AbstractFont* font): |
49 RendererBase(renderbackend, position), | 49 RendererBase(renderbackend, position), |
50 m_font(font) { | 50 m_font(font) { |
51 setEnabled(true); | 51 setEnabled(false); |
52 m_font_color = false; | |
53 m_color = m_font->getColor(); | |
52 } | 54 } |
53 | 55 |
54 FloatingTextRenderer::FloatingTextRenderer(const FloatingTextRenderer& old): | 56 FloatingTextRenderer::FloatingTextRenderer(const FloatingTextRenderer& old): |
55 RendererBase(old), | 57 RendererBase(old), |
56 m_font(old.m_font) { | 58 m_font(old.m_font), |
57 setEnabled(true); | 59 m_font_color(old.m_font_color), |
60 m_color(old.m_color) { | |
61 setEnabled(false); | |
58 } | 62 } |
59 | 63 |
60 RendererBase* FloatingTextRenderer::clone() { | 64 RendererBase* FloatingTextRenderer::clone() { |
61 return new FloatingTextRenderer(*this); | 65 return new FloatingTextRenderer(*this); |
62 } | 66 } |
69 return; | 73 return; |
70 } | 74 } |
71 | 75 |
72 RenderList::const_iterator instance_it = instances.begin(); | 76 RenderList::const_iterator instance_it = instances.begin(); |
73 const std::string* saytext = NULL; | 77 const std::string* saytext = NULL; |
74 | 78 SDL_Color old_color = m_font->getColor(); |
79 if(old_color.r != m_color.r || old_color.g != m_color.g || old_color.b != m_color.b) { | |
80 m_font->setColor(m_color.r, m_color.g, m_color.b); | |
81 m_font_color = true; | |
82 } | |
75 for (;instance_it != instances.end(); ++instance_it) { | 83 for (;instance_it != instances.end(); ++instance_it) { |
76 Instance* instance = (*instance_it)->instance; | 84 Instance* instance = (*instance_it)->instance; |
77 saytext = instance->getSayText(); | 85 saytext = instance->getSayText(); |
78 if (saytext) { | 86 if (saytext) { |
79 const Rect& ir = (*instance_it)->dimensions; | 87 const Rect& ir = (*instance_it)->dimensions; |
84 r.w = img->getWidth(); | 92 r.w = img->getWidth(); |
85 r.h = img->getHeight(); | 93 r.h = img->getHeight(); |
86 img->render(r); | 94 img->render(r); |
87 } | 95 } |
88 } | 96 } |
97 if(m_font_color) { | |
98 m_font->setColor(old_color.r, old_color.g, old_color.b); | |
99 m_font_color = false; | |
100 } | |
101 } | |
102 | |
103 void FloatingTextRenderer::setColor(Uint8 r, Uint8 g, Uint8 b) { | |
104 m_color.r = r; | |
105 m_color.g = g; | |
106 m_color.b = b; | |
89 } | 107 } |
90 | 108 |
91 FloatingTextRenderer* FloatingTextRenderer::getInstance(IRendererContainer* cnt) { | 109 FloatingTextRenderer* FloatingTextRenderer::getInstance(IRendererContainer* cnt) { |
92 return dynamic_cast<FloatingTextRenderer*>(cnt->getRenderer("FloatingTextRenderer")); | 110 return dynamic_cast<FloatingTextRenderer*>(cnt->getRenderer("FloatingTextRenderer")); |
93 } | 111 } |