diff options
| author | Andre Weissflog <floooh@gmail.com> | 2019-06-11 18:42:04 +0200 |
|---|---|---|
| committer | Andre Weissflog <floooh@gmail.com> | 2019-06-11 18:42:04 +0200 |
| commit | fe159f4a37821cb66f8dfed1da51e31800412aff (patch) | |
| tree | 8dedd62e9a2912f3500c51b15aa378fac88a64da /util | |
| parent | b6479c181319990b2f21eb5be53b30d0ecf13db2 (diff) | |
sokol_imgui.h / sokol_cimgui.h: fix high-dpi related display size bug
Diffstat (limited to 'util')
| -rw-r--r-- | util/sokol_cimgui.h | 8 | ||||
| -rw-r--r-- | util/sokol_imgui.h | 8 |
2 files changed, 8 insertions, 8 deletions
diff --git a/util/sokol_cimgui.h b/util/sokol_cimgui.h index 9235971d..e14999da 100644 --- a/util/sokol_cimgui.h +++ b/util/sokol_cimgui.h @@ -825,8 +825,8 @@ SOKOL_API_IMPL void scimgui_shutdown(void) { SOKOL_API_IMPL void scimgui_new_frame(int width, int height, double delta_time) { ImGuiIO* io = igGetIO(); - io->DisplaySize.x = (float) width; - io->DisplaySize.y = (float) height; + io->DisplaySize.x = ((float) width) * _scimgui.desc.dpi_scale; + io->DisplaySize.y = ((float) height) * _scimgui.desc.dpi_scale; io->DeltaTime = (float) delta_time; #if !defined(SOKOL_CIMGUI_NO_SOKOL_APP) for (int i = 0; i < SAPP_MAX_MOUSEBUTTONS; i++) { @@ -864,8 +864,8 @@ SOKOL_API_IMPL void scimgui_render(void) { sg_push_debug_group("sokol-imgui"); sg_apply_pipeline(_scimgui.pip); _scimgui_vs_params_t vs_params; - vs_params.disp_size.x = igGetIO()->DisplaySize.x / dpi_scale; - vs_params.disp_size.y = igGetIO()->DisplaySize.y / dpi_scale; + vs_params.disp_size.x = igGetIO()->DisplaySize.x; + vs_params.disp_size.y = igGetIO()->DisplaySize.y; sg_apply_uniforms(SG_SHADERSTAGE_VS, 0, &vs_params, sizeof(vs_params)); sg_bindings bind; _scimgui_clear(bind); diff --git a/util/sokol_imgui.h b/util/sokol_imgui.h index da3dc21b..e549397d 100644 --- a/util/sokol_imgui.h +++ b/util/sokol_imgui.h @@ -835,8 +835,8 @@ SOKOL_API_IMPL void simgui_shutdown(void) { SOKOL_API_IMPL void simgui_new_frame(int width, int height, double delta_time) { ImGuiIO& io = ImGui::GetIO(); - io.DisplaySize.x = (float) width; - io.DisplaySize.y = (float) height; + io.DisplaySize.x = ((float) width) / _simgui.desc.dpi_scale; + io.DisplaySize.y = ((float) height) / _simgui.desc.dpi_scale; io.DeltaTime = (float) delta_time; #if !defined(SOKOL_IMGUI_NO_SOKOL_APP) for (int i = 0; i < SAPP_MAX_MOUSEBUTTONS; i++) { @@ -874,8 +874,8 @@ SOKOL_API_IMPL void simgui_render(void) { sg_push_debug_group("sokol-imgui"); sg_apply_pipeline(_simgui.pip); _simgui_vs_params_t vs_params; - vs_params.disp_size.x = ImGui::GetIO().DisplaySize.x / dpi_scale; - vs_params.disp_size.y = ImGui::GetIO().DisplaySize.y / dpi_scale; + vs_params.disp_size.x = ImGui::GetIO().DisplaySize.x; + vs_params.disp_size.y = ImGui::GetIO().DisplaySize.y; sg_apply_uniforms(SG_SHADERSTAGE_VS, 0, &vs_params, sizeof(vs_params)); sg_bindings bind = { }; bind.vertex_buffers[0] = _simgui.vbuf; |