From 3ed4e51e23b5093a44a166b2f11ff66164e5cff1 Mon Sep 17 00:00:00 2001
From: WBoerenkamps <wrj.boerenkamps@student.avans.nl>
Date: Thu, 12 Dec 2024 21:09:55 +0100
Subject: font working

---
 src/crepe/facade/SDLContext.h | 1 +
 1 file changed, 1 insertion(+)

(limited to 'src/crepe/facade/SDLContext.h')

diff --git a/src/crepe/facade/SDLContext.h b/src/crepe/facade/SDLContext.h
index 46b779f..6b725e3 100644
--- a/src/crepe/facade/SDLContext.h
+++ b/src/crepe/facade/SDLContext.h
@@ -5,6 +5,7 @@
 #include <SDL2/SDL_rect.h>
 #include <SDL2/SDL_render.h>
 #include <SDL2/SDL_video.h>
+#include <SDL2/SDL_ttf.h>
 #include <cmath>
 #include <functional>
 #include <memory>
-- 
cgit v1.2.3


From 054b1ebea645bb8916f87e0d8f0f85d59e998eaf Mon Sep 17 00:00:00 2001
From: WBoerenkamps <wrj.boerenkamps@student.avans.nl>
Date: Thu, 12 Dec 2024 21:16:19 +0100
Subject: font facade added to SDLContext

---
 src/crepe/api/Text.h          |  6 ++++--
 src/crepe/facade/Font.h       | 31 ++++++++++++++++++-------------
 src/crepe/facade/SDLContext.h |  5 ++++-
 3 files changed, 26 insertions(+), 16 deletions(-)

(limited to 'src/crepe/facade/SDLContext.h')

diff --git a/src/crepe/api/Text.h b/src/crepe/api/Text.h
index 51bab98..8436611 100644
--- a/src/crepe/api/Text.h
+++ b/src/crepe/api/Text.h
@@ -20,8 +20,6 @@ public:
 	Text(game_object_id_t id,const vec2 & dimensions, const vec2 & offset,std::string text,std::string font_family);
 	//! Text data that does not have to be set in the constructor
 	struct Data {
-		//! Label text color.
-		Color text_color = Color::BLACK;
 		/**
 		 *  \brief fontsize for text rendering
 		 * 
@@ -32,11 +30,15 @@ public:
 		 * Instead this value is used to upscale the font texture which can cause blurring or distorted text when upscaling or downscaling too much.
 		 */
 		unsigned int font_size = 16;
+
 		//! Layer sorting level of the text
 		const int sorting_in_layer = 0;
 
 		//! Order within the sorting text
 		const int order_in_layer = 0;
+
+		//! Label text color.
+		Color text_color = Color::BLACK;
 	};
 public:
 	//! font family name such as (Arial,Helvetica,Inter)
diff --git a/src/crepe/facade/Font.h b/src/crepe/facade/Font.h
index a27676b..fbc1b8f 100644
--- a/src/crepe/facade/Font.h
+++ b/src/crepe/facade/Font.h
@@ -1,35 +1,40 @@
 #pragma once
-
-#include <memory>
 #include <SDL2/SDL_ttf.h>
+#include <memory>
 
 #include "../api/Asset.h"
 #include "../api/Config.h"
 #include "../Resource.h"
+
 namespace crepe {
 
 /**
  * \brief Resource for managing font creation and destruction
  *
  * This class is a wrapper around an SDL_ttf font instance, encapsulating font loading and usage.
+ * It loads a font from an Asset and manages its lifecycle. The font is automatically unloaded
+ * when this object is destroyed.
  */
 class Font : public Resource{
 public:
     /**
-	 * \param src Asset with font data to load.
-	 * \param mediator use the SDLContext reference to get_font()
-	 */
+     * \param src The Asset containing the font file path and metadata to load the font.
+     * \param mediator The Mediator object used for managing the SDL context or related systems.
+     */
     Font(const Asset & src, Mediator & mediator);
 
-	/**
-	 * \brief getter for TTF_Font
-	 * 
-	 * \param src Asset with font data to load.
-	 * \param mediator use the SDLContext reference to get_font()
-	 */
-	TTF_Font* get_font() const;
+    /**
+     * \brief Gets the underlying TTF_Font resource.
+     * 
+     * This function returns the raw pointer to the SDL_ttf TTF_Font object that represents
+     * the loaded font. This can be used with SDL_ttf functions to render text.
+     * 
+     * \return The raw TTF_Font object wrapped in a unique pointer.
+     */
+    TTF_Font* get_font() const;
+
 private:
-	//! The SDL_ttf font object with custom deleter.
+    //! The SDL_ttf font object with custom deleter.
     std::unique_ptr<TTF_Font, decltype(&TTF_CloseFont)> font;
 };
 
diff --git a/src/crepe/facade/SDLContext.h b/src/crepe/facade/SDLContext.h
index 6b725e3..bbbb542 100644
--- a/src/crepe/facade/SDLContext.h
+++ b/src/crepe/facade/SDLContext.h
@@ -16,9 +16,10 @@
 #include "api/KeyCodes.h"
 #include "api/Sprite.h"
 #include "api/Transform.h"
-
 #include "types.h"
 
+#include "SDLFontContext.h"
+
 namespace crepe {
 
 class Texture;
@@ -226,6 +227,7 @@ public:
 	void set_color_texture(const Texture & texture, const Color & color);
 
 private:
+
 	//! sdl Window
 	std::unique_ptr<SDL_Window, std::function<void(SDL_Window *)>> game_window;
 
@@ -234,6 +236,7 @@ private:
 
 	//! black bars rectangle to draw
 	SDL_FRect black_bars[2] = {};
+	SDLFontContext font_facade{};
 };
 
 } // namespace crepe
-- 
cgit v1.2.3


From 24818173c970829553d75787ed6a60e6c95e16c6 Mon Sep 17 00:00:00 2001
From: WBoerenkamps <wrj.boerenkamps@student.avans.nl>
Date: Thu, 12 Dec 2024 21:17:29 +0100
Subject: fontcontext removed from sdlcontext

---
 src/crepe/facade/SDLContext.h | 2 --
 1 file changed, 2 deletions(-)

(limited to 'src/crepe/facade/SDLContext.h')

diff --git a/src/crepe/facade/SDLContext.h b/src/crepe/facade/SDLContext.h
index bbbb542..957ee32 100644
--- a/src/crepe/facade/SDLContext.h
+++ b/src/crepe/facade/SDLContext.h
@@ -18,7 +18,6 @@
 #include "api/Transform.h"
 #include "types.h"
 
-#include "SDLFontContext.h"
 
 namespace crepe {
 
@@ -236,7 +235,6 @@ private:
 
 	//! black bars rectangle to draw
 	SDL_FRect black_bars[2] = {};
-	SDLFontContext font_facade{};
 };
 
 } // namespace crepe
-- 
cgit v1.2.3


From 1658c71bb7d3676699e9519131d6ea542e74fc83 Mon Sep 17 00:00:00 2001
From: WBoerenkamps <wrj.boerenkamps@student.avans.nl>
Date: Thu, 12 Dec 2024 21:22:06 +0100
Subject: added enter between functions

---
 src/crepe/facade/SDLContext.h       | 1 -
 src/crepe/facade/SDLFontContext.cpp | 1 +
 2 files changed, 1 insertion(+), 1 deletion(-)

(limited to 'src/crepe/facade/SDLContext.h')

diff --git a/src/crepe/facade/SDLContext.h b/src/crepe/facade/SDLContext.h
index 554880f..d7b8365 100644
--- a/src/crepe/facade/SDLContext.h
+++ b/src/crepe/facade/SDLContext.h
@@ -18,7 +18,6 @@
 #include "api/Transform.h"
 #include "types.h"
 
