From 8d42d5741f34da897f0dedde0dfad5baa6edee51 Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Mon, 4 May 2026 11:55:34 +0200 Subject: [PATCH] Format window title with copyright prefix and backend driver --- src/defines.hpp | 3 +++ src/main.cpp | 19 +++++++++++++++---- src/rendering/opengl_shader_backend.hpp | 2 +- .../sdl3gpu/sdl3gpu_shader_backend.cpp | 11 ++++++++++- 4 files changed, 29 insertions(+), 6 deletions(-) diff --git a/src/defines.hpp b/src/defines.hpp index f971191..9e8c94e 100644 --- a/src/defines.hpp +++ b/src/defines.hpp @@ -6,6 +6,9 @@ // Nombre de la aplicación constexpr const char* APP_NAME = "Shadertoy"; +// Prefijo del título de la ventana (estilo aee_2026). +constexpr const char* WINDOW_TITLE_PREFIX = "\xC2\xA9 2025 Shadertoy \xE2\x80\x94 JailDesigner"; + // Tamaño de ventana por defecto constexpr int WINDOW_WIDTH = 800; constexpr int WINDOW_HEIGHT = 800; diff --git a/src/main.cpp b/src/main.cpp index eba209b..659a659 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -147,13 +147,24 @@ static void updateWindowTitle() { shaderName += " by " + shader_authors_[current_shader_index_]; } - std::string title = std::string(APP_NAME) + " (" + shaderName + ")"; + std::string title = WINDOW_TITLE_PREFIX; + title += " ("; + title += shaderName; - if (current_fps_ > 0.0f) { - title += " - " + std::to_string(static_cast(current_fps_ + 0.5f)) + " FPS"; + if (backend_) { + title += " - "; + title += backend_->driverName(); } - title += Options_video.vsync ? " [VSync ON]" : " [VSync OFF]"; + if (current_fps_ > 0.0f) { + title += " - "; + title += std::to_string(static_cast(current_fps_ + 0.5f)) + " FPS"; + } + + if (Options_video.vsync) { + title += " - VSync"; + } + title += ")"; SDL_SetWindowTitle(window_, title.c_str()); } diff --git a/src/rendering/opengl_shader_backend.hpp b/src/rendering/opengl_shader_backend.hpp index 975763a..1474dd5 100644 --- a/src/rendering/opengl_shader_backend.hpp +++ b/src/rendering/opengl_shader_backend.hpp @@ -16,7 +16,7 @@ namespace Rendering { void render(const ShaderUniforms& uniforms) override; void setVSync(bool vsync) override; void cleanup() override; - [[nodiscard]] auto driverName() const -> std::string override { return "OpenGL 3.3"; } + [[nodiscard]] auto driverName() const -> std::string override { return "OpenGL"; } private: auto createFeedbackFBO(int width, int height) -> bool; diff --git a/src/rendering/sdl3gpu/sdl3gpu_shader_backend.cpp b/src/rendering/sdl3gpu/sdl3gpu_shader_backend.cpp index 748c54e..415d21a 100644 --- a/src/rendering/sdl3gpu/sdl3gpu_shader_backend.cpp +++ b/src/rendering/sdl3gpu/sdl3gpu_shader_backend.cpp @@ -49,7 +49,16 @@ namespace Rendering { SDL_SetGPUSwapchainParameters(device_, window_, SDL_GPU_SWAPCHAINCOMPOSITION_SDR, bestPresentMode()); const char* name = SDL_GetGPUDeviceDriver(device_); - driver_name_ = (name != nullptr) ? std::string("SDL3 GPU/") + name : "SDL3 GPU"; + const std::string raw = (name != nullptr) ? name : "GPU"; + if (raw == "vulkan") { driver_name_ = "Vulkan"; } + else if (raw == "metal") { driver_name_ = "Metal"; } + else if (raw == "d3d12") { driver_name_ = "D3D12"; } + else if (!raw.empty()) { + driver_name_ = raw; + driver_name_[0] = static_cast(std::toupper(static_cast(driver_name_[0]))); + } else { + driver_name_ = "GPU"; + } logInfo("GPU driver: " + driver_name_); return true; }