Added min and max functions for floats and modified the text rendering code

This commit is contained in:
abdelrahman committed 2023-02-05 16:04:49 +00:00
1 parent d429262aaa
commit ad88083f53
4 files changed
+13 -21

No files matched your search

+3 -2
View File
@@ -78,8 +78,9 @@ void render_texture_asset(AssetID id, RenderRect *src, RenderRect *dest);
void modulate_texture_color(AssetID id, SDL_Color color); void modulate_texture_color(AssetID id, SDL_Color color);
void modulate_texture_alpha(AssetID id, u8 alpha); void modulate_texture_alpha(AssetID id, u8 alpha);
TextSize get_text_size_from_font_asset(AssetID id, const char *text); TextSize get_text_size_from_font_asset(AssetID id, const char *text);
void render_text_with_font_asset(AssetID id, const char *text, RenderRect dest, void render_text_with_font_asset(AssetID id, const char *text,
SDL_Color color, const RenderRect *clip); const RenderRect *src, RenderRect dest,
SDL_Color color);
void set_font_asset_size(AssetID id, u32 size); void set_font_asset_size(AssetID id, u32 size);
i32 set_font_direction(AssetID id, FontDirection direction); i32 set_font_direction(AssetID id, FontDirection direction);
i32 set_font_script_name(AssetID id, const char *script); i32 set_font_script_name(AssetID id, const char *script);
+2
View File
@@ -9,6 +9,8 @@ extern "C" {
i32 max_int(i32 a, i32 b); i32 max_int(i32 a, i32 b);
i32 min_int(i32 a, i32 b); i32 min_int(i32 a, i32 b);
f32 max_float(f32 a, f32 b);
f32 min_float(f32 a, f32 b);
#ifdef __cplusplus #ifdef __cplusplus
} }
+4 -19
View File
@@ -372,8 +372,9 @@ TextSize get_text_size_from_font_asset(AssetID id, const char *text) {
return output; return output;
} }
void render_text_with_font_asset(AssetID id, const char *text, RenderRect dest, void render_text_with_font_asset(AssetID id, const char *text,
SDL_Color color, const RenderRect *clip) { const RenderRect *src, RenderRect dest,
SDL_Color color) {
if (id < 0) { if (id < 0) {
return; return;
} }
@@ -388,23 +389,7 @@ void render_text_with_font_asset(AssetID id, const char *text, RenderRect dest,
return; return;
} }
RenderRect src = {}; render_surface(GameEngine.window.renderer, surface, src, &dest);
bool clip_text = clip && (dest.width > clip->width);
if (clip_text) {
f32 width_difference = dest.width - clip->width;
// Offset the src rect so the text input displays where the text cursor is
src.x += width_difference;
src.width = clip->width;
src.height = clip->height;
dest.width = clip->width;
}
render_surface(GameEngine.window.renderer, surface, clip_text ? &src : NULL,
&dest);
SDL_FreeSurface(surface); SDL_FreeSurface(surface);
surface = NULL; surface = NULL;
+4
View File
@@ -4,3 +4,7 @@
i32 max_int(i32 a, i32 b) { return a >= b ? a : b; } i32 max_int(i32 a, i32 b) { return a >= b ? a : b; }
i32 min_int(i32 a, i32 b) { return a <= b ? a : b; } i32 min_int(i32 a, i32 b) { return a <= b ? a : b; }
f32 max_float(f32 a, f32 b) { return a >= b ? a : b; }
f32 min_float(f32 a, f32 b) { return a <= b ? a : b; }