diff --git a/src/hello_imgui/dpi_aware.h b/src/hello_imgui/dpi_aware.h index 41939f90..42543e64 100644 --- a/src/hello_imgui/dpi_aware.h +++ b/src/hello_imgui/dpi_aware.h @@ -116,6 +116,12 @@ float EmSize(); float EmSize(float nbLines); // @@md +// __HelloImGui::PixelToEm()__ converts a Vec2 in pixels coord to a Vec2 in em units +ImVec2 PixelsToEm(ImVec2 pixels); + +// __HelloImGui::PixelSizeToEm()__ converts a size in pixels coord to a size in em units +float PixelSizeToEm(float pixelSize); + } // namespace HelloImGui diff --git a/src/hello_imgui/impl/dpi_aware.cpp b/src/hello_imgui/impl/dpi_aware.cpp index fcc05f2c..24d68f71 100644 --- a/src/hello_imgui/impl/dpi_aware.cpp +++ b/src/hello_imgui/impl/dpi_aware.cpp @@ -34,6 +34,20 @@ namespace HelloImGui return ImVec2(k * v.x, k * v.y); } + ImVec2 PixelsToEm(ImVec2 pixels) + { + IM_ASSERT(GImGui != NULL); + float k = ImGui::GetFontSize(); + return ImVec2(pixels.x / k, pixels.y / k); + } + + float PixelSizeToEm(float pixelSize) + { + IM_ASSERT(GImGui != NULL); + float k = ImGui::GetFontSize(); + return pixelSize / k; + } + float DpiWindowSizeFactor() {