-
 namespace crepe {
 
 class Texture;
diff --git a/src/crepe/facade/SDLFontContext.cpp b/src/crepe/facade/SDLFontContext.cpp
index e7f04cc..4fb0e88 100644
--- a/src/crepe/facade/SDLFontContext.cpp
+++ b/src/crepe/facade/SDLFontContext.cpp
@@ -15,6 +15,7 @@ SDLFontContext::SDLFontContext(){
 SDLFontContext::~SDLFontContext(){
 		FcFini();
 }
+
 unique_ptr<Asset> SDLFontContext::get_font_asset(const string & font_family) {
 	
     // Create a pattern to search for the font family
-- 
cgit v1.2.3


From 5ef7c56e44a864e580810952450c43c0f9a7b6e0 Mon Sep 17 00:00:00 2001
From: WBoerenkamps <wrj.boerenkamps@student.avans.nl>
Date: Thu, 12 Dec 2024 21:26:03 +0100
Subject: make format

---
 src/crepe/api/Text.cpp              |  7 +++-
 src/crepe/api/Text.h                |  8 ++--
 src/crepe/facade/Font.cpp           | 28 ++++++-------
 src/crepe/facade/Font.h             | 16 ++++----
 src/crepe/facade/SDLContext.cpp     |  4 +-
 src/crepe/facade/SDLContext.h       |  3 +-
 src/crepe/facade/SDLFontContext.cpp | 80 ++++++++++++++++++-------------------
 src/crepe/facade/SDLFontContext.h   | 21 +++++-----
 src/example/loadfont.cpp            | 34 ++++++++--------
 9 files changed, 102 insertions(+), 99 deletions(-)

(limited to 'src/crepe/facade/SDLContext.h')

diff --git a/src/crepe/api/Text.cpp b/src/crepe/api/Text.cpp
index 12d01f1..b30ccf6 100644
--- a/src/crepe/api/Text.cpp
+++ b/src/crepe/api/Text.cpp
@@ -2,5 +2,8 @@
 
 using namespace crepe;
 
-Text::Text(game_object_id_t id,const vec2 & dimensions, const vec2 & offset,std::string text,std::string font_family) : UIObject(id,dimensions,offset),text(text), font_family(font_family){}
-
+Text::Text(game_object_id_t id, const vec2 & dimensions, const vec2 & offset, std::string text,
+		   std::string font_family)
+	: UIObject(id, dimensions, offset),
+	  text(text),
+	  font_family(font_family) {}
diff --git a/src/crepe/api/Text.h b/src/crepe/api/Text.h
index 8436611..ebf413b 100644
--- a/src/crepe/api/Text.h
+++ b/src/crepe/api/Text.h
@@ -8,16 +8,17 @@
 #include "Color.h"
 #include "UIObject.h"
 
-namespace crepe{
+namespace crepe {
 
 /**
  * \brief Text UIObject component for displaying text
  * 
  * This class can be used to display text on screen. By setting the font_family to a font already stored on the current device it will automatically be loaded in.
  */
-class Text : public UIObject{
+class Text : public UIObject {
 public:
-	Text(game_object_id_t id,const vec2 & dimensions, const vec2 & offset,std::string text,std::string font_family);
+	Text(game_object_id_t id, const vec2 & dimensions, const vec2 & offset, std::string text,
+		 std::string font_family);
 	//! Text data that does not have to be set in the constructor
 	struct Data {
 		/**
@@ -40,6 +41,7 @@ public:
 		//! Label text color.
 		Color text_color = Color::BLACK;
 	};
+
 public:
 	//! font family name such as (Arial,Helvetica,Inter)
 	std::string font_family = "";
diff --git a/src/crepe/facade/Font.cpp b/src/crepe/facade/Font.cpp
index 37dee3a..85b0e13 100644
--- a/src/crepe/facade/Font.cpp
+++ b/src/crepe/facade/Font.cpp
@@ -5,21 +5,21 @@
 using namespace std;
 using namespace crepe;
 
-Font::Font(const Asset& src, Mediator& mediator) 
-    : Resource(src, mediator), font(nullptr, TTF_CloseFont) {
-    // Get the font file path from the Asset
-    const std::string font_path = src.get_path();
+Font::Font(const Asset & src, Mediator & mediator)
+	: Resource(src, mediator),
+	  font(nullptr, TTF_CloseFont) {
+	// Get the font file path from the Asset
+	const std::string font_path = src.get_path();
 
-    // Attempt to load the font
-    this->font.reset(TTF_OpenFont(font_path.c_str(), Config::get_instance().font.size));
+	// Attempt to load the font
+	this->font.reset(TTF_OpenFont(font_path.c_str(), Config::get_instance().font.size));
 
-    // Check if font loading failed
-    if (!this->font) {
-        throw runtime_error(format("Failed to load font from path: {}" 
-                                 ". SDL_ttf error: {}",font_path, TTF_GetError()));
-    }
+	// Check if font loading failed
+	if (!this->font) {
+		throw runtime_error(format("Failed to load font from path: {}"
+								   ". SDL_ttf error: {}",
+								   font_path, TTF_GetError()));
+	}
 }
 
-TTF_Font* Font::get_font() const {
-    return this->font.get();
-}
+TTF_Font * Font::get_font() const { return this->font.get(); }
diff --git a/src/crepe/facade/Font.h b/src/crepe/facade/Font.h
index fbc1b8f..983ef31 100644
--- a/src/crepe/facade/Font.h
+++ b/src/crepe/facade/Font.h
@@ -2,9 +2,9 @@
 #include <SDL2/SDL_ttf.h>
 #include <memory>
 
+#include "../Resource.h"
 #include "../api/Asset.h"
 #include "../api/Config.h"
-#include "../Resource.h"
 
 namespace crepe {
 
@@ -15,15 +15,15 @@ namespace crepe {
  * It loads a font from an Asset and manages its lifecycle. The font is automatically unloaded
  * when this object is destroyed.
  */
-class Font : public Resource{
+class Font : public Resource {
 public:
-    /**
+	/**
      * \param src The Asset containing the font file path and metadata to load the font.
      * \param mediator The Mediator object used for managing the SDL context or related systems.
      */
-    Font(const Asset & src, Mediator & mediator);
+	Font(const Asset & src, Mediator & mediator);
 
-    /**
+	/**
      * \brief Gets the underlying TTF_Font resource.
      * 
      * This function returns the raw pointer to the SDL_ttf TTF_Font object that represents
@@ -31,11 +31,11 @@ public:
      * 
      * \return The raw TTF_Font object wrapped in a unique pointer.
      */
-    TTF_Font* get_font() const;
+	TTF_Font * get_font() const;
 
 private:
-    //! The SDL_ttf font object with custom deleter.
-    std::unique_ptr<TTF_Font, decltype(&TTF_CloseFont)> font;
+	//! The SDL_ttf font object with custom deleter.
+	std::unique_ptr<TTF_Font, decltype(&TTF_CloseFont)> font;
 };
 
 } // namespace crepe
diff --git a/src/crepe/facade/SDLContext.cpp b/src/crepe/facade/SDLContext.cpp
index 274c14a..cbb0f3b 100644
--- a/src/crepe/facade/SDLContext.cpp
+++ b/src/crepe/facade/SDLContext.cpp
@@ -32,8 +32,8 @@ using namespace std;
 SDLContext::SDLContext(Mediator & mediator) {
 	dbg_trace();
 	if (TTF_Init() == -1) {
-        throw runtime_error(format("SDL_ttf initialization failed: {}", TTF_GetError()));
-    }
+		throw runtime_error(format("SDL_ttf initialization failed: {}", TTF_GetError()));
+	}
 	if (SDL_Init(SDL_INIT_VIDEO) != 0) {
 		throw runtime_error(format("SDLContext: SDL_Init error: {}", SDL_GetError()));
 	}
diff --git a/src/crepe/facade/SDLContext.h b/src/crepe/facade/SDLContext.h
index d7b8365..76cd99a 100644
--- a/src/crepe/facade/SDLContext.h
+++ b/src/crepe/facade/SDLContext.h
@@ -4,8 +4,8 @@
 #include <SDL2/SDL_keycode.h>
 #include <SDL2/SDL_rect.h>
 #include <SDL2/SDL_render.h>
-#include <SDL2/SDL_video.h>
 #include <SDL2/SDL_ttf.h>
+#include <SDL2/SDL_video.h>
 #include <cmath>
 #include <functional>
 #include <memory>
@@ -225,7 +225,6 @@ public:
 	void set_color_texture(const Texture & texture, const Color & color);
 
 private:
-
 	//! sdl Window
 	std::unique_ptr<SDL_Window, std::function<void(SDL_Window *)>> game_window;
 
diff --git a/src/crepe/facade/SDLFontContext.cpp b/src/crepe/facade/SDLFontContext.cpp
index 851016b..2bccac4 100644
--- a/src/crepe/facade/SDLFontContext.cpp
+++ b/src/crepe/facade/SDLFontContext.cpp
@@ -2,54 +2,52 @@
 
 #include "SDLFontContext.h"
 
-
 using namespace crepe;
 using namespace std;
 
-SDLFontContext::SDLFontContext(){
+SDLFontContext::SDLFontContext() {
 	if (!FcInit()) {
-            throw runtime_error("Failed to initialize Fontconfig.");
-    }
+		throw runtime_error("Failed to initialize Fontconfig.");
+	}
 }
 
-SDLFontContext::~SDLFontContext(){
-		FcFini();
-}
+SDLFontContext::~SDLFontContext() { FcFini(); }
 
 unique_ptr<Asset> SDLFontContext::get_font_asset(const string & font_family) {
-	
-    // Create a pattern to search for the font family
-    FcPattern* pattern = FcNameParse(reinterpret_cast<const FcChar8*>(font_family.c_str()));
-    if (!pattern) {
-        throw runtime_error("Failed to create font pattern.");
-    }
-
-    // Default configuration
-    FcConfig* config = FcConfigGetCurrent();
-    if (!config) {
-        FcPatternDestroy(pattern);
-        throw runtime_error("Failed to get current Fontconfig configuration.");
-    }
-
-    // Match the font pattern
-    FcResult result;
-    FcPattern* matched_pattern = FcFontMatch(config, pattern, &result);
-    FcPatternDestroy(pattern);
-
-    if (!matched_pattern) {
+
+	// Create a pattern to search for the font family
+	FcPattern * pattern = FcNameParse(reinterpret_cast<const FcChar8 *>(font_family.c_str()));
+	if (!pattern) {
+		throw runtime_error("Failed to create font pattern.");
+	}
+
+	// Default configuration
+	FcConfig * config = FcConfigGetCurrent();
+	if (!config) {
+		FcPatternDestroy(pattern);
+		throw runtime_error("Failed to get current Fontconfig configuration.");
+	}
+
+	// Match the font pattern
+	FcResult result;
+	FcPattern * matched_pattern = FcFontMatch(config, pattern, &result);
+	FcPatternDestroy(pattern);
+
+	if (!matched_pattern) {
 		FcPatternDestroy(matched_pattern);
-        throw runtime_error("No matching font found.");
-    }
-
-    // Extract the file path
-    FcChar8* file_path = nullptr;
-    if (FcPatternGetString(matched_pattern, FC_FILE, 0, &file_path) != FcResultMatch || !file_path) {
-        FcPatternDestroy(matched_pattern);
-        throw runtime_error("Failed to get font file path.");
-    }
-
-    // Convert the file path to a string
-    string font_file_path(reinterpret_cast<const char*>(file_path));
-    FcPatternDestroy(matched_pattern);
-    return move(make_unique<Asset>(font_file_path));
+		throw runtime_error("No matching font found.");
+	}
+
+	// Extract the file path
+	FcChar8 * file_path = nullptr;
+	if (FcPatternGetString(matched_pattern, FC_FILE, 0, &file_path) != FcResultMatch
+		|| !file_path) {
+		FcPatternDestroy(matched_pattern);
+		throw runtime_error("Failed to get font file path.");
+	}
+
+	// Convert the file path to a string
+	string font_file_path(reinterpret_cast<const char *>(file_path));
+	FcPatternDestroy(matched_pattern);
+	return move(make_unique<Asset>(font_file_path));
 }
diff --git a/src/crepe/facade/SDLFontContext.h b/src/crepe/facade/SDLFontContext.h
index c890b2d..b9e1f23 100644
--- a/src/crepe/facade/SDLFontContext.h
+++ b/src/crepe/facade/SDLFontContext.h
@@ -1,17 +1,17 @@
 #pragma once
 
-#include <memory>
 #include <SDL2/SDL_ttf.h>
 #include <fontconfig/fontconfig.h>
+#include <memory>
 
 #include "../api/Asset.h"
 
 namespace crepe {
-	class SDLFontContext{
-	public:
-		SDLFontContext();
-		~SDLFontContext();
-		/**
+class SDLFontContext {
+public:
+	SDLFontContext();
+	~SDLFontContext();
+	/**
 		 * 
 		 * \brief Facade function to convert a font_family into an asset.
 		 * 
@@ -19,8 +19,9 @@ namespace crepe {
 		 * 
 		 * \param font_family Name of the font family name.
 		 */
-		std::unique_ptr<Asset> get_font_asset(const std::string & font_family);
-	private:
-	};
+	std::unique_ptr<Asset> get_font_asset(const std::string & font_family);
+
+private:
+};
 
-}
+} // namespace crepe
diff --git a/src/example/loadfont.cpp b/src/example/loadfont.cpp
index 52454a1..efd5a98 100644
--- a/src/example/loadfont.cpp
+++ b/src/example/loadfont.cpp
@@ -1,27 +1,27 @@
-#include <iostream>
-#include <exception>
-#include <memory>
-#include <crepe/facade/SDLFontContext.h>
 #include <crepe/api/Text.h>
 #include <crepe/facade/Font.h>
-#include <crepe/manager/Mediator.h>
 #include <crepe/facade/SDLContext.h>
+#include <crepe/facade/SDLFontContext.h>
+#include <crepe/manager/Mediator.h>
+#include <exception>
+#include <iostream>
+#include <memory>
 using namespace crepe;
 int main() {
-	
-    SDLFontContext font_facade;
+
+	SDLFontContext font_facade;
 	Mediator mediator;
 	SDLContext sdl_context{mediator};
-	try{
-		  // Correct way to create a unique pointer for Text
-    std::unique_ptr<Text> label = std::make_unique<Text>(1, vec2(100, 100), vec2(0, 0), "test test","OpenSymbol");
-	std::unique_ptr<Asset> asset = font_facade.get_font_asset(label->font_family);
-	std::cout << "path: " << asset->get_path() << std::endl;
-	std::unique_ptr<Font> font = std::make_unique<Font>(*asset,mediator);
-	}catch (const std::exception& e) {
-    std::cout << "Standard exception thrown: " << e.what() << std::endl;
+	try {
+		// Correct way to create a unique pointer for Text
+		std::unique_ptr<Text> label
+			= std::make_unique<Text>(1, vec2(100, 100), vec2(0, 0), "test test", "OpenSymbol");
+		std::unique_ptr<Asset> asset = font_facade.get_font_asset(label->font_family);
+		std::cout << "path: " << asset->get_path() << std::endl;
+		std::unique_ptr<Font> font = std::make_unique<Font>(*asset, mediator);
+	} catch (const std::exception & e) {
+		std::cout << "Standard exception thrown: " << e.what() << std::endl;
 	}
-  
 
-    return 0;
+	return 0;
 }
-- 
cgit v1.2.3


From fda61be91cd8667fa2b51e3b8a17ba6b93b728c8 Mon Sep 17 00:00:00 2001
From: WBoerenkamps <wrj.boerenkamps@student.avans.nl>
Date: Sat, 14 Dec 2024 14:45:10 +0100
Subject: feedback changes

---
 src/crepe/facade/SDLContext.cpp     | 3 ++-
 src/crepe/facade/SDLContext.h       | 1 -
 src/crepe/facade/SDLFontContext.cpp | 8 ++++----
 src/example/loadfont.cpp            | 3 ++-
 4 files changed, 8 insertions(+), 7 deletions(-)

(limited to 'src/crepe/facade/SDLContext.h')

diff --git a/src/crepe/facade/SDLContext.cpp b/src/crepe/facade/SDLContext.cpp
index cbb0f3b..47dda81 100644
--- a/src/crepe/facade/SDLContext.cpp
+++ b/src/crepe/facade/SDLContext.cpp
@@ -7,6 +7,7 @@
 #include <SDL2/SDL_render.h>
 #include <SDL2/SDL_surface.h>
 #include <SDL2/SDL_video.h>
+#include <SDL2/SDL_ttf.h>
 #include <array>
 #include <cmath>
 #include <cstddef>
@@ -75,8 +76,8 @@ SDLContext::~SDLContext() {
 	// thread that SDL_Init() was called on? This has caused problems for me
 	// before.
 	IMG_Quit();
-	SDL_Quit();
 	TTF_Quit();
+	SDL_Quit();
 }
 
 Keycode SDLContext::sdl_to_keycode(SDL_Keycode sdl_key) {
diff --git a/src/crepe/facade/SDLContext.h b/src/crepe/facade/SDLContext.h
index 76cd99a..efdd6fe 100644
--- a/src/crepe/facade/SDLContext.h
+++ b/src/crepe/facade/SDLContext.h
@@ -4,7 +4,6 @@
 #include <SDL2/SDL_keycode.h>
 #include <SDL2/SDL_rect.h>
 #include <SDL2/SDL_render.h>
-#include <SDL2/SDL_ttf.h>
 #include <SDL2/SDL_video.h>
 #include <cmath>
 #include <functional>
diff --git a/src/crepe/facade/SDLFontContext.cpp b/src/crepe/facade/SDLFontContext.cpp
index 5123b3b..e0b9a89 100644
--- a/src/crepe/facade/SDLFontContext.cpp
+++ b/src/crepe/facade/SDLFontContext.cpp
@@ -17,13 +17,13 @@ Asset SDLFontContext::get_font_asset(const string font_family) {
 
 	// Create a pattern to search for the font family
 	FcPattern * pattern = FcNameParse(reinterpret_cast<const FcChar8 *>(font_family.c_str()));
-	if (!pattern) {
+	if (pattern == NULL) {
 		throw runtime_error("Failed to create font pattern.");
 	}
 
 	// Default configuration
 	FcConfig * config = FcConfigGetCurrent();
-	if (!config) {
+	if (config == NULL) {
 		FcPatternDestroy(pattern);
 		throw runtime_error("Failed to get current Fontconfig configuration.");
 	}
@@ -33,7 +33,7 @@ Asset SDLFontContext::get_font_asset(const string font_family) {
 	FcPattern * matched_pattern = FcFontMatch(config, pattern, &result);
 	FcPatternDestroy(pattern);
 
-	if (!matched_pattern) {
+	if (matched_pattern == NULL) {
 		FcPatternDestroy(matched_pattern);
 		throw runtime_error("No matching font found.");
 	}
@@ -41,7 +41,7 @@ Asset SDLFontContext::get_font_asset(const string font_family) {
 	// Extract the file path
 	FcChar8 * file_path = nullptr;
 	if (FcPatternGetString(matched_pattern, FC_FILE, 0, &file_path) != FcResultMatch
-		|| !file_path) {
+		|| file_path == NULL) {
 		FcPatternDestroy(matched_pattern);
 		throw runtime_error("Failed to get font file path.");
 	}
diff --git a/src/example/loadfont.cpp b/src/example/loadfont.cpp
index a52e7f0..6020908 100644
--- a/src/example/loadfont.cpp
+++ b/src/example/loadfont.cpp
@@ -21,7 +21,8 @@ int main() {
 		std::unique_ptr<Font> font = std::make_unique<Font>(asset, mediator);
 		// Get the TTF_Font from the Font object
 		TTF_Font* ttf_font = font->get_font();
-
+		//example if the asset is not correct for font
+		//std::unique_ptr<Font> fontThrow = std::make_unique<Font>(Asset("../help.txt"), mediator);
 		// Check if the font is loaded properly
 		if (ttf_font != nullptr) {
 			std::cout << "Font successfully loaded!" << std::endl;
-- 
cgit v1.2.3


From b99f5fc0f52fdd4ec96be844e643060503a8860b Mon Sep 17 00:00:00 2001
From: WBoerenkamps <wrj.boerenkamps@student.avans.nl>
Date: Tue, 17 Dec 2024 13:22:34 +0100
Subject: text now working with optional

---
 src/crepe/api/Asset.h             |  2 +-
 src/crepe/api/LoopManager.h       |  7 ++++---
 src/crepe/api/Script.h            |  5 +++--
 src/crepe/api/Text.cpp            |  8 +++++---
 src/crepe/api/Text.h              | 15 +++++++++++----
 src/crepe/facade/Font.cpp         |  3 +--
 src/crepe/facade/Font.h           | 10 +---------
 src/crepe/facade/FontFacade.cpp   | 11 ++++++++---
 src/crepe/facade/FontFacade.h     | 12 +++++++++---
 src/crepe/facade/SDLContext.cpp   |  5 +++++
 src/crepe/facade/SDLContext.h     | 15 +++++++++++++++
 src/crepe/system/RenderSystem.cpp | 28 +++++++++++++++++++++++++---
 src/crepe/system/RenderSystem.h   | 10 ++++++++--
 src/example/FontExample.cpp       |  6 ++++--
 src/example/loadfont.cpp          | 31 ++++++++++++++++++-------------
 15 files changed, 118 insertions(+), 50 deletions(-)

(limited to 'src/crepe/facade/SDLContext.h')

diff --git a/src/crepe/api/Asset.h b/src/crepe/api/Asset.h
index bfd0ac7..b367a92 100644
--- a/src/crepe/api/Asset.h
+++ b/src/crepe/api/Asset.h
@@ -37,7 +37,7 @@ public:
 
 private:
 	//! path to asset
-	const std::string src;
+	std::string src;
 
 private:
 	/**
diff --git a/src/crepe/api/LoopManager.h b/src/crepe/api/LoopManager.h
index 40e6b38..1725810 100644
--- a/src/crepe/api/LoopManager.h
+++ b/src/crepe/api/LoopManager.h
@@ -71,7 +71,9 @@ private:
 private:
 	//! Global context
 	Mediator mediator;
-
+	
+	//! SDLContext instance
+	SDLContext sdl_context{mediator};
 	//! Component manager instance
 	ComponentManager component_manager{mediator};
 	//! Scene manager instance
@@ -84,8 +86,7 @@ private:
 	ResourceManager resource_manager{mediator};
 	//! Save manager instance
 	SaveManager save_manager{mediator};
-	//! SDLContext instance
-	SDLContext sdl_context{mediator};
+	
 
 private:
 	/**
diff --git a/src/crepe/api/Script.h b/src/crepe/api/Script.h
index a24e32e..4503525 100644
--- a/src/crepe/api/Script.h
+++ b/src/crepe/api/Script.h
@@ -156,7 +156,7 @@ private:
 	void subscribe_internal(const EventHandler<EventType> & callback, event_channel_t channel);
 
 protected:
-	OptionalRef<Mediator> mediator;
+	
 	// NOTE: This must be the only constructor on Script, see "Late references" below
 	Script() = default;
 	//! Only \c BehaviorScript instantiates Script
@@ -186,12 +186,13 @@ private:
 	 *
 	 * \{
 	 */
+
 	//! Game object ID of game object parent BehaviorScript is attached to
 	game_object_id_t game_object_id;
 	//! Reference to parent component
 	OptionalRef<bool> active;
 	//! Mediator reference
-
+	OptionalRef<Mediator> mediator;
 	//! \}
 
 private:
diff --git a/src/crepe/api/Text.cpp b/src/crepe/api/Text.cpp
index 5b2befe..0624c98 100644
--- a/src/crepe/api/Text.cpp
+++ b/src/crepe/api/Text.cpp
@@ -4,9 +4,11 @@
 
 using namespace crepe;
 
-Text::Text(game_object_id_t id, const vec2 & dimensions, const vec2 & offset,
-		   const std::string & text, const std::string & font_family, const Data & data)
+Text::Text(game_object_id_t id, const vec2 & dimensions,const vec2 & offset, const std::string & font_family,
+	const Data & data, const std::string & text, std::optional<Asset> font)
 	: UIObject(id, dimensions, offset),
 	  text(text),
 	  data(data),
-	  font(FontFacade::get_font_asset(font_family)) {}
+	  font_family(font_family),
+	  font(font) {
+}
diff --git a/src/crepe/api/Text.h b/src/crepe/api/Text.h
index ec0bf74..ab72bc0 100644
--- a/src/crepe/api/Text.h
+++ b/src/crepe/api/Text.h
@@ -1,6 +1,7 @@
 #pragma once
 
 #include <string>
+#include <optional> 
 
 #include "../Component.h"
 
@@ -47,15 +48,21 @@ public:
 	 * \param text The text to be displayed.
 	 * \param font_family The font style name to be displayed.
 	 * \param data Data struct containing extra text parameters.
+	 * \param font Optional font asset that can be passed or left empty.
 	 */
-	Text(game_object_id_t id, const vec2 & dimensions, const vec2 & offset,
-		 const std::string & text, const std::string & font_family, const Data & data);
+	Text(game_object_id_t id, const vec2 & dimensions, const vec2 & offset, 
+     const std::string & font_family, const Data & data, 
+     const std::string & text = "", std::optional<Asset> font = std::nullopt);
+	
 	//! Label text.
 	std::string text = "";
-	//! Font asset variable
-	const Asset font;
+	//! font family name
+	std::string font_family = "";
+	//! Font asset variable if this is not set, it will use the font_family to create an asset.
+	std::optional<Asset> font;
 	//! Data instance
 	Data data;
+	
 };
 
 } // namespace crepe
diff --git a/src/crepe/facade/Font.cpp b/src/crepe/facade/Font.cpp
index 5af943d..558641f 100644
--- a/src/crepe/facade/Font.cpp
+++ b/src/crepe/facade/Font.cpp
@@ -9,8 +9,7 @@ using namespace std;
 using namespace crepe;
 
 Font::Font(const Asset & src, Mediator & mediator)
-	: Resource(src, mediator),
-	  font(nullptr, TTF_CloseFont) {
+	: Resource(src, mediator){
 	Config & config = Config::get_instance();
 	const std::string FONT_PATH = src.get_path();
 	TTF_Font * loaded_font = TTF_OpenFont(FONT_PATH.c_str(), config.font.size);
diff --git a/src/crepe/facade/Font.h b/src/crepe/facade/Font.h
index 16f8cb6..b208d96 100644
--- a/src/crepe/facade/Font.h
+++ b/src/crepe/facade/Font.h
@@ -24,14 +24,6 @@ public:
      * \param mediator The Mediator object used for managing the SDL context or related systems.
      */
 	Font(const Asset & src, Mediator & mediator);
-    	Font(const Font &) = delete;
-    	Font &operator=(const Font &) = delete;
-
-   	// Default move constructor and move assignment operator
-    	Font(Font &&) noexcept = delete;
-    	Font &operator=(Font &&) noexcept = delete;
-
-    ~Font() = default;
 	/**
      * \brief Gets the underlying TTF_Font resource.
      * 
@@ -44,7 +36,7 @@ public:
 
 private:
 	//! The SDL_ttf font object with custom deleter.
-	std::unique_ptr<TTF_Font, std::function<void(TTF_Font *)>> font;
+	std::unique_ptr<TTF_Font, std::function<void(TTF_Font *)>> font = nullptr;
 };
 
 } // namespace crepe
diff --git a/src/crepe/facade/FontFacade.cpp b/src/crepe/facade/FontFacade.cpp
index d447b6d..0a8ba5f 100644
--- a/src/crepe/facade/FontFacade.cpp
+++ b/src/crepe/facade/FontFacade.cpp
@@ -1,4 +1,5 @@
 #include <fontconfig/fontconfig.h>
+#include <iostream>
 #include <stdexcept>
 
 #include "FontFacade.h"
@@ -6,10 +7,16 @@
 using namespace crepe;
 using namespace std;
 
-Asset FontFacade::get_font_asset(const string& font_family) {
+FontFacade::FontFacade(){
 	if (!FcInit()) {
 		throw runtime_error("Failed to initialize Fontconfig.");
 	}
+}
+FontFacade::~FontFacade(){
+	FcFini();
+}
+Asset FontFacade::get_font_asset(const string& font_family) {
+	
 	// Create a pattern to search for the font family
 	FcPattern * pattern = FcNameParse(reinterpret_cast<const FcChar8 *>(font_family.c_str()));
 	if (pattern == NULL) {
@@ -32,7 +39,6 @@ Asset FontFacade::get_font_asset(const string& font_family) {
 		FcPatternDestroy(matched_pattern);
 		throw runtime_error("No matching font found.");
 	}
-
 	// Extract the file path
 	FcChar8 * file_path = nullptr;
 	if (FcPatternGetString(matched_pattern, FC_FILE, 0, &file_path) != FcResultMatch
@@ -44,6 +50,5 @@ Asset FontFacade::get_font_asset(const string& font_family) {
 	// Convert the file path to a string
 	string font_file_path = reinterpret_cast<const char *>(file_path);
 	FcPatternDestroy(matched_pattern);
-	FcFini();
 	return Asset(font_file_path);
 }
diff --git a/src/crepe/facade/FontFacade.h b/src/crepe/facade/FontFacade.h
index fc200d6..2e08f3f 100644
--- a/src/crepe/facade/FontFacade.h
+++ b/src/crepe/facade/FontFacade.h
@@ -13,16 +13,22 @@ namespace crepe {
  */
 class FontFacade {
 public:
+	FontFacade();
+	~FontFacade();
+    FontFacade(const FontFacade & other) = delete;
+    FontFacade & operator=(const FontFacade & other) = delete;
+    FontFacade(FontFacade && other) noexcept = delete;
+    FontFacade & operator=(FontFacade && other) noexcept = delete;
 	/**
 	 * 
 	 * \brief Facade function to convert a font_family into an asset.
 	 * 
 	 * This function uses the FontConfig library to convert a font family name (Arial, Inter, Helvetica) and converts it to the font source path.
-	 * This function is static so the member function can be used without create a FontFacade object. This way it can be used in a constructor as FontFacade::get_font_asset().
+	 * This function returns a default font path if the font_family name doesnt exist or cant be found
 	 * \param font_family Name of the font family name.
-	 * \return Asset with filepath to the font.
+	 * \return Asset with filepath to the corresponding font.
 	 */
-	static Asset get_font_asset(const std::string& font_family);
+	Asset get_font_asset(const std::string& font_family);
 };
 
 } // namespace crepe
diff --git a/src/crepe/facade/SDLContext.cpp b/src/crepe/facade/SDLContext.cpp
index d1d109c..8ffaad9 100644
--- a/src/crepe/facade/SDLContext.cpp
+++ b/src/crepe/facade/SDLContext.cpp
@@ -434,7 +434,12 @@ std::vector<SDLContext::EventData> SDLContext::get_events() {
 	}
 	return event_list;
 }
+
 void SDLContext::set_color_texture(const Texture & texture, const Color & color) {
 	SDL_SetTextureColorMod(texture.get_img(), color.r, color.g, color.b);
 	SDL_SetTextureAlphaMod(texture.get_img(), color.a);
 }
+
+Asset SDLContext::get_font_from_name(const std::string& font_family){
+	return this->font_facade.get_font_asset(font_family);
+}
diff --git a/src/crepe/facade/SDLContext.h b/src/crepe/facade/SDLContext.h
index efdd6fe..ffa3cc0 100644
--- a/src/crepe/facade/SDLContext.h
+++ b/src/crepe/facade/SDLContext.h
@@ -17,6 +17,7 @@
 #include "api/Transform.h"
 #include "types.h"
 
+#include "FontFacade.h"
 namespace crepe {
 
 class Texture;
@@ -239,6 +240,20 @@ private:
 	 * - this is defined in this class because get_events() needs this information aswell
 	 */
 	CameraAuxiliaryData cam_aux_data;
+private: 
+	//! instance of the font_facade
+	FontFacade font_facade{};
+public:
+	/**
+	 * \brief Function to Get asset from font_family
+	 * 
+	 * This function uses the FontFacade function to convert a font_family to an asset.
+	 * 
+	 * \param font_family name of the font style that needs to be used (will return an asset with default font path of the font_family doesnt exist)
+	 * 
+	 * \return asset with the font style absolute path
+	 */
+	Asset get_font_from_name(const std::string& font_family);
 };
 
 } // namespace crepe
diff --git a/src/crepe/system/RenderSystem.cpp b/src/crepe/system/RenderSystem.cpp
index 5aa00b5..18f6393 100644
--- a/src/crepe/system/RenderSystem.cpp
+++ b/src/crepe/system/RenderSystem.cpp
@@ -2,6 +2,7 @@
 #include <cassert>
 #include <cmath>
 #include <functional>
+#include <optional>
 #include <stdexcept>
 #include <vector>
 
@@ -22,6 +23,7 @@
 using namespace crepe;
 using namespace std;
 
+
 void RenderSystem::clear_screen() {
 	SDLContext & ctx = this->mediator.sdl_context;
 	ctx.clear_screen();
@@ -124,9 +126,11 @@ void RenderSystem::render() {
 	RefVector<Sprite> sprites = mgr.get_components_by_type<Sprite>();
 	ResourceManager & resource_manager = this->mediator.resource_manager;
 	RefVector<Sprite> sorted_sprites = this->sort(sprites);
-	RefVector<Text> texts =  mgr.get_components_by_type<Text>();
-	for(const Text& text : texts){
-		const Font & res = resource_manager.get<Font>(text.font);
+	RefVector<Text> text_components =  mgr.get_components_by_type<Text>();
+	for(Text& text : text_components){
+		const Transform & transform
+			= mgr.get_components_by_id<Transform>(text.game_object_id).front().get();
+		this->render_text(text,transform);
 
 	}
 	for (const Sprite & sprite : sorted_sprites) {
@@ -143,4 +147,22 @@ void RenderSystem::render() {
 	
 		
 	}
+	
 }
+void RenderSystem::render_text(Text & text, const Transform & tm) {
+    SDLContext & ctx = this->mediator.sdl_context;
+
+    // Check if font is available in text
+    if (!text.font.has_value()) {
+    }
+
+    ResourceManager & resource_manager = this->mediator.resource_manager;
+
+    if (text.font.has_value()) {
+        const Asset& font_asset = text.font.value();
+        const Font & res = resource_manager.get<Font>(font_asset); 
+	}
+}
+
+
+
diff --git a/src/crepe/system/RenderSystem.h b/src/crepe/system/RenderSystem.h
index fc7b46e..56a0553 100644
--- a/src/crepe/system/RenderSystem.h
+++ b/src/crepe/system/RenderSystem.h
@@ -10,7 +10,7 @@ namespace crepe {
 class Camera;
 class Sprite;
 class Transform;
-
+class Text;
 /**
  * \brief Manages rendering operations for all game objects.
  *
@@ -50,7 +50,13 @@ private:
 	 * \return true if particles have been rendered
 	 */
 	bool render_particle(const Sprite & sprite, const double & scale);
-
+	/**
+	 * \brief Renders all Text components
+	 *
+	 * \param text The text component to be rendered.
+	 * \param tm the Transform component that holds the position,rotation and scale
+	 */
+	void render_text(Text & text, const Transform & tm);
 	/**
 	 * \brief renders a sprite with a Transform component on the screen
 	 *
diff --git a/src/example/FontExample.cpp b/src/example/FontExample.cpp
index 3f5af48..7b2dadb 100644
--- a/src/example/FontExample.cpp
+++ b/src/example/FontExample.cpp
@@ -11,6 +11,7 @@
 #include <crepe/manager/EventManager.h>
 #include <crepe/manager/Mediator.h>
 #include <crepe/manager/ResourceManager.h>
+#include <crepe/api/Config.h>
 #include <exception>
 #include <iostream>
 #include <memory>
@@ -36,14 +37,15 @@ class TestScene : public Scene {
 public:
 	void load_scene() override {
 		GameObject text_object = this->new_object("test", "test", vec2{0, 0}, 0, 1);
-		text_object.add_component<Text>(vec2(100, 100), vec2(0, 0), "test test", "Noto Sans",
-										Text::Data{});
+		text_object.add_component<Text>(vec2(100, 100), vec2(0, 0), "OpenSymbol", Text::Data{});
 		text_object.add_component<BehaviorScript>().set_script<TestScript>();
 		text_object.add_component<Camera>(ivec2{300, 300}, vec2{100, 100}, Camera::Data{});
 	}
 	std::string get_name() const override { return "hey"; }
 };
 int main() {
+	// Config& config = Config::get_instance();
+	// config.log.level = Log::Level::TRACE;
 	LoopManager engine;
 	engine.add_scene<TestScene>();
 	engine.start();
diff --git a/src/example/loadfont.cpp b/src/example/loadfont.cpp
index ce287b4..9d59afc 100644
--- a/src/example/loadfont.cpp
+++ b/src/example/loadfont.cpp
@@ -2,10 +2,12 @@
 #include <crepe/api/Text.h>
 #include <crepe/facade/Font.h>
 #include <crepe/facade/SDLContext.h>
+#include <crepe/api/Asset.h>
 #include <crepe/manager/Mediator.h>
 #include <crepe/manager/ResourceManager.h>
 #include <exception>
 #include <iostream>
+#include <optional>
 #include <memory>
 using namespace crepe;
 int main() {
@@ -18,21 +20,24 @@ int main() {
 	try {
 		// Correct way to create a unique pointer for Text
 		std::unique_ptr<Text> label = std::make_unique<Text>(
-			1, vec2(100, 100), vec2(0, 0), "test test", "OpenSymbol", Text::Data{});
-		std::cout << "Path: " << label->font.get_path() << std::endl;
+			1, vec2(100, 100), vec2(0, 0), "OpenSymbol", Text::Data{},"test text", Asset(""));
+		// std::cout << "Path: " << label->font.get_path() << std::endl;
 
 		std::unique_ptr<Text> label2
-			= std::make_unique<Text>(1, vec2(100, 100), vec2(0, 0), "test test",
-									 "fsaafdafsdafsdafsdasfdds", Text::Data{});
-		std::cout << "Path: " << label2->font.get_path() << std::endl;
-		ResourceManager & resource_mgr = mediator.resource_manager;
-		const Font & res = resource_manager.get<Font>(label->font);
-		TTF_Font * test_font = res.get_font();
-		if (test_font == NULL) {
-			std::cout << "error with font" << std::endl;
-		} else {
-			std::cout << "correct font retrieved" << std::endl;
-		}
+			= std::make_unique<Text>(1, vec2(100, 100), vec2(0, 0),"fsaafdafsdafsdafsdasfdds", Text::Data{});
+		Asset asset = Asset("test test");
+		label->font = std::make_optional(asset);
+		std::cout << label->font.value().get_path() << std::endl;
+		// label2->font = std::make_optional(asset);
+		// std::cout << "Path: " << label2->font.get_path() << std::endl;
+		// ResourceManager & resource_mgr = mediator.resource_manager;
+		// const Font & res = resource_manager.get<Font>(label->font);
+		// TTF_Font * test_font = res.get_font();
+		// if (test_font == NULL) {
+		// 	std::cout << "error with font" << std::endl;
+		// } else {
+		// 	std::cout << "correct font retrieved" << std::endl;
+		// }
 	} catch (const std::exception & e) {
 		std::cout << "Standard exception thrown: " << e.what() << std::endl;
 	}
-- 
cgit v1.2.3


From 34a773eb0f01379419900a3fe26527702146b890 Mon Sep 17 00:00:00 2001
From: WBoerenkamps <wrj.boerenkamps@student.avans.nl>
Date: Tue, 17 Dec 2024 13:33:53 +0100
Subject: last changes

---
 src/crepe/facade/SDLContext.h     | 1 +
 src/crepe/system/RenderSystem.cpp | 5 ++---
 2 files changed, 3 insertions(+), 3 deletions(-)

(limited to 'src/crepe/facade/SDLContext.h')

diff --git a/src/crepe/facade/SDLContext.h b/src/crepe/facade/SDLContext.h
index ffa3cc0..e348ff6 100644
--- a/src/crepe/facade/SDLContext.h
+++ b/src/crepe/facade/SDLContext.h
@@ -18,6 +18,7 @@
 #include "types.h"
 
 #include "FontFacade.h"
+
 namespace crepe {
 
 class Texture;
diff --git a/src/crepe/system/RenderSystem.cpp b/src/crepe/system/RenderSystem.cpp
index 18f6393..5fc98a9 100644
--- a/src/crepe/system/RenderSystem.cpp
+++ b/src/crepe/system/RenderSystem.cpp
@@ -152,16 +152,15 @@ void RenderSystem::render() {
 void RenderSystem::render_text(Text & text, const Transform & tm) {
     SDLContext & ctx = this->mediator.sdl_context;
 
-    // Check if font is available in text
     if (!text.font.has_value()) {
+        text.font = ctx.get_font_from_name(text.font_family);
     }
 
     ResourceManager & resource_manager = this->mediator.resource_manager;
 
-    if (text.font.has_value()) {
+    if (!text.font.has_value()) {return;}
         const Asset& font_asset = text.font.value();
         const Font & res = resource_manager.get<Font>(font_asset); 
-	}
 }
 
 
-- 
cgit v1.2.3


From 69ca7fdd738fd4ed98aefc07bab5a43486a55619 Mon Sep 17 00:00:00 2001
From: WBoerenkamps <wrj.boerenkamps@student.avans.nl>
Date: Tue, 17 Dec 2024 13:34:19 +0100
Subject: final changes

---
 src/crepe/api/LoopManager.h       |  3 +--
 src/crepe/api/Script.h            |  1 -
 src/crepe/api/Text.cpp            |  8 ++++----
 src/crepe/api/Text.h              | 11 +++++------
 src/crepe/facade/Font.cpp         |  3 +--
 src/crepe/facade/FontFacade.cpp   | 10 ++++------
 src/crepe/facade/FontFacade.h     | 10 +++++-----
 src/crepe/facade/SDLContext.cpp   |  2 +-
 src/crepe/facade/SDLContext.h     |  6 ++++--
 src/crepe/system/RenderSystem.cpp | 35 ++++++++++++++---------------------
 src/example/FontExample.cpp       |  5 +++--
 src/example/loadfont.cpp          | 10 +++++-----
 12 files changed, 47 insertions(+), 57 deletions(-)

(limited to 'src/crepe/facade/SDLContext.h')

diff --git a/src/crepe/api/LoopManager.h b/src/crepe/api/LoopManager.h
index 1725810..1d23cbf 100644
--- a/src/crepe/api/LoopManager.h
+++ b/src/crepe/api/LoopManager.h
@@ -71,7 +71,7 @@ private:
 private:
 	//! Global context
 	Mediator mediator;
-	
+
 	//! SDLContext instance
 	SDLContext sdl_context{mediator};
 	//! Component manager instance
@@ -86,7 +86,6 @@ private:
 	ResourceManager resource_manager{mediator};
 	//! Save manager instance
 	SaveManager save_manager{mediator};
-	
 
 private:
 	/**
diff --git a/src/crepe/api/Script.h b/src/crepe/api/Script.h
index 4503525..8bca38a 100644
--- a/src/crepe/api/Script.h
+++ b/src/crepe/api/Script.h
@@ -156,7 +156,6 @@ private:
 	void subscribe_internal(const EventHandler<EventType> & callback, event_channel_t channel);
 
 protected:
-	
 	// NOTE: This must be the only constructor on Script, see "Late references" below
 	Script() = default;
 	//! Only \c BehaviorScript instantiates Script
diff --git a/src/crepe/api/Text.cpp b/src/crepe/api/Text.cpp
index 0624c98..58dc6c6 100644
--- a/src/crepe/api/Text.cpp
+++ b/src/crepe/api/Text.cpp
@@ -4,11 +4,11 @@
 
 using namespace crepe;
 
-Text::Text(game_object_id_t id, const vec2 & dimensions,const vec2 & offset, const std::string & font_family,
-	const Data & data, const std::string & text, std::optional<Asset> font)
+Text::Text(game_object_id_t id, const vec2 & dimensions, const vec2 & offset,
+		   const std::string & font_family, const Data & data, const std::string & text,
+		   std::optional<Asset> font)
 	: UIObject(id, dimensions, offset),
 	  text(text),
 	  data(data),
 	  font_family(font_family),
-	  font(font) {
-}
+	  font(font) {}
diff --git a/src/crepe/api/Text.h b/src/crepe/api/Text.h
index ab72bc0..92cca18 100644
--- a/src/crepe/api/Text.h
+++ b/src/crepe/api/Text.h
@@ -1,7 +1,7 @@
 #pragma once
 
+#include <optional>
 #include <string>
-#include <optional> 
 
 #include "../Component.h"
 
@@ -50,10 +50,10 @@ public:
 	 * \param data Data struct containing extra text parameters.
 	 * \param font Optional font asset that can be passed or left empty.
 	 */
-	Text(game_object_id_t id, const vec2 & dimensions, const vec2 & offset, 
-     const std::string & font_family, const Data & data, 
-     const std::string & text = "", std::optional<Asset> font = std::nullopt);
-	
+	Text(game_object_id_t id, const vec2 & dimensions, const vec2 & offset,
+		 const std::string & font_family, const Data & data, const std::string & text = "",
+		 std::optional<Asset> font = std::nullopt);
+
 	//! Label text.
 	std::string text = "";
 	//! font family name
@@ -62,7 +62,6 @@ public:
 	std::optional<Asset> font;
 	//! Data instance
 	Data data;
-	
 };
 
 } // namespace crepe
diff --git a/src/crepe/facade/Font.cpp b/src/crepe/facade/Font.cpp
index 558641f..f202c05 100644
--- a/src/crepe/facade/Font.cpp
+++ b/src/crepe/facade/Font.cpp
@@ -8,8 +8,7 @@
 using namespace std;
 using namespace crepe;
 
-Font::Font(const Asset & src, Mediator & mediator)
-	: Resource(src, mediator){
+Font::Font(const Asset & src, Mediator & mediator) : Resource(src, mediator) {
 	Config & config = Config::get_instance();
 	const std::string FONT_PATH = src.get_path();
 	TTF_Font * loaded_font = TTF_OpenFont(FONT_PATH.c_str(), config.font.size);
diff --git a/src/crepe/facade/FontFacade.cpp b/src/crepe/facade/FontFacade.cpp
index 08ff31c..7edfeb8 100644
--- a/src/crepe/facade/FontFacade.cpp
+++ b/src/crepe/facade/FontFacade.cpp
@@ -6,16 +6,14 @@
 using namespace crepe;
 using namespace std;
 
-FontFacade::FontFacade(){
+FontFacade::FontFacade() {
 	if (!FcInit()) {
 		throw runtime_error("Failed to initialize Fontconfig.");
 	}
 }
-FontFacade::~FontFacade(){
-	FcFini();
-}
-Asset FontFacade::get_font_asset(const string& font_family) {
-	
+FontFacade::~FontFacade() { FcFini(); }
+Asset FontFacade::get_font_asset(const string & font_family) {
+
 	// Create a pattern to search for the font family
 	FcPattern * pattern = FcNameParse(reinterpret_cast<const FcChar8 *>(font_family.c_str()));
 	if (pattern == NULL) {
diff --git a/src/crepe/facade/FontFacade.h b/src/crepe/facade/FontFacade.h
index 2e08f3f..9761070 100644
--- a/src/crepe/facade/FontFacade.h
+++ b/src/crepe/facade/FontFacade.h
@@ -15,10 +15,10 @@ class FontFacade {
 public:
 	FontFacade();
 	~FontFacade();
-    FontFacade(const FontFacade & other) = delete;
-    FontFacade & operator=(const FontFacade & other) = delete;
-    FontFacade(FontFacade && other) noexcept = delete;
-    FontFacade & operator=(FontFacade && other) noexcept = delete;
+	FontFacade(const FontFacade & other) = delete;
+	FontFacade & operator=(const FontFacade & other) = delete;
+	FontFacade(FontFacade && other) noexcept = delete;
+	FontFacade & operator=(FontFacade && other) noexcept = delete;
 	/**
 	 * 
 	 * \brief Facade function to convert a font_family into an asset.
@@ -28,7 +28,7 @@ public:
 	 * \param font_family Name of the font family name.
 	 * \return Asset with filepath to the corresponding font.
 	 */
-	Asset get_font_asset(const std::string& font_family);
+	Asset get_font_asset(const std::string & font_family);
 };
 
 } // namespace crepe
diff --git a/src/crepe/facade/SDLContext.cpp b/src/crepe/facade/SDLContext.cpp
index 8ffaad9..c88687e 100644
--- a/src/crepe/facade/SDLContext.cpp
+++ b/src/crepe/facade/SDLContext.cpp
@@ -440,6 +440,6 @@ void SDLContext::set_color_texture(const Texture & texture, const Color & color)
 	SDL_SetTextureAlphaMod(texture.get_img(), color.a);
 }
 
-Asset SDLContext::get_font_from_name(const std::string& font_family){
+Asset SDLContext::get_font_from_name(const std::string & font_family) {
 	return this->font_facade.get_font_asset(font_family);
 }
diff --git a/src/crepe/facade/SDLContext.h b/src/crepe/facade/SDLContext.h
index e348ff6..6f6eddb 100644
--- a/src/crepe/facade/SDLContext.h
+++ b/src/crepe/facade/SDLContext.h
@@ -241,9 +241,11 @@ private:
 	 * - this is defined in this class because get_events() needs this information aswell
 	 */
 	CameraAuxiliaryData cam_aux_data;
-private: 
+
+private:
 	//! instance of the font_facade
 	FontFacade font_facade{};
+
 public:
 	/**
 	 * \brief Function to Get asset from font_family
@@ -254,7 +256,7 @@ public:
 	 * 
 	 * \return asset with the font style absolute path
 	 */
-	Asset get_font_from_name(const std::string& font_family);
+	Asset get_font_from_name(const std::string & font_family);
 };
 
 } // namespace crepe
diff --git a/src/crepe/system/RenderSystem.cpp b/src/crepe/system/RenderSystem.cpp
index 5fc98a9..a03c636 100644
--- a/src/crepe/system/RenderSystem.cpp
+++ b/src/crepe/system/RenderSystem.cpp
@@ -10,8 +10,8 @@
 #include "../api/ParticleEmitter.h"
 #include "../api/Sprite.h"
 #include "../api/Text.h"
-#include "../facade/Font.h"
 #include "../api/Transform.h"
+#include "../facade/Font.h"
 #include "../facade/SDLContext.h"
 #include "../facade/Texture.h"
 #include "../manager/ComponentManager.h"
@@ -23,7 +23,6 @@
 using namespace crepe;
 using namespace std;
 
-
 void RenderSystem::clear_screen() {
 	SDLContext & ctx = this->mediator.sdl_context;
 	ctx.clear_screen();
@@ -126,12 +125,11 @@ void RenderSystem::render() {
 	RefVector<Sprite> sprites = mgr.get_components_by_type<Sprite>();
 	ResourceManager & resource_manager = this->mediator.resource_manager;
 	RefVector<Sprite> sorted_sprites = this->sort(sprites);
-	RefVector<Text> text_components =  mgr.get_components_by_type<Text>();
-	for(Text& text : text_components){
+	RefVector<Text> text_components = mgr.get_components_by_type<Text>();
+	for (Text & text : text_components) {
 		const Transform & transform
 			= mgr.get_components_by_id<Transform>(text.game_object_id).front().get();
-		this->render_text(text,transform);
-
+		this->render_text(text, transform);
 	}
 	for (const Sprite & sprite : sorted_sprites) {
 		if (!sprite.active) continue;
@@ -143,25 +141,20 @@ void RenderSystem::render() {
 		if (rendered_particles) continue;
 
 		this->render_normal(sprite, transform);
-		
-	
-		
 	}
-	
 }
 void RenderSystem::render_text(Text & text, const Transform & tm) {
-    SDLContext & ctx = this->mediator.sdl_context;
+	SDLContext & ctx = this->mediator.sdl_context;
 
-    if (!text.font.has_value()) {
-        text.font = ctx.get_font_from_name(text.font_family);
-    }
+	if (!text.font.has_value()) {
+		text.font = ctx.get_font_from_name(text.font_family);
+	}
 
-    ResourceManager & resource_manager = this->mediator.resource_manager;
+	ResourceManager & resource_manager = this->mediator.resource_manager;
 
-    if (!text.font.has_value()) {return;}
-        const Asset& font_asset = text.font.value();
-        const Font & res = resource_manager.get<Font>(font_asset); 
+	if (!text.font.has_value()) {
+		return;
+	}
+	const Asset & font_asset = text.font.value();
+	const Font & res = resource_manager.get<Font>(font_asset);
 }
-
-
-
diff --git a/src/example/FontExample.cpp b/src/example/FontExample.cpp
index 7b2dadb..6a334b1 100644
--- a/src/example/FontExample.cpp
+++ b/src/example/FontExample.cpp
@@ -1,6 +1,7 @@
 #include <SDL2/SDL_ttf.h>
 #include <chrono>
 #include <crepe/api/Camera.h>
+#include <crepe/api/Config.h>
 #include <crepe/api/GameObject.h>
 #include <crepe/api/LoopManager.h>
 #include <crepe/api/Scene.h>
@@ -11,7 +12,6 @@
 #include <crepe/manager/EventManager.h>
 #include <crepe/manager/Mediator.h>
 #include <crepe/manager/ResourceManager.h>
-#include <crepe/api/Config.h>
 #include <exception>
 #include <iostream>
 #include <memory>
@@ -37,7 +37,8 @@ class TestScene : public Scene {
 public:
 	void load_scene() override {
 		GameObject text_object = this->new_object("test", "test", vec2{0, 0}, 0, 1);
-		text_object.add_component<Text>(vec2(100, 100), vec2(0, 0), "OpenSymbol", Text::Data{});
+		text_object.add_component<Text>(vec2(100, 100), vec2(0, 0), "OpenSymbol",
+										Text::Data{});
 		text_object.add_component<BehaviorScript>().set_script<TestScript>();
 		text_object.add_component<Camera>(ivec2{300, 300}, vec2{100, 100}, Camera::Data{});
 	}
diff --git a/src/example/loadfont.cpp b/src/example/loadfont.cpp
index 36d00dd..ed67ffa 100644
--- a/src/example/loadfont.cpp
+++ b/src/example/loadfont.cpp
@@ -1,14 +1,14 @@
 #include <SDL2/SDL_ttf.h>
+#include <crepe/api/Asset.h>
 #include <crepe/api/Text.h>
 #include <crepe/facade/Font.h>
 #include <crepe/facade/SDLContext.h>
-#include <crepe/api/Asset.h>
 #include <crepe/manager/Mediator.h>
 #include <crepe/manager/ResourceManager.h>
 #include <exception>
 #include <iostream>
-#include <optional>
 #include <memory>
+#include <optional>
 using namespace crepe;
 int main() {
 
@@ -20,11 +20,11 @@ int main() {
 	try {
 		// Correct way to create a unique pointer for Text
 		std::unique_ptr<Text> label = std::make_unique<Text>(
-			1, vec2(100, 100), vec2(0, 0), "OpenSymbol", Text::Data{},"test text", Asset(""));
+			1, vec2(100, 100), vec2(0, 0), "OpenSymbol", Text::Data{}, "test text", Asset(""));
 		// std::cout << "Path: " << label->font.get_path() << std::endl;
 
-		std::unique_ptr<Text> label2
-			= std::make_unique<Text>(1, vec2(100, 100), vec2(0, 0),"fsaafdafsdafsdafsdasfdds", Text::Data{});
+		std::unique_ptr<Text> label2 = std::make_unique<Text>(
+			1, vec2(100, 100), vec2(0, 0), "fsaafdafsdafsdafsdasfdds", Text::Data{});
 		Asset asset = Asset("test test");
 		label->font = asset;
 		std::cout << label->font.value().get_path() << std::endl;
-- 
cgit v1.2.3