5d1dae1d86
Separa el tamany lògic (1280×720) del render target offscreen. Llista
tancada de 5 presets 16:9 (720p/900p/1080p/1440p/2160p) llegida de
rendering.render_{width,height} amb fallback a 1280×720 si invàlida.
Inclou API resizeRenderTarget() preparada per al menú de servei futur.
39 lines
1.3 KiB
C++
39 lines
1.3 KiB
C++
// rendering.hpp - Opcions de renderització
|
||
// © 2026 JailDesigner
|
||
|
||
#pragma once
|
||
|
||
#include <algorithm>
|
||
#include <array>
|
||
|
||
namespace Defaults::Rendering {
|
||
|
||
constexpr int VSYNC_DEFAULT = 1; // 0=disabled, 1=enabled
|
||
constexpr int ANTIALIAS_DEFAULT = 1; // 0=disabled, 1=enabled (AA geomètric a les línies)
|
||
|
||
// Resolució del render target offscreen. El tamany lògic del joc roman a
|
||
// 1280×720 (coordenades dels objectes); aquesta és la resolució física a
|
||
// la qual es rasteritzen les línies abans de la composició final.
|
||
struct ResolutionPreset {
|
||
int w;
|
||
int h;
|
||
};
|
||
|
||
constexpr std::array<ResolutionPreset, 5> RESOLUTION_PRESETS{{
|
||
{.w = 1280, .h = 720}, // HD 720p (default)
|
||
{.w = 1600, .h = 900}, // HD+ 900p
|
||
{.w = 1920, .h = 1080}, // Full HD 1080p
|
||
{.w = 2560, .h = 1440}, // QHD 1440p
|
||
{.w = 3840, .h = 2160} // 4K UHD 2160p
|
||
}};
|
||
|
||
constexpr int RENDER_WIDTH_DEFAULT = 1280;
|
||
constexpr int RENDER_HEIGHT_DEFAULT = 720;
|
||
|
||
constexpr auto isValidRenderResolution(int w, int h) -> bool {
|
||
return std::ranges::any_of(RESOLUTION_PRESETS,
|
||
[w, h](const ResolutionPreset& preset) { return preset.w == w && preset.h == h; });
|
||
}
|
||
|
||
} // namespace Defaults::Rendering
|