diff --git a/src/common/text_box.cpp b/src/common/text_box.cpp index aeb15dd..e80a014 100644 --- a/src/common/text_box.cpp +++ b/src/common/text_box.cpp @@ -45,20 +45,24 @@ SDL_Texture* renderTextTexture(SDL_Renderer* renderer, TTF_Font* font, std::stri return texture; } +TextBox::TextBox() { + // +} + +TextBox::~TextBox() { + ClearText(); +} + void TextBox::DrawTo(SDL_Renderer* renderer) { - image.DrawTo(renderer, posX, posY); + SDL_Rect dclip = {posX, posY, 0, 0}; + SDL_QueryTexture(texture, nullptr, nullptr, &dclip.w, &dclip.h); + SDL_RenderCopy(renderer, texture, nullptr, &dclip); } void TextBox::SetText(SDL_Renderer* renderer, TTF_Font* font, std::string str, SDL_Color color) { - //make the new texture - SDL_Texture* newText = renderTextTexture(renderer, font, str, color); - - //copy the texture - image.Free(); - image.CopyTexture(renderer, newText); - - //cleanup - SDL_DestroyTexture(newText); + //just use the above global function + SDL_DestroyTexture(texture); + texture = renderTextTexture(renderer, font, str, color); } void TextBox::AddText(SDL_Renderer* renderer, TTF_Font* font, std::string str, SDL_Color color) { @@ -66,5 +70,5 @@ void TextBox::AddText(SDL_Renderer* renderer, TTF_Font* font, std::string str, S } void TextBox::ClearText() { - image.Free(); + SDL_DestroyTexture(texture); } diff --git a/src/common/text_box.hpp b/src/common/text_box.hpp index 376ed4c..b606aa5 100644 --- a/src/common/text_box.hpp +++ b/src/common/text_box.hpp @@ -21,7 +21,6 @@ */ #pragma once -#include "image.hpp" #include "SDL2/SDL.h" #include "SDL2/SDL_ttf.h" @@ -33,8 +32,8 @@ SDL_Texture* renderTextTexture(SDL_Renderer*, TTF_Font*, std::string, SDL_Color class TextBox { public: - TextBox() = default; - ~TextBox() = default; + TextBox(); + ~TextBox(); void DrawTo(SDL_Renderer*); @@ -49,6 +48,6 @@ public: int SetY() { return posY; } protected: - Image image; + SDL_Texture* texture = nullptr; int posX = 0, posY = 0; }; \ No newline at end of file