LiteRGSS 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. checksums.yaml +7 -0
  2. data/ext/LiteRGSS/Bitmap.cpp +316 -0
  3. data/ext/LiteRGSS/Bitmap.h +24 -0
  4. data/ext/LiteRGSS/BlendMode.cpp +202 -0
  5. data/ext/LiteRGSS/BlendMode.h +20 -0
  6. data/ext/LiteRGSS/CBitmap_Element.cpp +50 -0
  7. data/ext/LiteRGSS/CBitmap_Element.h +17 -0
  8. data/ext/LiteRGSS/CDrawable_Element.cpp +38 -0
  9. data/ext/LiteRGSS/CDrawable_Element.h +30 -0
  10. data/ext/LiteRGSS/CRect_Element.h +15 -0
  11. data/ext/LiteRGSS/CShaderSprite_Element.cpp +17 -0
  12. data/ext/LiteRGSS/CShaderSprite_Element.h +17 -0
  13. data/ext/LiteRGSS/CSprite_Element.cpp +15 -0
  14. data/ext/LiteRGSS/CSprite_Element.h +36 -0
  15. data/ext/LiteRGSS/CText_Element.cpp +12 -0
  16. data/ext/LiteRGSS/CText_Element.h +29 -0
  17. data/ext/LiteRGSS/CTone_Element.h +17 -0
  18. data/ext/LiteRGSS/CViewport_Element.cpp +224 -0
  19. data/ext/LiteRGSS/CViewport_Element.h +57 -0
  20. data/ext/LiteRGSS/Color.cpp +200 -0
  21. data/ext/LiteRGSS/Color.h +22 -0
  22. data/ext/LiteRGSS/Fonts.cpp +126 -0
  23. data/ext/LiteRGSS/Fonts.h +20 -0
  24. data/ext/LiteRGSS/Graphics.cpp +314 -0
  25. data/ext/LiteRGSS/Graphics.h +31 -0
  26. data/ext/LiteRGSS/Graphics.local.cpp +365 -0
  27. data/ext/LiteRGSS/Graphics.local.h +37 -0
  28. data/ext/LiteRGSS/Image.cpp +460 -0
  29. data/ext/LiteRGSS/Image.h +32 -0
  30. data/ext/LiteRGSS/Input.cpp +664 -0
  31. data/ext/LiteRGSS/Input.h +38 -0
  32. data/ext/LiteRGSS/LiteRGSS.cpp +34 -0
  33. data/ext/LiteRGSS/LiteRGSS.h +113 -0
  34. data/ext/LiteRGSS/Rect.cpp +324 -0
  35. data/ext/LiteRGSS/Rect.h +24 -0
  36. data/ext/LiteRGSS/Shader.cpp +279 -0
  37. data/ext/LiteRGSS/Shader.h +13 -0
  38. data/ext/LiteRGSS/ShaderSprite.cpp +78 -0
  39. data/ext/LiteRGSS/ShaderSprite.h +8 -0
  40. data/ext/LiteRGSS/Sprite.cpp +495 -0
  41. data/ext/LiteRGSS/Sprite.h +43 -0
  42. data/ext/LiteRGSS/Table.cpp +228 -0
  43. data/ext/LiteRGSS/Table.h +29 -0
  44. data/ext/LiteRGSS/Table32.cpp +228 -0
  45. data/ext/LiteRGSS/Table32.h +29 -0
  46. data/ext/LiteRGSS/Text.cpp +574 -0
  47. data/ext/LiteRGSS/Text.h +52 -0
  48. data/ext/LiteRGSS/Texture.hpp +735 -0
  49. data/ext/LiteRGSS/Tone.cpp +228 -0
  50. data/ext/LiteRGSS/Tone.h +22 -0
  51. data/ext/LiteRGSS/Viewport.cpp +491 -0
  52. data/ext/LiteRGSS/Viewport.h +33 -0
  53. data/ext/LiteRGSS/Yuki.cpp +29 -0
  54. data/ext/LiteRGSS/Yuki.h +8 -0
  55. data/ext/LiteRGSS/Yuki_Gif.cpp +218 -0
  56. data/ext/LiteRGSS/Yuki_Gif.h +25 -0
  57. data/ext/LiteRGSS/extconf.rb +8 -0
  58. data/ext/LiteRGSS/libnsgif.c +1169 -0
  59. data/ext/LiteRGSS/libnsgif.h +183 -0
  60. data/ext/LiteRGSS/libnsgif.hpp +184 -0
  61. data/ext/LiteRGSS/lodepng.cpp +6245 -0
  62. data/ext/LiteRGSS/lodepng.h +1769 -0
  63. data/ext/LiteRGSS/lzw.c +377 -0
  64. data/ext/LiteRGSS/lzw.h +105 -0
  65. data/ext/LiteRGSS/sf_Text2.cpp +690 -0
  66. data/ext/LiteRGSS/sf_Text2.hpp +549 -0
  67. data/ext/LiteRGSS/utils/log.h +21 -0
  68. metadata +112 -0
