mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-17 22:39:17 +02:00
Merge pull request #126 from dos1/loadingscreen
Loading screen improvements
This commit is contained in:
@@ -197,7 +197,8 @@ void scenarioloader_ui::render_()
|
||||
ImDrawList* draw_list = ImGui::GetWindowDrawList();
|
||||
ImGui::PushFont(font_loading);
|
||||
ImGui::SetWindowFontScale(1);
|
||||
const float font_scale_mult = 48 / ImGui::GetFontSize();
|
||||
const float scale = Global.window_size.x / 1920.f;
|
||||
const float font_scale_mult = 48 / ImGui::GetFontSize() * scale;
|
||||
|
||||
// Gradient at the lower half of the screen
|
||||
if (!Global.NvRenderer)
|
||||
@@ -207,14 +208,14 @@ void scenarioloader_ui::render_()
|
||||
}
|
||||
|
||||
// [O] Loading...
|
||||
const float margin_left_icon = 35.0f;
|
||||
const float margin_bottom_loading = 80.0f;
|
||||
const float spacing = 10.0f; // odstęp między ikoną a tekstem
|
||||
const float margin_left_icon = 35.0f * scale;
|
||||
const float margin_bottom_loading = 80.0f * scale;
|
||||
const float spacing = 10.0f * scale; // odstęp między ikoną a tekstem
|
||||
|
||||
// Loading icon
|
||||
const deferred_image *img = &m_loading_wheel_frames[38];
|
||||
const auto loading_tex = img->get();
|
||||
const auto loading_size = img->size();
|
||||
const auto loading_size = glm::vec2(img->size()) * glm::vec2(scale);
|
||||
|
||||
ImVec2 icon_pos(margin_left_icon, screen_size.y - margin_bottom_loading - loading_size.y);
|
||||
|
||||
@@ -235,10 +236,10 @@ void scenarioloader_ui::render_()
|
||||
// draw only if we have any trivia loaded
|
||||
if (m_trivia.size() > 0)
|
||||
{
|
||||
const float margin_right = 80.0f;
|
||||
const float margin_bottom = 80.0f;
|
||||
const float line_spacing = 25.0f;
|
||||
const float header_gap = 10.0f;
|
||||
const float margin_right = 80.0f * scale;
|
||||
const float margin_bottom = 80.0f * scale;
|
||||
const float line_spacing = 25.0f * scale;
|
||||
const float header_gap = 10.0f * scale;
|
||||
|
||||
// Measure width of trivia lines
|
||||
ImGui::SetWindowFontScale(font_scale_mult * 0.6f);
|
||||
@@ -283,7 +284,7 @@ void scenarioloader_ui::render_()
|
||||
if (!sceneryName.empty())
|
||||
{
|
||||
ImVec2 text_size = ImGui::CalcTextSize(sceneryName.c_str());
|
||||
ImVec2 text_pos = ImVec2(screen_size.x - 16 - text_size.x, 16);
|
||||
ImVec2 text_pos = ImVec2(screen_size.x - 16 * scale - text_size.x, 16 * scale);
|
||||
draw_list->AddText(text_pos, IM_COL32_WHITE, sceneryName.c_str());
|
||||
}
|
||||
|
||||
@@ -300,7 +301,7 @@ void scenarioloader_ui::generate_gradient_tex()
|
||||
if (Global.NvRenderer)
|
||||
return;
|
||||
constexpr int image_width = 1;
|
||||
constexpr int image_height = 256;
|
||||
constexpr int image_height = 1024;
|
||||
const auto image_data = new char[image_width * image_height * 4];
|
||||
for (int x = 0; x < image_width; x++)
|
||||
for (int y = 0; y < image_height; y++)
|
||||
@@ -308,7 +309,7 @@ void scenarioloader_ui::generate_gradient_tex()
|
||||
image_data[(y * image_width + x) * 4] = 0;
|
||||
image_data[(y * image_width + x) * 4 + 1] = 0;
|
||||
image_data[(y * image_width + x) * 4 + 2] = 0;
|
||||
image_data[(y * image_width + x) * 4 + 3] = std::clamp(static_cast<int>(pow(y / 255.f, 0.7) * 255), 0, 255);
|
||||
image_data[(y * image_width + x) * 4 + 3] = std::clamp(static_cast<int>(pow(y / 1023.f, 0.7) * 255), 0, 255);
|
||||
}
|
||||
|
||||
// Create a OpenGL texture identifier
|
||||
|
||||
Reference in New Issue
Block a user