fix: Splash screen being scaled incorrectly
This commit is contained in:
parent
ac8ec2b622
commit
4916e5542a
@ -238,7 +238,7 @@ namespace hex::init {
|
|||||||
|
|
||||||
|
|
||||||
FrameResult WindowSplash::fullFrame() {
|
FrameResult WindowSplash::fullFrame() {
|
||||||
glfwSetWindowSize(m_window, 640_scaled, 400_scaled);
|
glfwSetWindowSize(m_window, 640, 400);
|
||||||
centerWindow(m_window);
|
centerWindow(m_window);
|
||||||
|
|
||||||
glfwPollEvents();
|
glfwPollEvents();
|
||||||
@ -248,23 +248,21 @@ namespace hex::init {
|
|||||||
ImGui_ImplGlfw_NewFrame();
|
ImGui_ImplGlfw_NewFrame();
|
||||||
ImGui::NewFrame();
|
ImGui::NewFrame();
|
||||||
|
|
||||||
auto scale = ImHexApi::System::getGlobalScale();
|
|
||||||
|
|
||||||
// Draw the splash screen background
|
// Draw the splash screen background
|
||||||
auto drawList = ImGui::GetBackgroundDrawList();
|
auto drawList = ImGui::GetBackgroundDrawList();
|
||||||
{
|
{
|
||||||
|
|
||||||
// Draw the splash screen background
|
// Draw the splash screen background
|
||||||
drawList->AddImage(this->splashBackgroundTexture, ImVec2(0, 0), this->splashBackgroundTexture.getSize() * scale);
|
drawList->AddImage(this->splashBackgroundTexture, ImVec2(0, 0), this->splashBackgroundTexture.getSize());
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
// Function to highlight a given number of bytes at a position in the splash screen
|
// Function to highlight a given number of bytes at a position in the splash screen
|
||||||
const auto highlightBytes = [&](ImVec2 start, size_t count, ImColor color, float opacity) {
|
const auto highlightBytes = [&](ImVec2 start, size_t count, ImColor color, float opacity) {
|
||||||
// Dimensions and number of bytes that are drawn. Taken from the splash screen image
|
// Dimensions and number of bytes that are drawn. Taken from the splash screen image
|
||||||
const auto hexSize = ImVec2(29, 18) * scale;
|
const auto hexSize = ImVec2(29, 18);
|
||||||
const auto hexSpacing = ImVec2(17.4, 15) * scale;
|
const auto hexSpacing = ImVec2(17.4, 15);
|
||||||
const auto hexStart = ImVec2(27, 127) * scale;
|
const auto hexStart = ImVec2(27, 127);
|
||||||
|
|
||||||
constexpr auto HexCount = ImVec2(13, 7);
|
constexpr auto HexCount = ImVec2(13, 7);
|
||||||
|
|
||||||
@ -312,10 +310,10 @@ namespace hex::init {
|
|||||||
this->progressLerp += (m_progress - this->progressLerp) * 0.1F;
|
this->progressLerp += (m_progress - this->progressLerp) * 0.1F;
|
||||||
|
|
||||||
// Draw the splash screen foreground
|
// Draw the splash screen foreground
|
||||||
drawList->AddImage(this->splashTextTexture, ImVec2(0, 0), this->splashTextTexture.getSize() * scale);
|
drawList->AddImage(this->splashTextTexture, ImVec2(0, 0), this->splashTextTexture.getSize());
|
||||||
|
|
||||||
// Draw the "copyright" notice
|
// Draw the "copyright" notice
|
||||||
drawList->AddText(ImVec2(35, 85) * scale, ImColor(0xFF, 0xFF, 0xFF, 0xFF), hex::format("WerWolv\n2020 - {0}", &__DATE__[7]).c_str());
|
drawList->AddText(ImVec2(35, 85), ImColor(0xFF, 0xFF, 0xFF, 0xFF), hex::format("WerWolv\n2020 - {0}", &__DATE__[7]).c_str());
|
||||||
|
|
||||||
// Draw version information
|
// Draw version information
|
||||||
// In debug builds, also display the current commit hash and branch
|
// In debug builds, also display the current commit hash and branch
|
||||||
@ -325,18 +323,18 @@ namespace hex::init {
|
|||||||
const static auto VersionInfo = hex::format("{0}", ImHexApi::System::getImHexVersion());
|
const static auto VersionInfo = hex::format("{0}", ImHexApi::System::getImHexVersion());
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
drawList->AddText(ImVec2((this->splashBackgroundTexture.getSize().x * scale - ImGui::CalcTextSize(VersionInfo.c_str()).x) / 2, 105 * scale), ImColor(0xFF, 0xFF, 0xFF, 0xFF), VersionInfo.c_str());
|
drawList->AddText(ImVec2((this->splashBackgroundTexture.getSize().x - ImGui::CalcTextSize(VersionInfo.c_str()).x) / 2, 105), ImColor(0xFF, 0xFF, 0xFF, 0xFF), VersionInfo.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Draw the task progress bar
|
// Draw the task progress bar
|
||||||
{
|
{
|
||||||
std::lock_guard guard(m_progressMutex);
|
std::lock_guard guard(m_progressMutex);
|
||||||
|
|
||||||
const auto progressBackgroundStart = ImVec2(99, 357) * scale;
|
const auto progressBackgroundStart = ImVec2(99, 357);
|
||||||
const auto progressBackgroundSize = ImVec2(442, 30) * scale;
|
const auto progressBackgroundSize = ImVec2(442, 30);
|
||||||
|
|
||||||
const auto progressStart = progressBackgroundStart + ImVec2(0, 20) * scale;
|
const auto progressStart = progressBackgroundStart + ImVec2(0, 20);
|
||||||
const auto progressSize = ImVec2(progressBackgroundSize.x * m_progress, 10 * scale);
|
const auto progressSize = ImVec2(progressBackgroundSize.x * m_progress, 10);
|
||||||
|
|
||||||
// Draw progress bar
|
// Draw progress bar
|
||||||
drawList->AddRectFilled(progressStart, progressStart + progressSize, 0xD0FFFFFF);
|
drawList->AddRectFilled(progressStart, progressStart + progressSize, 0xD0FFFFFF);
|
||||||
@ -344,7 +342,7 @@ namespace hex::init {
|
|||||||
// Draw task names separated by | characters
|
// Draw task names separated by | characters
|
||||||
if (!m_currTaskNames.empty()) {
|
if (!m_currTaskNames.empty()) {
|
||||||
drawList->PushClipRect(progressBackgroundStart, progressBackgroundStart + progressBackgroundSize, true);
|
drawList->PushClipRect(progressBackgroundStart, progressBackgroundStart + progressBackgroundSize, true);
|
||||||
drawList->AddText(progressStart + ImVec2(5, -20) * scale, ImColor(0xFF, 0xFF, 0xFF, 0xFF), hex::format("{}", fmt::join(m_currTaskNames, " | ")).c_str());
|
drawList->AddText(progressStart + ImVec2(5, -20), ImColor(0xFF, 0xFF, 0xFF, 0xFF), hex::format("{}", fmt::join(m_currTaskNames, " | ")).c_str());
|
||||||
drawList->PopClipRect();
|
drawList->PopClipRect();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -492,7 +490,7 @@ namespace hex::init {
|
|||||||
|
|
||||||
ImFontConfig cfg;
|
ImFontConfig cfg;
|
||||||
cfg.OversampleH = cfg.OversampleV = 1, cfg.PixelSnapH = true;
|
cfg.OversampleH = cfg.OversampleV = 1, cfg.PixelSnapH = true;
|
||||||
cfg.SizePixels = 13.0_scaled;
|
cfg.SizePixels = ImHexApi::Fonts::DefaultFontSize;
|
||||||
io.Fonts->AddFontDefault(&cfg);
|
io.Fonts->AddFontDefault(&cfg);
|
||||||
|
|
||||||
std::uint8_t *px;
|
std::uint8_t *px;
|
||||||
|
Loading…
Reference in New Issue
Block a user