LiteRGSS 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
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,549 @@
1
+ ////////////////////////////////////////////////////////////
2
+ //
3
+ // SFML - Simple and Fast Multimedia Library
4
+ // Copyright (C) 2007-2018 Laurent Gomila (laurent@sfml-dev.org)
5
+ //
6
+ // This software is provided 'as-is', without any express or implied warranty.
7
+ // In no event will the authors be held liable for any damages arising from the use of this software.
8
+ //
9
+ // Permission is granted to anyone to use this software for any purpose,
10
+ // including commercial applications, and to alter it and redistribute it freely,
11
+ // subject to the following restrictions:
12
+ //
13
+ // 1. The origin of this software must not be misrepresented;
14
+ // you must not claim that you wrote the original software.
15
+ // If you use this software in a product, an acknowledgment
16
+ // in the product documentation would be appreciated but is not required.
17
+ //
18
+ // 2. Altered source versions must be plainly marked as such,
19
+ // and must not be misrepresented as being the original software.
20
+ //
21
+ // 3. This notice may not be removed or altered from any source distribution.
22
+ //
23
+ ////////////////////////////////////////////////////////////
24
+
25
+ #ifndef SFML_TEXT2_HPP
26
+ #define SFML_TEXT2_HPP
27
+
28
+ ////////////////////////////////////////////////////////////
29
+ // Headers
30
+ ////////////////////////////////////////////////////////////
31
+ #include <SFML/Graphics/Export.hpp>
32
+ #include <SFML/Graphics/Drawable.hpp>
33
+ #include <SFML/Graphics/Transformable.hpp>
34
+ #include <SFML/Graphics/Font.hpp>
35
+ #include <SFML/Graphics/Rect.hpp>
36
+ #include <SFML/Graphics/VertexArray.hpp>
37
+ #include <SFML/System/String.hpp>
38
+ #include <string>
39
+ #include <vector>
40
+
41
+
42
+ namespace sf
43
+ {
44
+ ////////////////////////////////////////////////////////////
45
+ /// \brief Graphical text that can be drawn to a render target
46
+ ///
47
+ ////////////////////////////////////////////////////////////
48
+ class Text2 : public Drawable, public Transformable
49
+ {
50
+ public:
51
+
52
+ ////////////////////////////////////////////////////////////
53
+ /// \brief Enumeration of the string drawing styles
54
+ ///
55
+ ////////////////////////////////////////////////////////////
56
+ enum Style
57
+ {
58
+ Regular = 0, ///< Regular characters, no style
59
+ Bold = 1 << 0, ///< Bold characters
60
+ Italic = 1 << 1, ///< Italic characters
61
+ Underlined = 1 << 2, ///< Underlined characters
62
+ StrikeThrough = 1 << 3 ///< Strike through characters
63
+ };
64
+
65
+ ////////////////////////////////////////////////////////////
66
+ /// \brief Default constructor
67
+ ///
68
+ /// Creates an empty text.
69
+ ///
70
+ ////////////////////////////////////////////////////////////
71
+ Text2();
72
+
73
+ ////////////////////////////////////////////////////////////
74
+ /// \brief Construct the text from a string, font and size
75
+ ///
76
+ /// Note that if the used font is a bitmap font, it is not
77
+ /// scalable, thus not all requested sizes will be available
78
+ /// to use. This needs to be taken into consideration when
79
+ /// setting the character size. If you need to display text
80
+ /// of a certain size, make sure the corresponding bitmap
81
+ /// font that supports that size is used.
82
+ ///
83
+ /// \param string Text assigned to the string
84
+ /// \param font Font used to draw the string
85
+ /// \param characterSize Base size of characters, in pixels
86
+ ///
87
+ ////////////////////////////////////////////////////////////
88
+ Text2(const String& string, const Font& font, unsigned int characterSize = 30);
89
+
90
+ ////////////////////////////////////////////////////////////
91
+ /// \brief Set the text's string
92
+ ///
93
+ /// The \a string argument is a sf::String, which can
94
+ /// automatically be constructed from standard string types.
95
+ /// So, the following calls are all valid:
96
+ /// \code
97
+ /// text.setString("hello");
98
+ /// text.setString(L"hello");
99
+ /// text.setString(std::string("hello"));
100
+ /// text.setString(std::wstring(L"hello"));
101
+ /// \endcode
102
+ /// A text's string is empty by default.
103
+ ///
104
+ /// \param string New string
105
+ ///
106
+ /// \see getString
107
+ ///
108
+ ////////////////////////////////////////////////////////////
109
+ void setString(const String& string);
110
+
111
+ ////////////////////////////////////////////////////////////
112
+ /// \brief Set the text's font
113
+ ///
114
+ /// The \a font argument refers to a font that must
115
+ /// exist as long as the text uses it. Indeed, the text
116
+ /// doesn't store its own copy of the font, but rather keeps
117
+ /// a pointer to the one that you passed to this function.
118
+ /// If the font is destroyed and the text tries to
119
+ /// use it, the behavior is undefined.
120
+ ///
121
+ /// \param font New font
122
+ ///
123
+ /// \see getFont
124
+ ///
125
+ ////////////////////////////////////////////////////////////
126
+ void setFont(const Font& font);
127
+
128
+ ////////////////////////////////////////////////////////////
129
+ /// \brief Set the character size
130
+ ///
131
+ /// The default size is 30.
132
+ ///
133
+ /// Note that if the used font is a bitmap font, it is not
134
+ /// scalable, thus not all requested sizes will be available
135
+ /// to use. This needs to be taken into consideration when
136
+ /// setting the character size. If you need to display text
137
+ /// of a certain size, make sure the corresponding bitmap
138
+ /// font that supports that size is used.
139
+ ///
140
+ /// \param size New character size, in pixels
141
+ ///
142
+ /// \see getCharacterSize
143
+ ///
144
+ ////////////////////////////////////////////////////////////
145
+ void setCharacterSize(unsigned int size);
146
+
147
+ ////////////////////////////////////////////////////////////
148
+ /// \brief Set the line spacing factor
149
+ ///
150
+ /// The default spacing between lines is defined by the font.
151
+ /// This method enables you to set a factor for the spacing
152
+ /// between lines. By default the line spacing factor is 1.
153
+ ///
154
+ /// \param spacingFactor New line spacing factor
155
+ ///
156
+ /// \see getLineSpacing
157
+ ///
158
+ ////////////////////////////////////////////////////////////
159
+ void setLineSpacing(float spacingFactor);
160
+
161
+ ////////////////////////////////////////////////////////////
162
+ /// \brief Set the letter spacing factor
163
+ ///
164
+ /// The default spacing between letters is defined by the font.
165
+ /// This factor doesn't directly apply to the existing
166
+ /// spacing between each character, it rather adds a fixed
167
+ /// space between them which is calculated from the font
168
+ /// metrics and the character size.
169
+ /// Note that factors below 1 (including negative numbers) bring
170
+ /// characters closer to each other.
171
+ /// By default the letter spacing factor is 1.
172
+ ///
173
+ /// \param spacingFactor New letter spacing factor
174
+ ///
175
+ /// \see getLetterSpacing
176
+ ///
177
+ ////////////////////////////////////////////////////////////
178
+ void setLetterSpacing(float spacingFactor);
179
+
180
+ ////////////////////////////////////////////////////////////
181
+ /// \brief Set the text's style
182
+ ///
183
+ /// You can pass a combination of one or more styles, for
184
+ /// example sf::Text::Bold | sf::Text::Italic.
185
+ /// The default style is sf::Text::Regular.
186
+ ///
187
+ /// \param style New style
188
+ ///
189
+ /// \see getStyle
190
+ ///
191
+ ////////////////////////////////////////////////////////////
192
+ void setStyle(Uint32 style);
193
+
194
+ ////////////////////////////////////////////////////////////
195
+ /// \brief Set the fill color of the text
196
+ ///
197
+ /// By default, the text's fill color is opaque white.
198
+ /// Setting the fill color to a transparent color with an outline
199
+ /// will cause the outline to be displayed in the fill area of the text.
200
+ ///
201
+ /// \param color New fill color of the text
202
+ ///
203
+ /// \see getFillColor
204
+ ///
205
+ /// \deprecated There is now fill and outline colors instead
206
+ /// of a single global color.
207
+ /// Use setFillColor() or setOutlineColor() instead.
208
+ ///
209
+ ////////////////////////////////////////////////////////////
210
+ SFML_DEPRECATED void setColor(const Color& color);
211
+
212
+ ////////////////////////////////////////////////////////////
213
+ /// \brief Set the fill color of the text
214
+ ///
215
+ /// By default, the text's fill color is opaque white.
216
+ /// Setting the fill color to a transparent color with an outline
217
+ /// will cause the outline to be displayed in the fill area of the text.
218
+ ///
219
+ /// \param color New fill color of the text
220
+ ///
221
+ /// \see getFillColor
222
+ ///
223
+ ////////////////////////////////////////////////////////////
224
+ void setFillColor(const Color& color);
225
+
226
+ ////////////////////////////////////////////////////////////
227
+ /// \brief Set the outline color of the text
228
+ ///
229
+ /// By default, the text's outline color is opaque black.
230
+ ///
231
+ /// \param color New outline color of the text
232
+ ///
233
+ /// \see getOutlineColor
234
+ ///
235
+ ////////////////////////////////////////////////////////////
236
+ void setOutlineColor(const Color& color);
237
+
238
+ ////////////////////////////////////////////////////////////
239
+ /// \brief Set the thickness of the text's outline
240
+ ///
241
+ /// By default, the outline thickness is 0.
242
+ ///
243
+ /// Be aware that using a negative value for the outline
244
+ /// thickness will cause distorted rendering.
245
+ ///
246
+ /// \param thickness New outline thickness, in pixels
247
+ ///
248
+ /// \see getOutlineThickness
249
+ ///
250
+ ////////////////////////////////////////////////////////////
251
+ void setOutlineThickness(float thickness);
252
+
253
+ ////////////////////////////////////////////////////////////
254
+ /// \brief Get the text's string
255
+ ///
256
+ /// The returned string is a sf::String, which can automatically
257
+ /// be converted to standard string types. So, the following
258
+ /// lines of code are all valid:
259
+ /// \code
260
+ /// sf::String s1 = text.getString();
261
+ /// std::string s2 = text.getString();
262
+ /// std::wstring s3 = text.getString();
263
+ /// \endcode
264
+ ///
265
+ /// \return Text's string
266
+ ///
267
+ /// \see setString
268
+ ///
269
+ ////////////////////////////////////////////////////////////
270
+ const String& getString() const;
271
+
272
+ ////////////////////////////////////////////////////////////
273
+ /// \brief Get the text's font
274
+ ///
275
+ /// If the text has no font attached, a NULL pointer is returned.
276
+ /// The returned pointer is const, which means that you
277
+ /// cannot modify the font when you get it from this function.
278
+ ///
279
+ /// \return Pointer to the text's font
280
+ ///
281
+ /// \see setFont
282
+ ///
283
+ ////////////////////////////////////////////////////////////
284
+ const Font* getFont() const;
285
+
286
+ ////////////////////////////////////////////////////////////
287
+ /// \brief Get the character size
288
+ ///
289
+ /// \return Size of the characters, in pixels
290
+ ///
291
+ /// \see setCharacterSize
292
+ ///
293
+ ////////////////////////////////////////////////////////////
294
+ unsigned int getCharacterSize() const;
295
+
296
+ ////////////////////////////////////////////////////////////
297
+ /// \brief Get the size of the letter spacing factor
298
+ ///
299
+ /// \return Size of the letter spacing factor
300
+ ///
301
+ /// \see setLetterSpacing
302
+ ///
303
+ ////////////////////////////////////////////////////////////
304
+ float getLetterSpacing() const;
305
+
306
+ ////////////////////////////////////////////////////////////
307
+ /// \brief Get the size of the line spacing factor
308
+ ///
309
+ /// \return Size of the line spacing factor
310
+ ///
311
+ /// \see setLineSpacing
312
+ ///
313
+ ////////////////////////////////////////////////////////////
314
+ float getLineSpacing() const;
315
+
316
+ ////////////////////////////////////////////////////////////
317
+ /// \brief Get the text's style
318
+ ///
319
+ /// \return Text's style
320
+ ///
321
+ /// \see setStyle
322
+ ///
323
+ ////////////////////////////////////////////////////////////
324
+ Uint32 getStyle() const;
325
+
326
+ ////////////////////////////////////////////////////////////
327
+ /// \brief Get the fill color of the text
328
+ ///
329
+ /// \return Fill color of the text
330
+ ///
331
+ /// \see setFillColor
332
+ ///
333
+ /// \deprecated There is now fill and outline colors instead
334
+ /// of a single global color.
335
+ /// Use getFillColor() or getOutlineColor() instead.
336
+ ///
337
+ ////////////////////////////////////////////////////////////
338
+ SFML_DEPRECATED const Color& getColor() const;
339
+
340
+ ////////////////////////////////////////////////////////////
341
+ /// \brief Get the fill color of the text
342
+ ///
343
+ /// \return Fill color of the text
344
+ ///
345
+ /// \see setFillColor
346
+ ///
347
+ ////////////////////////////////////////////////////////////
348
+ const Color& getFillColor() const;
349
+
350
+ ////////////////////////////////////////////////////////////
351
+ /// \brief Get the outline color of the text
352
+ ///
353
+ /// \return Outline color of the text
354
+ ///
355
+ /// \see setOutlineColor
356
+ ///
357
+ ////////////////////////////////////////////////////////////
358
+ const Color& getOutlineColor() const;
359
+
360
+ ////////////////////////////////////////////////////////////
361
+ /// \brief Get the outline thickness of the text
362
+ ///
363
+ /// \return Outline thickness of the text, in pixels
364
+ ///
365
+ /// \see setOutlineThickness
366
+ ///
367
+ ////////////////////////////////////////////////////////////
368
+ float getOutlineThickness() const;
369
+
370
+ ////////////////////////////////////////////////////////////
371
+ /// \brief Return the position of the \a index-th character
372
+ ///
373
+ /// This function computes the visual position of a character
374
+ /// from its index in the string. The returned position is
375
+ /// in global coordinates (translation, rotation, scale and
376
+ /// origin are applied).
377
+ /// If \a index is out of range, the position of the end of
378
+ /// the string is returned.
379
+ ///
380
+ /// \param index Index of the character
381
+ ///
382
+ /// \return Position of the character
383
+ ///
384
+ ////////////////////////////////////////////////////////////
385
+ Vector2f findCharacterPos(std::size_t index) const;
386
+
387
+ ////////////////////////////////////////////////////////////
388
+ /// \brief Get the local bounding rectangle of the entity
389
+ ///
390
+ /// The returned rectangle is in local coordinates, which means
391
+ /// that it ignores the transformations (translation, rotation,
392
+ /// scale, ...) that are applied to the entity.
393
+ /// In other words, this function returns the bounds of the
394
+ /// entity in the entity's coordinate system.
395
+ ///
396
+ /// \return Local bounding rectangle of the entity
397
+ ///
398
+ ////////////////////////////////////////////////////////////
399
+ FloatRect getLocalBounds() const;
400
+
401
+ ////////////////////////////////////////////////////////////
402
+ /// \brief Get the global bounding rectangle of the entity
403
+ ///
404
+ /// The returned rectangle is in global coordinates, which means
405
+ /// that it takes into account the transformations (translation,
406
+ /// rotation, scale, ...) that are applied to the entity.
407
+ /// In other words, this function returns the bounds of the
408
+ /// text in the global 2D world's coordinate system.
409
+ ///
410
+ /// \return Global bounding rectangle of the entity
411
+ ///
412
+ ////////////////////////////////////////////////////////////
413
+ FloatRect getGlobalBounds() const;
414
+ //<< YuriADD
415
+
416
+
417
+ virtual void setDrawShadow(bool drawshadow)
418
+ {
419
+ m_geometryNeedUpdate = true;
420
+ m_DrawShadow = drawshadow;
421
+ };
422
+
423
+ virtual bool getDrawShadow()
424
+ {
425
+ return m_DrawShadow;
426
+ };
427
+
428
+ virtual void setNumCharToDraw(Uint32 num)
429
+ {
430
+ m_geometryNeedUpdate = true;
431
+ m_numberCharsToDraw = num;
432
+ };
433
+
434
+ virtual Uint32 getNumCharToDraw() const
435
+ {
436
+ return m_numberCharsToDraw;
437
+ };
438
+
439
+ virtual void setLineHeight(float height)
440
+ {
441
+ m_lineHeight = height;
442
+ }
443
+
444
+ virtual Uint32 getTextWidth(const String& string) const;
445
+ //>> YuriAdd
446
+ private:
447
+
448
+ ////////////////////////////////////////////////////////////
449
+ /// \brief Draw the text to a render target
450
+ ///
451
+ /// \param target Render target to draw to
452
+ /// \param states Current render states
453
+ ///
454
+ ////////////////////////////////////////////////////////////
455
+ virtual void draw(RenderTarget& target, RenderStates states) const;
456
+
457
+ ////////////////////////////////////////////////////////////
458
+ /// \brief Make sure the text's geometry is updated
459
+ ///
460
+ /// All the attributes related to rendering are cached, such
461
+ /// that the geometry is only updated when necessary.
462
+ ///
463
+ ////////////////////////////////////////////////////////////
464
+ void ensureGeometryUpdate() const;
465
+
466
+ ////////////////////////////////////////////////////////////
467
+ // Member data
468
+ ////////////////////////////////////////////////////////////
469
+ String m_string; ///< String to display
470
+ const Font* m_font; ///< Font used to display the string
471
+ unsigned int m_characterSize; ///< Base size of characters, in pixels
472
+ float m_letterSpacingFactor; ///< Spacing factor between letters
473
+ float m_lineSpacingFactor; ///< Spacing factor between lines
474
+ Uint32 m_style; ///< Text style (see Style enum)
475
+ Color m_fillColor; ///< Text fill color
476
+ Color m_outlineColor; ///< Text outline color
477
+ float m_outlineThickness; ///< Thickness of the text's outline
478
+ mutable VertexArray m_vertices; ///< Vertex array containing the fill geometry
479
+ mutable VertexArray m_outlineVertices; ///< Vertex array containing the outline geometry
480
+ mutable FloatRect m_bounds; ///< Bounding rectangle of the text (in local coordinates)
481
+ mutable bool m_geometryNeedUpdate; ///< Does the geometry need to be recomputed?
482
+ mutable Uint64 m_fontTextureId; ///< The font texture id
483
+ //<< YuriAdd
484
+ bool m_DrawShadow;
485
+ Uint32 m_numberCharsToDraw;
486
+ float m_lineHeight;
487
+ //>> YuriAdd
488
+ friend class Texture;
489
+ };
490
+ } // namespace sf
491
+
492
+
493
+ #endif // SFML_TEXT2_HPP
494
+
495
+
496
+ ////////////////////////////////////////////////////////////
497
+ /// \class sf::Text
498
+ /// \ingroup graphics
499
+ ///
500
+ /// sf::Text is a drawable class that allows to easily display
501
+ /// some text with custom style and color on a render target.
502
+ ///
503
+ /// It inherits all the functions from sf::Transformable:
504
+ /// position, rotation, scale, origin. It also adds text-specific
505
+ /// properties such as the font to use, the character size,
506
+ /// the font style (bold, italic, underlined and strike through), the
507
+ /// text color, the outline thickness, the outline color, the character
508
+ /// spacing, the line spacing and the text to display of course.
509
+ /// It also provides convenience functions to calculate the
510
+ /// graphical size of the text, or to get the global position
511
+ /// of a given character.
512
+ ///
513
+ /// sf::Text works in combination with the sf::Font class, which
514
+ /// loads and provides the glyphs (visual characters) of a given font.
515
+ ///
516
+ /// The separation of sf::Font and sf::Text allows more flexibility
517
+ /// and better performances: indeed a sf::Font is a heavy resource,
518
+ /// and any operation on it is slow (often too slow for real-time
519
+ /// applications). On the other side, a sf::Text is a lightweight
520
+ /// object which can combine the glyphs data and metrics of a sf::Font
521
+ /// to display any text on a render target.
522
+ ///
523
+ /// It is important to note that the sf::Text instance doesn't
524
+ /// copy the font that it uses, it only keeps a reference to it.
525
+ /// Thus, a sf::Font must not be destructed while it is
526
+ /// used by a sf::Text (i.e. never write a function that
527
+ /// uses a local sf::Font instance for creating a text).
528
+ ///
529
+ /// See also the note on coordinates and undistorted rendering in sf::Transformable.
530
+ ///
531
+ /// Usage example:
532
+ /// \code
533
+ /// // Declare and load a font
534
+ /// sf::Font font;
535
+ /// font.loadFromFile("arial.ttf");
536
+ ///
537
+ /// // Create a text
538
+ /// sf::Text text("hello", font);
539
+ /// text.setCharacterSize(30);
540
+ /// text.setStyle(sf::Text::Bold);
541
+ /// text.setFillColor(sf::Color::Red);
542
+ ///
543
+ /// // Draw it
544
+ /// window.draw(text);
545
+ /// \endcode
546
+ ///
547
+ /// \see sf::Font, sf::Transformable
548
+ ///
549
+ ////////////////////////////////////////////////////////////