Added ability to open, close and render fonts
This commit is contained in:
1 parent
e3f4f9c94f
commit
dbc8c88b89
6 files changed
+111
-9
No files matched your search
@@ -4,6 +4,7 @@
|
||||
#include "SDL_image.h"
|
||||
#include "SDL_mixer.h"
|
||||
#include "SDL_render.h"
|
||||
#include "SDL_ttf.h"
|
||||
#include "constants.h"
|
||||
#include "reusable_ids.h"
|
||||
#include <stdbool.h>
|
||||
@@ -20,6 +21,7 @@ typedef struct asset {
|
||||
SDL_Texture *texture;
|
||||
Mix_Chunk *chunk;
|
||||
Mix_Music *music;
|
||||
TTF_Font *font;
|
||||
} data;
|
||||
} Asset;
|
||||
|
||||
@@ -217,6 +219,14 @@ AssetID load_asset_to_manager(AssetManager *am, const char *path,
|
||||
loaded = false;
|
||||
}
|
||||
|
||||
break;
|
||||
case ASSET_TYPE_FONT:
|
||||
asset.data.font = TTF_OpenFont(path, 32);
|
||||
|
||||
if (!(asset.data.font)) {
|
||||
loaded = false;
|
||||
}
|
||||
|
||||
break;
|
||||
default:
|
||||
loaded = false;
|
||||
@@ -259,6 +269,9 @@ AssetID load_asset_to_manager(AssetManager *am, const char *path,
|
||||
case ASSET_TYPE_MUSIC:
|
||||
asset.data.music = NULL;
|
||||
break;
|
||||
case ASSET_TYPE_FONT:
|
||||
asset.data.font = NULL;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -300,6 +313,10 @@ void remove_asset_from_manager(AssetManager *am, AssetID *id_ptr) {
|
||||
Mix_FreeMusic(am->assets[id].data.music);
|
||||
am->assets[id].data.music = NULL;
|
||||
break;
|
||||
case ASSET_TYPE_FONT:
|
||||
TTF_CloseFont(am->assets[id].data.font);
|
||||
am->assets[id].data.font = NULL;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -317,6 +334,14 @@ SDL_Texture *get_texture(AssetManager *am, AssetID id) {
|
||||
return am->assets[id].data.texture;
|
||||
}
|
||||
|
||||
TTF_Font *get_font(AssetManager *am, AssetID id) {
|
||||
if (id < 0 || am->assets[id].type != ASSET_TYPE_FONT) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return am->assets[id].data.font;
|
||||
}
|
||||
|
||||
Mix_Chunk *get_audio_chunk(AssetManager *am, AssetID id) {
|
||||
if (id < 0 || am->assets[id].type != ASSET_TYPE_AUDIO_FX) {
|
||||
return NULL;
|
||||
@@ -360,6 +385,10 @@ void destroy_asset_manager(AssetManager **am) {
|
||||
Mix_FreeMusic((*am)->assets[i].data.music);
|
||||
(*am)->assets[i].data.music = NULL;
|
||||
break;
|
||||
case ASSET_TYPE_FONT:
|
||||
TTF_CloseFont((*am)->assets[i].data.font);
|
||||
(*am)->assets[i].data.font = NULL;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user