@@ -0,0 +1,20 @@
1
+ #ifndef L_BLENDMODE_HEADER
2
+ #define L_BLENDMODE_HEADER
3
+
4
+ VALUE rb_BlendMode_setColorSrcFactor(VALUE self, VALUE val);
5
+ VALUE rb_BlendMode_getColorSrcFactor(VALUE self);
6
+ VALUE rb_BlendMode_setColorDestFactor(VALUE self, VALUE val);
7
+ VALUE rb_BlendMode_getColorDestFactor(VALUE self);
8
+ VALUE rb_BlendMode_setAlphaSrcFactor(VALUE self, VALUE val);
9
+ VALUE rb_BlendMode_getAlphaSrcFactor(VALUE self);
10
+ VALUE rb_BlendMode_setAlphaDestFactor(VALUE self, VALUE val);
11
+ VALUE rb_BlendMode_getAlphaDestFactor(VALUE self);
12
+ VALUE rb_BlendMode_setColorEquation(VALUE self, VALUE val);
13
+ VALUE rb_BlendMode_getColorEquation(VALUE self);
14
+ VALUE rb_BlendMode_setAlphaEquation(VALUE self, VALUE val);
15
+ VALUE rb_BlendMode_getAlphaEquation(VALUE self);
16
+ VALUE rb_BlendMode_setBlendType(VALUE self, VALUE val);
17
+ VALUE rb_BlendMode_getBlendType(VALUE self);
18
+ VALUE rb_BlendMode_Copy(VALUE self);
19
+
20
+ #endif
@@ -0,0 +1,50 @@
1
+ #include "CBitmap_Element.h"
2
+
3
+
4
+ CBitmap_Element::CBitmap_Element()
5
+ {
6
+ text = new sf::Texture();
7
+ //img = nullptr;
8
+ }
9
+
10
+ CBitmap_Element::~CBitmap_Element()
11
+ {
12
+ if(text != nullptr)
13
+ {
14
+ delete text;
15
+ text = nullptr;
16
+ }
17
+ /*if(img != nullptr)
18
+ {
19
+ delete img;
20
+ img = nullptr;
21
+ }*/
22
+ }
23
+
24
+ sf::Texture* CBitmap_Element::getTexture()
25
+ {
26
+ return text;
27
+ }
28
+
29
+ void CBitmap_Element::copy(CBitmap_Element* original) {
30
+ sf::Image img = original->getTexture()->copyToImage();
31
+ text->loadFromImage(img);
32
+ }
33
+
34
+ sf::Image* CBitmap_Element::getImage()
35
+ {
36
+ /*if(img == nullptr)
37
+ {
38
+ if(text->getSize().x > 0)
39
+ {
40
+
41
+ }
42
+ else
43
+ img = new sf::Image();
44
+ }*/
45
+ if(!has_image())
46
+ {
47
+ img = text->copyToImage();
48
+ }
49
+ return &img;
50
+ }
@@ -0,0 +1,17 @@
1
+ #ifndef CBITMAP_ELEMENT_H
2
+ #define CBITMAP_ELEMENT_H
3
+ #include <SFML/Graphics.hpp>
4
+
5
+ class CBitmap_Element {
6
+ sf::Texture* text;
7
+ sf::Image img;
8
+ public:
9
+ CBitmap_Element();
10
+ ~CBitmap_Element();
11
+ sf::Texture* getTexture();
12
+ sf::Image* getImage();
13
+ void copy(CBitmap_Element* original);
14
+ bool has_image() { return img.getSize().x != 0; }; //return img != nullptr; };
15
+ };
16
+
17
+ #endif
@@ -0,0 +1,38 @@
1
+ #include "CDrawable_Element.h"
2
+ #include <iostream>
3
+
4
+ CDrawable_Element::CDrawable_Element()
5
+ {
6
+ origin_stack = nullptr;
7
+ linkedRect = nullptr;
8
+ index = 0;
9
+ }
10
+
11
+ void CDrawable_Element::setOriginStack(std::vector<CDrawable_Element*> *o)
12
+ {
13
+ /* Removing from the old stack */
14
+ if(origin_stack != nullptr)
15
+ {
16
+ auto it = std::find(origin_stack->begin(), origin_stack->end(), this);
17
+ if(it != origin_stack->end())
18
+ origin_stack->erase(it);
19
+ }
20
+ origin_stack = o;
21
+ if(o != nullptr)
22
+ {
23
+ origin_stack->push_back(this);
24
+ if(index == 0)
25
+ index = o->size();
26
+ }
27
+ }
28
+
29
+
30
+ void CDrawable_Element::setIndex(unsigned long nindex)
31
+ {
32
+ index = nindex;
33
+ }
34
+
35
+ unsigned long CDrawable_Element::getIndex()
36
+ {
37
+ return index;
38
+ }
@@ -0,0 +1,30 @@
1
+ #ifndef CDrawable_Element_H
2
+ #define CDrawable_Element_H
3
+ #include "ruby.h" // Windows Build Patch
4
+ #include <SFML/Graphics.hpp>
5
+ #include "sf_Text2.hpp"
6
+ #include <vector>
7
+ #include <algorithm>
8
+
9
+ class CRect_Element;
10
+ class CTone_Element;
11
+
12
+ class CDrawable_Element {
13
+ protected:
14
+ std::vector<CDrawable_Element*> *origin_stack;
15
+ CRect_Element* linkedRect;
16
+ unsigned long index;
17
+ public:
18
+ CDrawable_Element();
19
+ void setOriginStack(std::vector<CDrawable_Element*> *o);
20
+ void overrideOrigineStack(std::vector<CDrawable_Element*> *o) {origin_stack = o;};
21
+ void setIndex(unsigned long nindex);
22
+ unsigned long getIndex();
23
+ virtual void draw(sf::RenderTarget& target) const = 0;
24
+ virtual void drawFast(sf::RenderTarget& target) const = 0;
25
+ virtual bool isViewport() const = 0;
26
+ virtual bool isPureSprite() const = 0;
27
+ void setLinkedRect(CRect_Element* _rect) { linkedRect = _rect; };
28
+ CRect_Element* getLinkedRect() { return linkedRect; };
29
+ };
30
+ #endif
@@ -0,0 +1,15 @@
1
+ #ifndef CRECT_ELEMENT_H
2
+ #define CRECT_ELEMENT_H
3
+ #include <SFML/Graphics.hpp>
4
+ #include "CDrawable_Element.h"
5
+ class CRect_Element {
6
+ private:
7
+ sf::IntRect rect;
8
+ CDrawable_Element* target;
9
+ public:
10
+ sf::IntRect* getRect() { return &rect; };
11
+ void setElement(CDrawable_Element* _target) {target = _target;};
12
+ CDrawable_Element* getElement() { return target; };
13
+ };
14
+
15
+ #endif
@@ -0,0 +1,17 @@
1
+ #include "CShaderSprite_Element.h"
2
+
3
+ void CShaderSprite_Element::draw(sf::RenderTarget& target) const
4
+ {
5
+ if(drawable && visible)
6
+ {
7
+ if (render_states == nullptr)
8
+ target.draw(sprite);
9
+ else
10
+ target.draw(sprite, *render_states);//, render_states->shader);
11
+ }
12
+ }
13
+
14
+ void CShaderSprite_Element::drawFast(sf::RenderTarget& target) const
15
+ {
16
+ draw(target);
17
+ }
@@ -0,0 +1,17 @@
1
+ #ifndef CShaderSprite_Element_H
2
+ #define CShaderSprite_Element_H
3
+ #include "CSprite_Element.h"
4
+
5
+ class CShaderSprite_Element : public CSprite_Element {
6
+ protected:
7
+ sf::RenderStates* render_states;
8
+ public:
9
+ CShaderSprite_Element() : CSprite_Element(), render_states(nullptr) {};
10
+ void draw(sf::RenderTarget& target) const override;
11
+ void drawFast(sf::RenderTarget& target) const override;
12
+ bool isViewport() const override { return false; };
13
+ bool isPureSprite() const override { return true; };
14
+ void setRenderState(sf::RenderStates* states) { render_states = states; };
15
+ VALUE rRenderStates;
16
+ };
17
+ #endif
@@ -0,0 +1,15 @@
1
+ #include "CViewport_Element.h"
2
+ #include <iostream>
3
+
4
+ void CSprite_Element::draw(sf::RenderTarget& target) const
5
+ {
6
+ CSprite_Element::drawFast(target);
7
+ }
8
+
9
+ void CSprite_Element::drawFast(sf::RenderTarget& target) const
10
+ {
11
+ if(drawable && visible)
12
+ {
13
+ target.draw(sprite);
14
+ }
15
+ }
@@ -0,0 +1,36 @@
1
+ #ifndef CSprite_Element_H
2
+ #define CSprite_Element_H
3
+ #include "ruby.h"
4
+ #include "CDrawable_Element.h"
5
+
6
+ class CSprite_Element : public CDrawable_Element {
7
+ protected:
8
+ sf::Sprite sprite;
9
+ bool drawable;
10
+ bool visible;
11
+ public:
12
+ CSprite_Element() : CDrawable_Element(), drawable(false), visible(true) {};
13
+ void draw(sf::RenderTarget& target) const override;
14
+ void drawFast(sf::RenderTarget& target) const override;
15
+ bool isViewport() const override { return false; };
16
+ bool isPureSprite() const override { return true; };
17
+ sf::Sprite* getSprite() { return &sprite;};
18
+ void setDrawable(bool value) { drawable = value;};
19
+ bool getDrawable() { return drawable; };
20
+ void setVisible(bool value) { visible = value;};
21
+ bool getVisible() { return visible; };
22
+ /* Instance variable for Ruby */
23
+ VALUE rViewport;
24
+ VALUE rBitmap;
25
+ VALUE rX;
26
+ VALUE rY;
27
+ VALUE rZ;
28
+ VALUE rOX;
29
+ VALUE rOY;
30
+ VALUE rAngle;
31
+ VALUE rZoomX;
32
+ VALUE rZoomY;
33
+ VALUE rRect;
34
+ VALUE rMirror;
35
+ };
36
+ #endif
@@ -0,0 +1,12 @@
1
+ #include "CText_Element.h"
2
+
3
+ void CText_Element::draw(sf::RenderTarget& target) const
4
+ {
5
+ drawFast(target);
6
+ }
7
+
8
+ void CText_Element::drawFast(sf::RenderTarget& target) const
9
+ {
10
+ if(visible)
11
+ target.draw(text);
12
+ }
@@ -0,0 +1,29 @@
1
+ #ifndef CText_Element_H
2
+ #define CText_Element_H
3
+ #include "ruby.h"
4
+ #include "CDrawable_Element.h"
5
+
6
+ class CText_Element : public CDrawable_Element {
7
+ private:
8
+ sf::Text2 text;
9
+ bool visible;
10
+ public:
11
+ CText_Element() : CDrawable_Element(), visible(true) {};
12
+ void draw(sf::RenderTarget& target) const override;
13
+ void drawFast(sf::RenderTarget& target) const override;
14
+ bool isViewport() const override { return false; };
15
+ bool isPureSprite() const override { return false; };
16
+ sf::Text2* getText() { return &text;};
17
+ void setVisible(bool value) { visible = value;};
18
+ bool getVisible() { return visible; };
19
+ /* Instance variable for Ruby */
20
+ VALUE rViewport;
21
+ VALUE rX;
22
+ VALUE rY;
23
+ VALUE rZ;
24
+ VALUE rwidth;
25
+ VALUE rheight;
26
+ VALUE rtext;
27
+ VALUE rAlign;
28
+ };
29
+ #endif
@@ -0,0 +1,17 @@
1
+ #ifndef CTONE_ELEMENT_H
2
+ #define CTONE_ELEMENT_H
3
+ #include <SFML/Graphics.hpp>
4
+ #include "CViewport_Element.h"
5
+
6
+ class CTone_Element {
7
+ private:
8
+ sf::Glsl::Vec4 tonevalues;
9
+ CViewport_Element* target;
10
+ public:
11
+ sf::Glsl::Vec4* getTone() { return &tonevalues; };
12
+ void setElement(CViewport_Element* element) {target = element;};
13
+ CViewport_Element* getElement() { return target;};
14
+ };
15
+
16
+
17
+ #endif
@@ -0,0 +1,224 @@
1
+ #include "LiteRGSS.h"
2
+ #include "CViewport_Element.h"
3
+ #include "Graphics.local.h"
4
+
5
+ sf::RenderTexture* CViewport_Element::render = nullptr;
6
+ sf::Sprite* CViewport_Element::render_sprite = nullptr;
7
+
8
+ CViewport_Element::CViewport_Element() : CDrawable_Element()
9
+ {
10
+ linkedTone = nullptr;
11
+ render_states = nullptr;
12
+ color_copy = nullptr;
13
+ rRenderState = Qnil;
14
+ }
15
+
16
+ CViewport_Element::~CViewport_Element()
17
+ {
18
+ if(!game_window || !game_window->isOpen())
19
+ std::cerr << "Game window release thus viewport " << this << " not freed." << std::endl;
20
+ if (rRenderState == Qnil && render_states)
21
+ {
22
+ if (render_states->shader)
23
+ {
24
+ delete render_states->shader;
25
+ render_states->shader = nullptr;
26
+ }
27
+ delete render_states;
28
+ }
29
+ if(color_copy)
30
+ delete color_copy;
31
+ };
32
+
33
+ void CViewport_Element::draw(sf::RenderTarget& target) const
34
+ {
35
+ if (!visible)
36
+ return;
37
+ if(render_states)
38
+ {
39
+ sf::Color* col;
40
+ // Loading Window View
41
+ /* sf::View wview = view;
42
+ wview.setRotation(0);
43
+ wview.setViewport(sf::FloatRect(0.f, 0.f, 1.f, 1.f));
44
+ wview.setSize(ScreenWidth, ScreenHeight);
45
+ target.setView(wview);*/
46
+ // Loading Target view
47
+ const sf::Vector2f view_size = view.getSize();
48
+ sf::View tview = view;
49
+ //tview.setViewport(sf::FloatRect(0.0f, 0.0f, view_size.x / ScreenWidth, view_size.y / ScreenHeight));
50
+ render->setView(tview);
51
+ // Clearing render
52
+ if (render_states->shader)
53
+ col = check_up_color();
54
+ else
55
+ col = const_cast<sf::Color*>(&sf::Color::Transparent);
56
+ render->clear(*col);
57
+ // Drawing sprites
58
+ for(auto sp = stack.begin();sp != stack.end();sp++)
59
+ (*sp)->drawFast(*render);
60
+ render->display();
61
+ // Update internal texture & draw result to Window
62
+ render_sprite->setTexture(render->getTexture());
63
+ //render_sprite->setTextureRect(sf::IntRect(0, 0, static_cast<int>(view_size.x), static_cast<int>(view_size.y)));
64
+ target.draw(*render_sprite, *render_states);
65
+ /*sf::Sprite sp(render->getTexture());
66
+ sp.setTextureRect(sf::IntRect(0, 0, static_cast<int>(view_size.x), static_cast<int>(view_size.y)));
67
+ target.draw(sp, *render_states);*/
68
+ }
69
+ else
70
+ {
71
+ target.setView(view);
72
+ drawFast(target);
73
+ }
74
+ }
75
+
76
+ void CViewport_Element::drawFast(sf::RenderTarget& target) const
77
+ {
78
+ for(auto sp = stack.begin();sp != stack.end();sp++)
79
+ {
80
+ (*sp)->drawFast(target);
81
+ }
82
+ }
83
+
84
+ bool CViewport_Element::isViewport() const
85
+ {
86
+ return true;
87
+ }
88
+
89
+ bool CViewport_Element::isPureSprite() const
90
+ {
91
+ return false;
92
+ }
93
+
94
+ sf::RenderStates * CViewport_Element::getRenderStates()
95
+ {
96
+ return render_states;
97
+ }
98
+
99
+ void CViewport_Element::setRenderStates(sf::RenderStates * states)
100
+ {
101
+ if (rRenderState == Qnil && render_states)
102
+ {
103
+ if (render_states->shader)
104
+ {
105
+ delete render_states->shader;
106
+ render_states->shader = nullptr;
107
+ }
108
+ }
109
+ render_states = states;
110
+ }
111
+
112
+ void CViewport_Element::bind(CDrawable_Element* sprite)
113
+ {
114
+ //stack.push_back(sprite);
115
+ sprite->setOriginStack(&stack);
116
+ }
117
+
118
+ void CViewport_Element::clearStack()
119
+ {
120
+ stack.clear();
121
+ }
122
+
123
+ sf::Glsl::Vec4* CViewport_Element::getTone()
124
+ {
125
+ return &tone;
126
+ };
127
+
128
+ void CViewport_Element::updatetone()
129
+ {
130
+ if(render_states && render_states->shader)
131
+ const_cast<sf::Shader*>(render_states->shader)->setUniform("tone", tone);
132
+ }
133
+
134
+ void CViewport_Element::setLinkedTone(CTone_Element * _tone)
135
+ {
136
+ linkedTone = _tone;
137
+ }
138
+
139
+ CTone_Element * CViewport_Element::getLinkedTone()
140
+ {
141
+ return linkedTone;
142
+ }
143
+
144
+ sf::Color* CViewport_Element::check_up_color() const
145
+ {
146
+ sf::Color* col = reinterpret_cast<sf::Color*>(RDATA(rColor)->data);
147
+ if (*col != *color_copy)
148
+ {
149
+ sf::Glsl::Vec4 color(col->r / 255.0f, col->g / 255.0f, col->b / 255.0f, col->a / 255.0f);
150
+ const_cast<sf::Shader*>(render_states->shader)->setUniform("color", color);
151
+ color_copy->r = col->r;
152
+ color_copy->g = col->g;
153
+ color_copy->b = col->b;
154
+ color_copy->a = col->a;
155
+ }
156
+ return col;
157
+ }
158
+
159
+ /* ---- Shader Part ---- */
160
+ /* Thaks to https://github.com/Ancurio/mkxp/blob/master/shader/sprite.frag (Ancurio & urkle) */
161
+ const std::string ViewportGlobalFragmentShader = \
162
+ "uniform sampler2D texture;" \
163
+ "uniform vec4 tone;" \
164
+ "uniform vec4 color;" \
165
+ "const vec3 lumaF = vec3(.299, .587, .114);" \
166
+ "void main()" \
167
+ "{" \
168
+ " vec4 frag = texture2D(texture, gl_TexCoord[0].xy);" \
169
+ /*" frag.rgb = mix(frag.rgb, gl_Color.rgb, cola);" \*/
170
+ " frag.rgb = mix(frag.rgb, color.rgb, color.a);" \
171
+ " float luma = dot(frag.rgb, lumaF);" \
172
+ " frag.rgb += tone.rgb;" \
173
+ " frag.rgb = mix(frag.rgb, vec3(luma), tone.w);" \
174
+ " frag.a *= gl_Color.a;" \
175
+ " gl_FragColor = frag;" \
176
+ "}";
177
+
178
+
179
+ sf::Glsl::Vec4 __Viewport_reset_tone(0.0f, 0.0f, 0.0f, 0.0f);
180
+
181
+
182
+ /*void CViewport_Element::reset_render()
183
+ {
184
+ if(render == nullptr)
185
+ return;
186
+ const sf::Vector2f sz = getView()->getSize();
187
+ render->create(static_cast<unsigned int>(sz.x), static_cast<unsigned int>(sz.y));
188
+ }*/
189
+
190
+ void CViewport_Element::create_render()
191
+ {
192
+ // If the global viewport render doesn't exist, we create it
193
+ if (!render)
194
+ {
195
+ render = new sf::RenderTexture();
196
+ render->create(ScreenWidth, ScreenHeight);
197
+ render->setSmooth(SmoothScreen);
198
+ render_sprite = new sf::Sprite();
199
+ }
200
+ // Return if the render texture (internal_texture) is already created
201
+ if(render_states != nullptr)
202
+ return;
203
+ // Creation of the render states
204
+ render_states = new sf::RenderStates(new sf::Shader());
205
+ // Shader initialialization
206
+ sf::Shader* shader = const_cast<sf::Shader*>(render_states->shader);
207
+ if (shader->loadFromMemory(ViewportGlobalFragmentShader, sf::Shader::Fragment))
208
+ {
209
+ shader->setUniform("texture", sf::Shader::CurrentTexture);
210
+ shader->setUniform("tone", __Viewport_reset_tone);
211
+ shader->setUniform("color", __Viewport_reset_tone);
212
+ }
213
+ color_copy = new sf::Color(0, 0, 0, 0);
214
+ }
215
+
216
+ void CViewport_Element::setVisible(bool value)
217
+ {
218
+ visible = value;
219
+ }
220
+
221
+ const std::vector<CDrawable_Element*>* CViewport_Element::getStack()
222
+ {
223
+ return &stack;
224
+ }