Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "SDL.h"
- #undef main
- #include "SDL_ttf.h"
- #include <string>
- class Texture
- {
- public:
- Texture(SDL_Renderer* renderer) : Renderer(renderer) { }
- void loadFromText(std::string text, SDL_Color color, TTF_Font* font)
- {
- SDL_Texture* newTexture = nullptr;
- SDL_Surface* textSurface = TTF_RenderText_Solid(font, text.c_str(), color);
- if (textSurface != nullptr)
- {
- newTexture = SDL_CreateTextureFromSurface(Renderer, textSurface);
- if (newTexture != nullptr)
- {
- Width = (float)textSurface->w;
- Height = (float)textSurface->h;
- }
- }
- texture = newTexture;
- SDL_SetTextureBlendMode(texture, SDL_BLENDMODE_BLEND);
- }
- void Render(float x, float y)
- {
- SDL_Rect rect{ (int)x, (int)y, (int)Width, (int)Height };
- SDL_RenderCopy(Renderer, texture, nullptr, &rect);
- }
- private:
- SDL_Renderer* Renderer;
- SDL_Texture* texture;
- float Width, Height;
- };
- int main()
- {
- SDL_Init(SDL_INIT_EVERYTHING);
- TTF_Init();
- bool quit = false;
- SDL_Event e;
- SDL_Window* window = SDL_CreateWindow("TEST", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 480, 0);
- SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
- TTF_Font* font = TTF_OpenFont("Resource/Gui/Font/RussoOneRegular.ttf", 16);
- Texture t(renderer);
- t.loadFromText("TEST TEXT", SDL_Color{ 255, 0, 0, 255 }, font);
- while (!quit)
- {
- while (SDL_PollEvent(&e) != 0)
- {
- switch (e.type)
- {
- case SDL_QUIT:
- quit = true;
- break;
- }
- }
- SDL_RenderClear(renderer);
- t.Render(0.0f, 0.0f);
- SDL_RenderPresent(renderer);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement