46 void setText(
const std::string text)
override { _text = text; _dirty =
true; }
47 std::string
getText()
const override {
return _text; }
49 void setFont(graphic::IFont *font)
override {
50 _font =
static_cast<SdlFont *
>(font);
54 void setFontSize(
unsigned int size)
override { _size = size; _dirty =
true; }
57 void setTextColor(Color color)
override { _color = color; _dirty =
true; }
60 void setPosition(Vector2f position)
override { _position = position; }
71 SDL_Texture *handle(SDL_Renderer *renderer)
const {
72 if (!renderer || !_font || !_font->
isReady())
74 if (_texture && !_dirty && _owner == renderer)
79 const SDL_Color color{_color.r, _color.g, _color.b, _color.a};
83 SDL_Surface *surface = TTF_RenderUTF8_Blended_Wrapped(_font->
handle(_size), _text.c_str(), color, 0);
87 _texture = SDL_CreateTextureFromSurface(renderer, surface);
90 SDL_FreeSurface(surface);
99 SDL_DestroyTexture(_texture);
107 Color _color{255, 255, 255, 255};
108 Vector2f _position{0, 0};
109 float _rotation = 0.f;
114 mutable SDL_Texture *_texture =
nullptr;
115 mutable SDL_Renderer *_owner =
nullptr;
116 mutable bool _dirty =
true;
117 mutable int _width = 0;
118 mutable int _height = 0;
Une police ouverte a une taille donnee.
Definition SdlFont.hpp:32
bool isReady() const override
Definition SdlFont.hpp:46
TTF_Font * handle(unsigned size) const
La police, recalee sur size si besoin.
Definition SdlFont.hpp:51
Une chaine rendue en texture, refaite quand elle change.
Definition SdlText.hpp:37
void setRotation(float angle) override
Definition SdlText.hpp:64
void setText(const std::string text) override
Definition SdlText.hpp:46
float getRotation() const override
Definition SdlText.hpp:65
Vector2f getPosition() const override
Definition SdlText.hpp:61
void setFont(graphic::IFont *font) override
Definition SdlText.hpp:49
Color getTextColor() const override
Definition SdlText.hpp:58
SdlText(std::string data, SdlFont &font)
Definition SdlText.hpp:40
void setTextColor(Color color) override
Definition SdlText.hpp:57
~SdlText() override
Definition SdlText.hpp:42
void setPosition(Vector2f position) override
Definition SdlText.hpp:60
std::string getText() const override
Definition SdlText.hpp:47
bool isReady() const override
Definition SdlText.hpp:44
void setFontSize(unsigned int size) override
Definition SdlText.hpp:54
unsigned int getFontSize() const override
Definition SdlText.hpp:55
Une fenetre SDL et son renderer, implemente IWindow2.
Definition SdlWindow.hpp:50