aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/facade/font.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/crepe/facade/font.cpp')
-rw-r--r--src/crepe/facade/font.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/crepe/facade/font.cpp b/src/crepe/facade/font.cpp
new file mode 100644
index 0000000..259a6cd
--- /dev/null
+++ b/src/crepe/facade/font.cpp
@@ -0,0 +1,21 @@
+#include "font.h"
+#include "../api/Config.h"
+using namespace std;
+using namespace crepe;
+
+void Font::load(unique_ptr<Asset> res){
+ const char* font_path = res->get_path();
+ int font_size = Config::get_instance().font.font_size;
+ this->font = std::unique_ptr<TTF_Font, decltype(&TTF_CloseFont)>(
+ TTF_OpenFont(font_path, font_size), &TTF_CloseFont);
+
+ if (!font) {
+ throw std::runtime_error("Failed to load font: " + std::string(TTF_GetError()));
+ }
+}
+Font::Font(const char* src){
+ this->load(make_unique<Asset>(src));
+}
+Font::Font(std::unique_ptr<Asset> res){
+ this->load(std::move(res));
+}