diff --git a/External/tely b/External/tely index 77f354a..d822446 160000 --- a/External/tely +++ b/External/tely @@ -1 +1 @@ -Subproject commit 77f354ae49aa6421c7d86d6f2254c926fceef9bc +Subproject commit d82244653e856bbf4f83c6338207405aa4595e46 diff --git a/feely_pona.cpp b/feely_pona.cpp index 8a8820f..311d490 100644 --- a/feely_pona.cpp +++ b/feely_pona.cpp @@ -397,6 +397,7 @@ TELY_OS_DLL_FUNCTION void TELY_OS_DLLReload(TELY_OS *os) { Dqn_Library_SetPointer(os->core.dqn_lib); + g_tely = os->funcs; os->funcs.set_window_title(DQN_STR8("Terry Cherry")); } @@ -2791,7 +2792,7 @@ static void FP_Render(FP_Game *game, TELY_OS *os, TELY_Renderer *renderer, TELY_ if (game->play.hot_entity == entity->handle) { if (entity->name.size) { Dqn_V2I player_tile = Dqn_V2I_InitNx2(world_pos.x / game->play.tile_size, world_pos.y / game->play.tile_size); - Dqn_f32 line_height = TELY_Render_FontHeight(renderer); + Dqn_f32 line_height = TELY_Render_FontSize(renderer) * os->core.dpi_scale; Dqn_V2 draw_p = world_mouse_p; TELY_Render_TextF(renderer, draw_p, Dqn_V2_InitNx2(0.f, 1), "%.*s", DQN_STR_FMT(entity->name)); draw_p.y += line_height; TELY_Render_TextF(renderer, draw_p, Dqn_V2_InitNx2(0.f, 1), "World Pos: (%.1f, %.1f)", world_pos.x, world_pos.y); draw_p.y += line_height; @@ -2821,7 +2822,7 @@ static void FP_Render(FP_Game *game, TELY_OS *os, TELY_Renderer *renderer, TELY_ switch (state) { case FP_EntityBillboardState_Attack: { Dqn_V2 draw_p = Dqn_Rect_InterpolatedPoint(world_hit_box, Dqn_V2_InitNx2(0.6f, 0.2f)); - draw_p.y += TELY_Render_FontHeight(renderer) * player_index; + draw_p.y += TELY_Render_FontSize(renderer) * player_index * os->core.dpi_scale; TELY_Render_PushColourV4(renderer, colour_accent_yellow); FP_DrawBillboardKeyBindHint(renderer, assets, game, player_index, controls->mode, controls->attack, draw_p, true /*draw_player_prefix*/); TELY_Render_PopColourV4(renderer); @@ -2829,7 +2830,7 @@ static void FP_Render(FP_Game *game, TELY_OS *os, TELY_Renderer *renderer, TELY_ case FP_EntityBillboardState_Dash: { Dqn_V2 draw_p = Dqn_Rect_InterpolatedPoint(world_hit_box, Dqn_V2_InitNx2(0.505f, -0.08f)); - draw_p.y += TELY_Render_FontHeight(renderer) * player_index; + draw_p.y += TELY_Render_FontSize(renderer) * player_index * os->core.dpi_scale; TELY_Render_PushColourV4(renderer, TELY_Colour_V4InitRGBU32(0xFFE726)); FP_DrawBillboardKeyBindHint(renderer, assets, game, player_index, controls->mode, controls->dash, draw_p, true /*draw_player_prefix*/); TELY_Render_PopColourV4(renderer); @@ -2840,7 +2841,7 @@ static void FP_Render(FP_Game *game, TELY_OS *os, TELY_Renderer *renderer, TELY_ case FP_EntityBillboardState_RangeAttack: { Dqn_V2 draw_p = Dqn_Rect_InterpolatedPoint(world_hit_box, Dqn_V2_InitNx2(0.20f, -0.13f)); - draw_p.y += TELY_Render_FontHeight(renderer) * player_index; + draw_p.y += TELY_Render_FontSize(renderer) * player_index * os->core.dpi_scale; TELY_Render_PushColourV4(renderer, TELY_Colour_V4InitRGBU32(0x364659)); FP_DrawBillboardKeyBindHint(renderer, assets, game, player_index, controls->mode, controls->range_attack, draw_p, true /*draw_player_prefix*/); TELY_Render_PopColourV4(renderer); @@ -2848,7 +2849,7 @@ static void FP_Render(FP_Game *game, TELY_OS *os, TELY_Renderer *renderer, TELY_ case FP_EntityBillboardState_Strafe: { Dqn_V2 draw_p = Dqn_Rect_InterpolatedPoint(world_hit_box, Dqn_V2_InitNx2(0.36f, -0.15f)); - draw_p.y += TELY_Render_FontHeight(renderer) * player_index; + draw_p.y += TELY_Render_FontSize(renderer) * player_index * os->core.dpi_scale; TELY_Render_PushColourV4(renderer, TELY_Colour_V4InitRGBU32(0xFF68A8)); FP_DrawBillboardKeyBindHint(renderer, assets, game, player_index, controls->mode, controls->strafe, draw_p, true /*draw_player_prefix*/); TELY_Render_PopColourV4(renderer); @@ -2856,25 +2857,25 @@ static void FP_Render(FP_Game *game, TELY_OS *os, TELY_Renderer *renderer, TELY_ case FP_EntityBillboardState_Build: { Dqn_V2 draw_p = Dqn_Rect_InterpolatedPoint(world_hit_box, Dqn_V2_InitNx2(0.065f, 0.2f)); - draw_p.y += TELY_Render_FontHeight(renderer) * player_index; + draw_p.y += TELY_Render_FontSize(renderer) * player_index * os->core.dpi_scale; TELY_Render_PushColourV4(renderer, colour_accent_yellow); FP_DrawBillboardKeyBindHint(renderer, assets, game, player_index, controls->mode, controls->build_mode, draw_p, true /*draw_player_prefix*/); TELY_Render_PopColourV4(renderer); draw_p = Dqn_Rect_InterpolatedPoint(world_hit_box, Dqn_V2_InitNx2(0.35f, 0.2f)); - draw_p.y += TELY_Render_FontHeight(renderer) * player_index; + draw_p.y += TELY_Render_FontSize(renderer) * player_index * os->core.dpi_scale; TELY_Render_PushColourV4(renderer, TELY_Colour_V4InitRGBU32(0xFF68A8)); FP_DrawBillboardKeyBindHint(renderer, assets, game, player_index, controls->mode, controls->move_building_ui_cursor_left, draw_p, true /*draw_player_prefix*/); TELY_Render_PopColourV4(renderer); draw_p = Dqn_Rect_InterpolatedPoint(world_hit_box, Dqn_V2_InitNx2(0.44f, 0.2f)); - draw_p.y += TELY_Render_FontHeight(renderer) * player_index; + draw_p.y += TELY_Render_FontSize(renderer) * player_index * os->core.dpi_scale; TELY_Render_PushColourV4(renderer, TELY_Colour_V4InitRGBU32(0xFF68A8)); FP_DrawBillboardKeyBindHint(renderer, assets, game, player_index, controls->mode, controls->move_building_ui_cursor_right, draw_p, false /*draw_player_prefix*/); TELY_Render_PopColourV4(renderer); draw_p = Dqn_Rect_InterpolatedPoint(world_hit_box, Dqn_V2_InitNx2(0.665f, 0.2f)); - draw_p.y += TELY_Render_FontHeight(renderer) * player_index; + draw_p.y += TELY_Render_FontSize(renderer) * player_index * os->core.dpi_scale; TELY_Render_PushColourV4(renderer, TELY_COLOUR_BLACK_V4); FP_DrawBillboardKeyBindHint(renderer, assets, game, player_index, controls->mode, controls->attack, draw_p, true /*draw_player_prefix*/); TELY_Render_PopColourV4(renderer); @@ -3021,7 +3022,7 @@ static void FP_Render(FP_Game *game, TELY_OS *os, TELY_Renderer *renderer, TELY_ else join_game_key = DQN_STR8(""); - Dqn_f32 font_height = TELY_Render_FontHeight(renderer); + Dqn_f32 font_height = TELY_Render_FontSize(renderer) * os->core.dpi_scale; Dqn_V2 base_p = player_avatar_base_pos[game->play.players.size]; TELY_Render_TextF(renderer, base_p, Dqn_V2_Zero, "Press %.*s", DQN_STR_FMT(join_game_key)); base_p.y += font_height; FP_ListenForNewPlayer(input, game); @@ -3288,13 +3289,13 @@ static void FP_Render(FP_Game *game, TELY_OS *os, TELY_Renderer *renderer, TELY_ 0.f /*rotation*/, tex_mod_colour); } else { - Dqn_ThreadScratch scratch = Dqn_Thread_GetScratch(nullptr); - TELY_AssetFontSizeHandle font_size = TELY_Render_ActiveFont(renderer); - Dqn_Str8 key_bind_label = FP_ScanKeyToLabel(scratch.arena, key_bind.scan_key); - interact_btn_rect.size = TELY_Asset_MeasureText(assets, font_size, key_bind_label); + Dqn_ThreadScratch scratch = Dqn_Thread_GetScratch(nullptr); + TELY_AssetFontSizeHandle font_size = TELY_Render_ActiveFont(renderer); + Dqn_Str8 key_bind_label = FP_ScanKeyToLabel(scratch.arena, key_bind.scan_key); + interact_btn_rect.size = TELY_Asset_MeasureText(assets, font_size, key_bind_label); - Dqn_Rect key_bind_rect = interact_btn_rect; - key_bind_rect.pos.y += interact_btn_rect.size.y * .3f; + Dqn_Rect key_bind_rect = interact_btn_rect; + key_bind_rect.pos.y += interact_btn_rect.size.y * .3f; TELY_Render_RectColourV4(renderer, Dqn_Rect_Expand(key_bind_rect, 2.f), TELY_RenderShapeMode_Fill, TELY_Colour_V4Alpha(keybind_btn_shadow_colour, tex_mod_colour.a)); TELY_Render_PushColourV4(renderer, TELY_Colour_V4Alpha(colour_accent_yellow, tex_mod_colour.a)); @@ -3408,7 +3409,7 @@ static void FP_Render(FP_Game *game, TELY_OS *os, TELY_Renderer *renderer, TELY_ DQN_DEFER { TELY_Render_PopFont(renderer); }; next_pos = Dqn_Rect_InterpolatedPoint(player_avatar_rect, Dqn_V2_InitNx2(1.f, 0)); - Dqn_f32 font_height = TELY_Render_FontHeight(renderer); + Dqn_f32 font_height = TELY_Render_FontSize(renderer) * os->core.dpi_scale; // NOTE: Health bar ==================================================== Dqn_f32 bar_height = font_height * .75f; @@ -3714,7 +3715,7 @@ static void FP_Render(FP_Game *game, TELY_OS *os, TELY_Renderer *renderer, TELY_ TELY_Render_PushTransform(renderer, Dqn_M2x3_Identity()); DQN_DEFER { TELY_Render_PopTransform(renderer); }; - Dqn_f32 font_height = TELY_Render_FontHeight(renderer); + Dqn_f32 font_height = TELY_Render_FontSize(renderer) * os->core.dpi_scale; Dqn_f32 bar_height = font_height * 1.25f; { TELY_AssetSpriteAnimation *anim = TELY_Asset_GetSpriteAnimation(&game->atlas_sprite_sheet, g_anim_names.heart); @@ -3900,11 +3901,11 @@ static void FP_Render(FP_Game *game, TELY_OS *os, TELY_Renderer *renderer, TELY_ } else if (game->play.state == FP_GameState_Pause) { TELY_Render_PushFontSize(renderer, game->inter_regular_font, game->large_font_size); - TELY_Render_TextF(renderer, draw_p, Dqn_V2_Zero, "Paused"); draw_p.y += TELY_Render_FontHeight(renderer); + TELY_Render_TextF(renderer, draw_p, Dqn_V2_Zero, "Paused"); draw_p.y += TELY_Render_FontSize(renderer) * os->core.dpi_scale; TELY_Render_PopFont(renderer); TELY_Render_PushFontSize(renderer, game->inter_regular_font, game->font_size); - TELY_Render_TextF(renderer, draw_p, Dqn_V2_Zero, "Press enter to resume"); draw_p.y += TELY_Render_FontHeight(renderer); + TELY_Render_TextF(renderer, draw_p, Dqn_V2_Zero, "Press enter to resume"); draw_p.y += TELY_Render_FontSize(renderer) * os->core.dpi_scale; TELY_Render_PopFont(renderer); TELY_Render_PopColourV4(renderer); @@ -3913,13 +3914,13 @@ static void FP_Render(FP_Game *game, TELY_OS *os, TELY_Renderer *renderer, TELY_ } else { DQN_ASSERT(game->play.state == FP_GameState_WinGame); TELY_Render_PushFontSize(renderer, game->inter_regular_font, game->large_font_size); - TELY_Render_TextF(renderer, draw_p, Dqn_V2_Zero, "Terry has been saved"); draw_p.y += TELY_Render_FontHeight(renderer); - TELY_Render_TextF(renderer, draw_p, Dqn_V2_Zero, "from his terrible calamity"); draw_p.y += TELY_Render_FontHeight(renderer); + TELY_Render_TextF(renderer, draw_p, Dqn_V2_Zero, "Terry has been saved"); draw_p.y += TELY_Render_FontSize(renderer) * os->core.dpi_scale; + TELY_Render_TextF(renderer, draw_p, Dqn_V2_Zero, "from his terrible calamity"); draw_p.y += TELY_Render_FontSize(renderer) * os->core.dpi_scale; TELY_Render_PopFont(renderer); TELY_Render_PushFontSize(renderer, game->inter_regular_font, game->font_size); - TELY_Render_TextF(renderer, draw_p, Dqn_V2_Zero, "He lives for yet another day and another love"); draw_p.y += TELY_Render_FontHeight(renderer); - TELY_Render_TextF(renderer, draw_p, Dqn_V2_Zero, "Press enter to restart"); draw_p.y += TELY_Render_FontHeight(renderer); + TELY_Render_TextF(renderer, draw_p, Dqn_V2_Zero, "He lives for yet another day and another love"); draw_p.y += TELY_Render_FontSize(renderer) * os->core.dpi_scale; + TELY_Render_TextF(renderer, draw_p, Dqn_V2_Zero, "Press enter to restart"); draw_p.y += TELY_Render_FontSize(renderer) * os->core.dpi_scale; TELY_Render_PopFont(renderer); TELY_Render_PopColourV4(renderer); @@ -4002,7 +4003,7 @@ static void FP_Render(FP_Game *game, TELY_OS *os, TELY_Renderer *renderer, TELY_ info_column.widget->semantic_position[TELY_RFuiAxis_X].kind = TELY_RFuiPositionKind_Absolute; info_column.widget->semantic_position[TELY_RFuiAxis_X].value = next_y; info_column.widget->semantic_position[TELY_RFuiAxis_Y].kind = TELY_RFuiPositionKind_Absolute; - info_column.widget->semantic_position[TELY_RFuiAxis_Y].value = os->core.window_size.h - TELY_Render_FontHeight(renderer); + info_column.widget->semantic_position[TELY_RFuiAxis_Y].value = os->core.window_size.h - TELY_Render_FontSize(renderer) * os->core.dpi_scale; { TELY_RFuiResult row = TELY_RFui_Row(rfui, DQN_STR8("Info Bar")); diff --git a/feely_pona_unity.h b/feely_pona_unity.h index b9fccff..6310468 100644 --- a/feely_pona_unity.h +++ b/feely_pona_unity.h @@ -1,7 +1,7 @@ // NOTE: feely_pona ================================================================================ // Unity build header to compile the entire application as a single translation unit -#define TELY_PLATFORM_DLL_FILE_NAME "terry_cherry_dev_dll_msvc" +#define TELY_PLATFORM_DLL_FILE_NAME "terry_cherry_dev_dll" #include "External/tely/tely_os_raylib_unity.h" // NOTE: feely_pona ================================================================================ diff --git a/project.rdbg b/project.rdbg index b241373..f4d2042 100644 Binary files a/project.rdbg and b/project.rdbg differ