ui: Make splash screen DPI aware
This commit is contained in:
parent
0093d4418e
commit
c75659db82
@ -27,6 +27,8 @@ namespace hex::init {
|
|||||||
float m_progress = 0;
|
float m_progress = 0;
|
||||||
std::string m_currTaskName;
|
std::string m_currTaskName;
|
||||||
|
|
||||||
|
float m_globalScale = 1.0F;
|
||||||
|
|
||||||
void initGLFW();
|
void initGLFW();
|
||||||
void initImGui();
|
void initImGui();
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
#include <hex/resources.hpp>
|
#include <hex/resources.hpp>
|
||||||
|
|
||||||
#include <imgui.h>
|
#include <imgui.h>
|
||||||
|
#define IMGUI_DEFINE_MATH_OPERATORS
|
||||||
#include <imgui_internal.h>
|
#include <imgui_internal.h>
|
||||||
#include <imgui_imhex_extensions.h>
|
#include <imgui_imhex_extensions.h>
|
||||||
#include <imgui_impl_glfw.h>
|
#include <imgui_impl_glfw.h>
|
||||||
@ -92,17 +93,18 @@ namespace hex::init {
|
|||||||
|
|
||||||
auto drawList = ImGui::GetOverlayDrawList();
|
auto drawList = ImGui::GetOverlayDrawList();
|
||||||
|
|
||||||
drawList->AddImage(splashTexture, ImVec2(0, 0), ImVec2(splashWidth, splashHeight));
|
drawList->AddImage(splashTexture, ImVec2(0, 0), ImVec2(splashWidth, splashHeight) * this->m_globalScale);
|
||||||
|
|
||||||
|
drawList->AddText(ImVec2(15, 120) * this->m_globalScale, ImColor(0xFF, 0xFF, 0xFF, 0xFF), hex::format("WerWolv 2020 - {0}", &__DATE__[7]).c_str());
|
||||||
|
|
||||||
#if defined(DEBUG)
|
#if defined(DEBUG)
|
||||||
drawList->AddText(ImVec2(15, 120), ImColor(0xFF, 0xFF, 0xFF, 0xFF), hex::format("WerWolv 2020 - {0}", &__DATE__[7]).c_str());
|
drawList->AddText(ImVec2(15, 140) * this->m_globalScale, ImColor(0xFF, 0xFF, 0xFF, 0xFF), hex::format("{0} : {1} {2}@{3}", IMHEX_VERSION, ICON_FA_CODE_BRANCH, GIT_BRANCH, GIT_COMMIT_HASH).c_str());
|
||||||
drawList->AddText(ImVec2(15, 140), ImColor(0xFF, 0xFF, 0xFF, 0xFF), hex::format("{0} : {1} {2}@{3}", IMHEX_VERSION, ICON_FA_CODE_BRANCH, GIT_BRANCH, GIT_COMMIT_HASH).c_str());
|
|
||||||
#else
|
#else
|
||||||
drawList->AddText(ImVec2(15, 120), ImColor(0xFF, 0xFF, 0xFF, 0xFF), hex::format("WerWolv 2020 - {0}", &__DATE__[7]).c_str());
|
drawList->AddText(ImVec2(15, 140) * this->m_globalScale, ImColor(0xFF, 0xFF, 0xFF, 0xFF), hex::format("{0}", IMHEX_VERSION).c_str());
|
||||||
drawList->AddText(ImVec2(15, 140), ImColor(0xFF, 0xFF, 0xFF, 0xFF), hex::format("{0}", IMHEX_VERSION).c_str());
|
|
||||||
#endif
|
#endif
|
||||||
drawList->AddRectFilled(ImVec2(0, splashHeight - 5), ImVec2(splashWidth * this->m_progress, splashHeight), 0xFFFFFFFF);
|
|
||||||
drawList->AddText(ImVec2(15, splashHeight - 25), ImColor(0xFF, 0xFF, 0xFF, 0xFF),
|
drawList->AddRectFilled(ImVec2(0, splashHeight - 5) * this->m_globalScale, ImVec2(splashWidth * this->m_progress, splashHeight) * this->m_globalScale, 0xFFFFFFFF);
|
||||||
|
drawList->AddText(ImVec2(15, splashHeight - 25) * this->m_globalScale, ImColor(0xFF, 0xFF, 0xFF, 0xFF),
|
||||||
hex::format("[{}] {}", "|/-\\"[ImU32(ImGui::GetTime() * 15) % 4], this->m_currTaskName).c_str());
|
hex::format("[{}] {}", "|/-\\"[ImU32(ImGui::GetTime() * 15) % 4], this->m_currTaskName).c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -164,7 +166,14 @@ namespace hex::init {
|
|||||||
glfwWindowHint(GLFW_DECORATED, GLFW_FALSE);
|
glfwWindowHint(GLFW_DECORATED, GLFW_FALSE);
|
||||||
glfwWindowHint(GLFW_FLOATING, GLFW_TRUE);
|
glfwWindowHint(GLFW_FLOATING, GLFW_TRUE);
|
||||||
|
|
||||||
this->m_window = glfwCreateWindow(640, 400, "ImHex", nullptr, nullptr);
|
if (GLFWmonitor *monitor = glfwGetPrimaryMonitor(); monitor != nullptr) {
|
||||||
|
float xscale, yscale;
|
||||||
|
glfwGetMonitorContentScale(monitor, &xscale, &yscale);
|
||||||
|
|
||||||
|
this->m_globalScale = std::midpoint(xscale, yscale);
|
||||||
|
}
|
||||||
|
|
||||||
|
this->m_window = glfwCreateWindow(640 * this->m_globalScale, 400 * this->m_globalScale, "ImHex", nullptr, nullptr);
|
||||||
if (this->m_window == nullptr) {
|
if (this->m_window == nullptr) {
|
||||||
log::fatal("Failed to create GLFW window!");
|
log::fatal("Failed to create GLFW window!");
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
@ -191,11 +200,13 @@ namespace hex::init {
|
|||||||
|
|
||||||
auto &io = ImGui::GetIO();
|
auto &io = ImGui::GetIO();
|
||||||
|
|
||||||
|
ImGui::GetStyle().ScaleAllSizes(this->m_globalScale);
|
||||||
|
|
||||||
io.Fonts->Clear();
|
io.Fonts->Clear();
|
||||||
|
|
||||||
ImFontConfig cfg;
|
ImFontConfig cfg;
|
||||||
cfg.OversampleH = cfg.OversampleV = 1, cfg.PixelSnapH = true;
|
cfg.OversampleH = cfg.OversampleV = 1, cfg.PixelSnapH = true;
|
||||||
cfg.SizePixels = 13.0f;
|
cfg.SizePixels = 13.0f * this->m_globalScale;
|
||||||
io.Fonts->AddFontDefault(&cfg);
|
io.Fonts->AddFontDefault(&cfg);
|
||||||
|
|
||||||
cfg.MergeMode = true;
|
cfg.MergeMode = true;
|
||||||
@ -206,7 +217,7 @@ namespace hex::init {
|
|||||||
};
|
};
|
||||||
std::uint8_t *px;
|
std::uint8_t *px;
|
||||||
int w, h;
|
int w, h;
|
||||||
io.Fonts->AddFontFromMemoryCompressedTTF(font_awesome_compressed_data, font_awesome_compressed_size, 11.0f, &cfg, fontAwesomeRange);
|
io.Fonts->AddFontFromMemoryCompressedTTF(font_awesome_compressed_data, font_awesome_compressed_size, 11.0f * this->m_globalScale, &cfg, fontAwesomeRange);
|
||||||
io.Fonts->GetTexDataAsRGBA32(&px, &w, &h);
|
io.Fonts->GetTexDataAsRGBA32(&px, &w, &h);
|
||||||
|
|
||||||
// Create new font atlas
|
// Create new font atlas
|
||||||
|
Loading…
Reference in New Issue
Block a user