Compare commits

...

9 commits

Author SHA1 Message Date
JaceCear
2afbf3bba8
Merge f590788379 into 3c1badf183 2025-08-06 18:20:00 -05:00
squidbus
3c1badf183
Enable D3D12 Agility SDK in plume submodule. (#1646)
Some checks failed
validate-internal / build (push) Has been cancelled
2025-08-04 15:39:26 +03:00
JaceCear
f590788379
Merge branch 'hedge-dev:main' into custom_aspect_ratios 2025-04-04 13:33:27 +02:00
JaceCear
ceecdf8748
Merge branch 'hedge-dev:main' into custom_aspect_ratios 2025-03-12 15:35:42 +01:00
JaceCear
b168872d8a Remove AspectWidth and AspectHeight, instead introduce CustomAspectRatio option 2025-03-07 15:54:34 +01:00
JaceCear
27526bb41d
Merge branch 'main' into custom_aspect_ratios 2025-03-06 01:07:27 +01:00
JaceCear
a07b6c05db Revert typo fix, to be put into a different PR 2025-03-04 21:00:00 +01:00
JaceCear
382bf516f4 Options: Fix German 'Format' translation typo 2025-03-03 13:01:52 +01:00
JaceCear
01b3fff8f1 Options: Add Custom Aspect Ratios 2025-03-03 13:00:44 +01:00
9 changed files with 40 additions and 26 deletions

View file

@ -23,10 +23,6 @@ if (APPLE)
enable_language(OBJC OBJCXX)
endif()
if (CMAKE_SYSTEM_NAME MATCHES "Linux")
set(SDL_VULKAN_ENABLED ON CACHE BOOL "")
endif()
if (CMAKE_OSX_ARCHITECTURES)
set(UNLEASHED_RECOMP_ARCHITECTURE ${CMAKE_OSX_ARCHITECTURES})
elseif(CMAKE_SYSTEM_PROCESSOR)

View file

@ -352,23 +352,13 @@ if (UNLEASHED_RECOMP_FLATPAK)
)
endif()
if (UNLEASHED_RECOMP_D3D12)
find_package(directx-headers CONFIG REQUIRED)
find_package(directx12-agility CONFIG REQUIRED)
target_compile_definitions(UnleashedRecomp PRIVATE
UNLEASHED_RECOMP_D3D12
D3D12MA_USING_DIRECTX_HEADERS
D3D12MA_OPTIONS16_SUPPORTED
)
endif()
if (SDL_VULKAN_ENABLED)
target_compile_definitions(UnleashedRecomp PRIVATE SDL_VULKAN_ENABLED)
endif()
find_package(CURL REQUIRED)
if (UNLEASHED_RECOMP_D3D12)
find_package(directx-headers CONFIG REQUIRED)
find_package(directx12-agility CONFIG REQUIRED)
target_compile_definitions(UnleashedRecomp PRIVATE UNLEASHED_RECOMP_D3D12)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/D3D12)
add_custom_command(TARGET UnleashedRecomp POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_PROPERTY:Microsoft::DirectX12-Core,IMPORTED_LOCATION_RELEASE> $<TARGET_FILE_DIR:UnleashedRecomp>/D3D12
@ -379,9 +369,6 @@ if (UNLEASHED_RECOMP_D3D12)
)
target_link_libraries(UnleashedRecomp PRIVATE
Microsoft::DirectX-Headers
Microsoft::DirectX-Guids
Microsoft::DirectX12-Agility
Microsoft::DirectXShaderCompiler
Microsoft::DXIL
dxgi

View file

@ -3053,6 +3053,24 @@ void Video::ComputeViewportDimensions()
break;
}
case EAspectRatio::Custom:
{
float customAspectRatio = Config::CustomAspectRatio;
if (aspectRatio > customAspectRatio)
{
s_viewportWidth = height * customAspectRatio;
s_viewportHeight = height;
}
else
{
s_viewportWidth = width;
s_viewportHeight = width * (1. / customAspectRatio);
}
break;
}
default:
s_viewportWidth = width;
s_viewportHeight = height;

View file

