From 8aa7267b213726511b3eed7915adb53742147c06 Mon Sep 17 00:00:00 2001 From: Jasper Date: Thu, 19 May 2022 21:02:00 +0200 Subject: [PATCH] Don't load font in TextWidget --- include/AMI.h | 4 ++++ include/widgets.h | 3 +-- src/AMI.cpp | 9 +++++---- src/widgets.cpp | 9 ++++----- 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/include/AMI.h b/include/AMI.h index 02bab54..977fa53 100644 --- a/include/AMI.h +++ b/include/AMI.h @@ -1,10 +1,12 @@ #pragma once +#include "View.h" #include "widgets.h" #include constexpr const char* FT_LOGO_PATH = "resources/Fasttube_Logo-white.bmp"; +constexpr const char* AVENIR_FONT_PATH = "resources/Avenir-Book.ttf"; class AMI { public: @@ -15,6 +17,8 @@ public: private: SDL_Renderer* renderer; + TTF_Font* avenir; + ImageWidget ft_logo; TextWidget choose; }; \ No newline at end of file diff --git a/include/widgets.h b/include/widgets.h index aa00708..0bc8384 100644 --- a/include/widgets.h +++ b/include/widgets.h @@ -41,8 +41,7 @@ public: class TextWidget : public TextureWidget { public: - TextWidget(SDL_Renderer* renderer, SDL_Rect dest_rect, - const std::string& font_path, + TextWidget(SDL_Renderer* renderer, SDL_Rect dest_rect, TTF_Font* font, const std::string& initial_text = ""); ~TextWidget(); diff --git a/src/AMI.cpp b/src/AMI.cpp index 656e508..5a979bb 100644 --- a/src/AMI.cpp +++ b/src/AMI.cpp @@ -1,12 +1,13 @@ #include "AMI.h" +#include "util.h" + AMI::AMI(SDL_Renderer* renderer) - : renderer{renderer}, ft_logo{renderer, - {.x = 182, .y = 0, .w = 116, .h = 40}, - FT_LOGO_PATH}, + : renderer{renderer}, avenir{util::load_font(AVENIR_FONT_PATH, 28)}, + ft_logo{renderer, {.x = 182, .y = 0, .w = 116, .h = 40}, FT_LOGO_PATH}, choose{renderer, {.x = 0, .y = 45, .w = 480, .h = 40}, - "resources/Avenir-Book.ttf", + avenir, "Choose a Mission:"} {} void AMI::draw() { diff --git a/src/widgets.cpp b/src/widgets.cpp index 27f61af..e87c62a 100644 --- a/src/widgets.cpp +++ b/src/widgets.cpp @@ -41,16 +41,15 @@ ImageWidget::ImageWidget(SDL_Renderer* renderer, SDL_Rect dest_rect, : TextureWidget{renderer, dest_rect, util::load_img(renderer, path)} {} TextWidget::TextWidget(SDL_Renderer* renderer, SDL_Rect dest_rect, - const std::string& font_path, - const std::string& initial_text) - : TextureWidget{renderer, dest_rect, std::nullopt}, - font{util::load_font(font_path, 28)}, text{initial_text} { + TTF_Font* font, const std::string& initial_text) + : TextureWidget{renderer, dest_rect, std::nullopt}, font{font}, + text{initial_text} { if (text != "") { update_texture(generate_text(text)); } } -TextWidget::~TextWidget() { TTF_CloseFont(font); } +TextWidget::~TextWidget() {} void TextWidget::update_text(const std::string& new_text) { if (text != new_text) {