@ -546,7 +546,8 @@ CONFIG_DEFINE_ENUM_LOCALE(EAspectRatio)
{ EAspectRatio::Auto, { "AUTO", "Auto: the aspect ratio will dynamically adjust to the window size." } },
{ EAspectRatio::Wide, { "16:9", "16:9: locks the game to a widescreen aspect ratio." } },
{ EAspectRatio::Narrow, { "4:3", "4:3: locks the game to a narrow aspect ratio." } },
{ EAspectRatio::OriginalNarrow, { "ORIGINAL 4:3", "Original 4:3: locks the game to a narrow aspect ratio and retains parity with the game's original implementation." } }
{ EAspectRatio::OriginalNarrow, { "ORIGINAL 4:3", "Original 4:3: locks the game to a narrow aspect ratio and retains parity with the game's original implementation." } },
{ EAspectRatio::Custom, { "Custom", "Custom:\nThe aspect ratio is set by using the CustomAspectRatio value in the config.toml file." } }
}
},
{
@ -564,7 +565,8 @@ CONFIG_DEFINE_ENUM_LOCALE(EAspectRatio)
{ EAspectRatio::Auto, { "AUTO", "Auto: Das Seitenverhältnis passt sich automatisch der Fenstergröße an." } },
{ EAspectRatio::Wide, { "16:9", "16:9: Stellt das Spiel in einem Breitbildschirm-Format dar." } },
{ EAspectRatio::Narrow, { "4:3", "4:3: Stellt das Spiel in einem Mittel-Format dar." } },
{ EAspectRatio::OriginalNarrow, { "ORIGINAL 4:3", "Original 4:3: Stellt das Spiel in einem Mittel-Format dar, was der ursprünglichen Implementation originalgetreut bleibt." } }
{ EAspectRatio::OriginalNarrow, { "ORIGINAL 4:3", "Original 4:3: Stellt das Spiel in einem Mittel-Format dar, was der ursprünglichen Implementation originalgetreut bleibt." } },
{ EAspectRatio::Custom, { "Benutzerdefiniert", "Benutzerdefiniert:\nDas Seitenverhältnis entspricht dem Wert CustomAspectRatio in der Datei config.toml." } }
}
},
{

View file

@ -322,6 +322,7 @@ CONFIG_DEFINE_ENUM_TEMPLATE(EAspectRatio)
{ "16:9", EAspectRatio::Wide },
{ "4:3", EAspectRatio::Narrow },
{ "Original 4:3", EAspectRatio::OriginalNarrow },
{ "Custom", EAspectRatio::Custom },
};
CONFIG_DEFINE_ENUM_TEMPLATE(ETripleBuffering)

View file

@ -85,7 +85,8 @@ enum class EAspectRatio : uint32_t
Auto,
Wide,
Narrow,
OriginalNarrow
OriginalNarrow,
Custom
};
enum class ETripleBuffering : uint32_t

View file

@ -56,6 +56,7 @@ CONFIG_DEFINE("Video", int32_t, WindowHeight, 720);
CONFIG_DEFINE_ENUM("Video", EWindowState, WindowState, EWindowState::Normal);
CONFIG_DEFINE_LOCALISED("Video", int32_t, Monitor, 0);
CONFIG_DEFINE_ENUM_LOCALISED("Video", EAspectRatio, AspectRatio, EAspectRatio::Auto);
CONFIG_DEFINE("Video", float, CustomAspectRatio, (16.0f / 9.0f));
CONFIG_DEFINE_LOCALISED("Video", float, ResolutionScale, 1.0f);
CONFIG_DEFINE_LOCALISED("Video", bool, Fullscreen, true);
CONFIG_DEFINE_LOCALISED("Video", bool, VSync, true);

View file

@ -15,6 +15,14 @@ set(SDL2MIXER_OPUS OFF)
set(SDL2MIXER_VORBIS "VORBISFILE")
set(SDL2MIXER_WAVPACK OFF)
if (CMAKE_SYSTEM_NAME MATCHES "Linux")
set(SDL_VULKAN_ENABLED ON CACHE BOOL "")
endif()
if (WIN32)
set(D3D12_AGILITY_SDK_ENABLED ON CACHE BOOL "")
endif()
add_subdirectory("${UNLEASHED_RECOMP_THIRDPARTY_ROOT}/msdf-atlas-gen")
add_subdirectory("${UNLEASHED_RECOMP_THIRDPARTY_ROOT}/nativefiledialog-extended")
add_subdirectory("${UNLEASHED_RECOMP_THIRDPARTY_ROOT}/o1heap")

2
thirdparty/plume vendored

@ -1 +1 @@
Subproject commit fffeb35f836d8c945697ec82b735e77db401e2de
Subproject commit 11926860e878e68626ea99ec88562ce2b8badc4f