diff --git a/.gitmodules b/.gitmodules index 05092ac0..59978ec3 100644 --- a/.gitmodules +++ b/.gitmodules @@ -22,3 +22,45 @@ [submodule "thirdparty/vcpkg"] path = thirdparty/vcpkg url = https://github.com/microsoft/vcpkg +[submodule "thirdparty/volk"] + path = thirdparty/volk + url = https://github.com/zeux/volk +[submodule "thirdparty/SDL"] + path = thirdparty/SDL + url = https://github.com/libsdl-org/SDL.git +[submodule "thirdparty/Vulkan-Headers"] + path = thirdparty/Vulkan-Headers + url = https://github.com/KhronosGroup/Vulkan-Headers.git +[submodule "thirdparty/VulkanMemoryAllocator"] + path = thirdparty/VulkanMemoryAllocator + url = https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git +[submodule "thirdparty/D3D12MemoryAllocator"] + path = thirdparty/D3D12MemoryAllocator + url = https://github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git +[submodule "thirdparty/stb"] + path = thirdparty/stb + url = https://github.com/nothings/stb.git +[submodule "thirdparty/concurrentqueue"] + path = thirdparty/concurrentqueue + url = https://github.com/cameron314/concurrentqueue.git +[submodule "thirdparty/tiny-AES-c"] + path = thirdparty/tiny-AES-c + url = https://github.com/kokke/tiny-AES-c.git +[submodule "thirdparty/magic_enum"] + path = thirdparty/magic_enum + url = https://github.com/Neargye/magic_enum.git +[submodule "thirdparty/nativefiledialog-extended"] + path = thirdparty/nativefiledialog-extended + url = https://github.com/btzy/nativefiledialog-extended.git +[submodule "thirdparty/imgui"] + path = thirdparty/imgui + url = https://github.com/ocornut/imgui.git +[submodule "thirdparty/unordered_dense"] + path = thirdparty/unordered_dense + url = https://github.com/martinus/unordered_dense.git +[submodule "thirdparty/vorbis"] + path = thirdparty/vorbis + url = https://gitlab.xiph.org/xiph/vorbis.git +[submodule "thirdparty/ogg"] + path = thirdparty/ogg + url = https://gitlab.xiph.org/xiph/ogg.git diff --git a/CMakePresets.json b/CMakePresets.json index c1d215ad..40c089dc 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -16,6 +16,9 @@ "type": "FILEPATH" } }, + "environment": { + "VCPKG_ROOT": "${sourceDir}/thirdparty/vcpkg" + }, "condition": { "type": "equals", "lhs": "${hostSystemName}", diff --git a/UnleashedRecomp/CMakeLists.txt b/UnleashedRecomp/CMakeLists.txt index 3cb11f70..d28a29fb 100644 --- a/UnleashedRecomp/CMakeLists.txt +++ b/UnleashedRecomp/CMakeLists.txt @@ -1,486 +1,476 @@ -project("UnleashedRecomp") -set(TARGET_NAME "SWA") - -if (WIN32) - option(SWA_D3D12 "Add D3D12 support for rendering" ON) -endif() - -option(SWA_XAUDIO2 "Use XAudio2 for audio playback" OFF) - -function(BIN2C) - cmake_parse_arguments(BIN2C_ARGS "" "TARGET_OBJ;SOURCE_FILE;DEST_FILE;ARRAY_NAME;COMPRESSION_TYPE" "" ${ARGN}) - - if(NOT BIN2C_ARGS_TARGET_OBJ) - message(FATAL_ERROR "TARGET_OBJ not specified.") - endif() - - if(NOT BIN2C_ARGS_SOURCE_FILE) - message(FATAL_ERROR "SOURCE_FILE not specified.") - endif() - - if(NOT BIN2C_ARGS_DEST_FILE) - set(BIN2C_ARGS_DEST_FILE "${BIN2C_ARGS_SOURCE_FILE}") - endif() - - if(NOT BIN2C_ARGS_COMPRESSION_TYPE) - set(BIN2C_ARGS_COMPRESSION_TYPE "none") - endif() - - add_custom_command(OUTPUT "${BIN2C_ARGS_DEST_FILE}.c" - COMMAND $ "${BIN2C_ARGS_SOURCE_FILE}" "${BIN2C_ARGS_ARRAY_NAME}" "${BIN2C_ARGS_COMPRESSION_TYPE}" "${BIN2C_ARGS_DEST_FILE}.c" "${BIN2C_ARGS_DEST_FILE}.h" - DEPENDS "${BIN2C_ARGS_SOURCE_FILE}" - BYPRODUCTS "${BIN2C_ARGS_DEST_FILE}.h" - COMMENT "Generating binary header for ${BIN2C_ARGS_SOURCE_FILE}..." - ) - - set_source_files_properties(${BIN2C_ARGS_DEST_FILE}.c PROPERTIES SKIP_PRECOMPILE_HEADERS ON) - target_sources(${BIN2C_ARGS_TARGET_OBJ} PRIVATE ${BIN2C_ARGS_DEST_FILE}.c) -endfunction() - -add_compile_options( - -march=sandybridge - -fno-strict-aliasing - - -Wno-switch - -Wno-unused-function - -Wno-unused-variable - -Wno-unused-but-set-variable - -Wno-void-pointer-to-int-cast - -Wno-int-to-void-pointer-cast - -Wno-invalid-offsetof - -Wno-null-arithmetic +project("UnleashedRecomp") +set(TARGET_NAME "SWA") + +if (WIN32) + option(SWA_D3D12 "Add D3D12 support for rendering" ON) +endif() + +option(SWA_XAUDIO2 "Use XAudio2 for audio playback" OFF) + +function(BIN2C) + cmake_parse_arguments(BIN2C_ARGS "" "TARGET_OBJ;SOURCE_FILE;DEST_FILE;ARRAY_NAME;COMPRESSION_TYPE" "" ${ARGN}) + + if(NOT BIN2C_ARGS_TARGET_OBJ) + message(FATAL_ERROR "TARGET_OBJ not specified.") + endif() + + if(NOT BIN2C_ARGS_SOURCE_FILE) + message(FATAL_ERROR "SOURCE_FILE not specified.") + endif() + + if(NOT BIN2C_ARGS_DEST_FILE) + set(BIN2C_ARGS_DEST_FILE "${BIN2C_ARGS_SOURCE_FILE}") + endif() + + if(NOT BIN2C_ARGS_COMPRESSION_TYPE) + set(BIN2C_ARGS_COMPRESSION_TYPE "none") + endif() + + add_custom_command(OUTPUT "${BIN2C_ARGS_DEST_FILE}.c" + COMMAND $ "${BIN2C_ARGS_SOURCE_FILE}" "${BIN2C_ARGS_ARRAY_NAME}" "${BIN2C_ARGS_COMPRESSION_TYPE}" "${BIN2C_ARGS_DEST_FILE}.c" "${BIN2C_ARGS_DEST_FILE}.h" + DEPENDS "${BIN2C_ARGS_SOURCE_FILE}" + BYPRODUCTS "${BIN2C_ARGS_DEST_FILE}.h" + COMMENT "Generating binary header for ${BIN2C_ARGS_SOURCE_FILE}..." + ) + + set_source_files_properties(${BIN2C_ARGS_DEST_FILE}.c PROPERTIES SKIP_PRECOMPILE_HEADERS ON) + target_sources(${BIN2C_ARGS_TARGET_OBJ} PRIVATE ${BIN2C_ARGS_DEST_FILE}.c) +endfunction() + +add_compile_options( + -march=sandybridge + -fno-strict-aliasing + + -Wno-switch + -Wno-unused-function + -Wno-unused-variable + -Wno-unused-but-set-variable + -Wno-void-pointer-to-int-cast + -Wno-int-to-void-pointer-cast + -Wno-invalid-offsetof + -Wno-null-arithmetic -Wno-null-conversion + -Wno-tautological-undefined-compare ) if (WIN32) add_compile_options(/fp:strict) else() add_compile_options(-ffp-model=strict) -endif() - -add_compile_definitions( - SWA_IMPL - SDL_MAIN_HANDLED - _DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR # Microsoft wtf? - _CRT_SECURE_NO_WARNINGS) - -set(SWA_PRECOMPILED_HEADERS - "stdafx.h" +endif() + +add_compile_definitions( + SWA_IMPL + SDL_MAIN_HANDLED + _DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR # Microsoft wtf? + _CRT_SECURE_NO_WARNINGS) + +set(SWA_PRECOMPILED_HEADERS + "stdafx.h" +) + +set(SWA_KERNEL_CXX_SOURCES + "kernel/imports.cpp" + "kernel/xdm.cpp" + "kernel/heap.cpp" + "kernel/memory.cpp" + "kernel/xam.cpp" + "kernel/io/file_system.cpp" +) + +set(SWA_LOCALE_CXX_SOURCES + "locale/config_locale.cpp" + "locale/locale.cpp" +) + +set(SWA_OS_CXX_SOURCES + "os/logger.cpp" + "os/media.cpp" + "os/process.cpp" + "os/version.cpp" +) + +if (WIN32) + list(APPEND SWA_OS_CXX_SOURCES + "os/win32/logger_win32.cpp" + "os/win32/media_win32.cpp" + "os/win32/process_win32.cpp" + "os/win32/version_win32.cpp" + ) +elseif (CMAKE_SYSTEM_NAME MATCHES "Linux") + list(APPEND SWA_OS_CXX_SOURCES + "os/linux/logger_linux.cpp" + "os/linux/media_linux.cpp" + "os/linux/process_linux.cpp" + "os/linux/version_linux.cpp" + ) +endif() + +set(SWA_CPU_CXX_SOURCES + "cpu/guest_thread.cpp" + "cpu/code_cache.cpp" +) + +set(SWA_GPU_CXX_SOURCES + "gpu/video.cpp" + "gpu/imgui/imgui_common.cpp" + "gpu/imgui/imgui_font_builder.cpp" + "gpu/imgui/imgui_snapshot.cpp" + "gpu/rhi/plume_vulkan.cpp" +) + +if (SWA_D3D12) + list(APPEND SWA_GPU_CXX_SOURCES + "gpu/rhi/plume_d3d12.cpp" + ) +endif() + +set(SWA_APU_CXX_SOURCES + "apu/audio.cpp" + "apu/embedded_player.cpp" +) + +if (SWA_XAUDIO2) + list(APPEND SWA_APU_CXX_SOURCES "apu/driver/xaudio_driver.cpp") +else() + list(APPEND SWA_APU_CXX_SOURCES "apu/driver/miniaudio_driver.cpp") +endif() + +set(SWA_HID_CXX_SOURCES + "hid/hid.cpp" + "hid/driver/sdl_hid.cpp" +) + +set(SWA_PATCHES_CXX_SOURCES + "patches/ui/CHudPause_patches.cpp" + "patches/ui/CTitleStateIntro_patches.cpp" + "patches/ui/CTitleStateMenu_patches.cpp" + "patches/ui/frontend_listener.cpp" + "patches/audio_patches.cpp" + "patches/camera_patches.cpp" + "patches/fps_patches.cpp" + "patches/misc_patches.cpp" + "patches/object_patches.cpp" + "patches/player_patches.cpp" + "patches/resident_patches.cpp" + "patches/video_patches.cpp" +) + +set(SWA_UI_CXX_SOURCES + "ui/achievement_menu.cpp" + "ui/achievement_overlay.cpp" + "ui/installer_wizard.cpp" + "ui/button_guide.cpp" + "ui/fader.cpp" + "ui/message_window.cpp" + "ui/options_menu_thumbnails.cpp" + "ui/options_menu.cpp" + "ui/sdl_listener.cpp" + "ui/game_window.cpp" +) + +set(SWA_INSTALL_CXX_SOURCES + "install/installer.cpp" + "install/iso_file_system.cpp" + "install/memory_mapped_file.cpp" + "install/xcontent_file_system.cpp" + "install/xex_patcher.cpp" + "install/hashes/apotos_shamar.cpp" + "install/hashes/chunnan.cpp" + "install/hashes/empire_city_adabat.cpp" + "install/hashes/game.cpp" + "install/hashes/holoska.cpp" + "install/hashes/mazuri.cpp" + "install/hashes/spagonia.cpp" + "install/hashes/update.cpp" ) -set(SWA_KERNEL_CXX_SOURCES - "kernel/imports.cpp" - "kernel/xdm.cpp" - "kernel/heap.cpp" - "kernel/memory.cpp" - "kernel/xam.cpp" - "kernel/io/file_system.cpp" +set(SWA_USER_CXX_SOURCES + "user/achievement_data.cpp" + "user/config.cpp" ) -set(SWA_LOCALE_CXX_SOURCES - "locale/config_locale.cpp" - "locale/locale.cpp" +set(SWA_THIRDPARTY_SOURCES + "${SWA_THIRDPARTY_ROOT}/imgui/backends/imgui_impl_sdl2.cpp" + "${SWA_THIRDPARTY_ROOT}/imgui/imgui.cpp" + "${SWA_THIRDPARTY_ROOT}/imgui/imgui_demo.cpp" + "${SWA_THIRDPARTY_ROOT}/imgui/imgui_draw.cpp" + "${SWA_THIRDPARTY_ROOT}/imgui/imgui_tables.cpp" + "${SWA_THIRDPARTY_ROOT}/imgui/imgui_widgets.cpp" + "${SWA_THIRDPARTY_ROOT}/libmspack/libmspack/mspack/lzxd.c" + "${SWA_THIRDPARTY_ROOT}/tiny-AES-c/aes.c" + "${SWA_TOOLS_ROOT}/ShaderRecomp/thirdparty/smol-v/source/smolv.cpp" ) -set(SWA_OS_CXX_SOURCES - "os/logger.cpp" - "os/media.cpp" - "os/process.cpp" - "os/version.cpp" -) - -if (WIN32) - list(APPEND SWA_OS_CXX_SOURCES - "os/win32/logger_win32.cpp" - "os/win32/media_win32.cpp" - "os/win32/process_win32.cpp" - "os/win32/version_win32.cpp" - ) -elseif (CMAKE_SYSTEM_NAME MATCHES "Linux") - list(APPEND SWA_OS_CXX_SOURCES - "os/linux/logger_linux.cpp" - "os/linux/media_linux.cpp" - "os/linux/process_linux.cpp" - "os/linux/version_linux.cpp" - ) -endif() - -set(SWA_CPU_CXX_SOURCES - "cpu/guest_thread.cpp" - "cpu/code_cache.cpp" -) - -set(SWA_GPU_CXX_SOURCES - "gpu/video.cpp" - "gpu/imgui/imgui_common.cpp" - "gpu/imgui/imgui_font_builder.cpp" - "gpu/imgui/imgui_snapshot.cpp" - "gpu/rhi/plume_vulkan.cpp" +set(SWA_THIRDPARTY_INCLUDES + "${SWA_THIRDPARTY_ROOT}/concurrentqueue" + "${SWA_THIRDPARTY_ROOT}/ddspp" + "${SWA_THIRDPARTY_ROOT}/imgui" + "${SWA_THIRDPARTY_ROOT}/libmspack/libmspack/mspack" + "${SWA_THIRDPARTY_ROOT}/magic_enum/include" + "${SWA_THIRDPARTY_ROOT}/miniaudio" + "${SWA_THIRDPARTY_ROOT}/stb" + "${SWA_THIRDPARTY_ROOT}/tiny-AES-c" + "${SWA_THIRDPARTY_ROOT}/TinySHA1" + "${SWA_THIRDPARTY_ROOT}/unordered_dense/include" + "${SWA_THIRDPARTY_ROOT}/volk" + "${SWA_THIRDPARTY_ROOT}/Vulkan-Headers/include" + "${SWA_THIRDPARTY_ROOT}/VulkanMemoryAllocator/include" + "${SWA_TOOLS_ROOT}/bc_diff" + "${SWA_TOOLS_ROOT}/ShaderRecomp/thirdparty/smol-v/source" ) if (SWA_D3D12) - list(APPEND SWA_GPU_CXX_SOURCES - "gpu/rhi/plume_d3d12.cpp" - ) -endif() - -set(SWA_APU_CXX_SOURCES - "apu/audio.cpp" - "apu/embedded_player.cpp" -) - -if (SWA_XAUDIO2) - list(APPEND SWA_APU_CXX_SOURCES "apu/driver/xaudio_driver.cpp") -else() - list(APPEND SWA_APU_CXX_SOURCES "apu/driver/miniaudio_driver.cpp") -endif() - -set(SWA_HID_CXX_SOURCES - "hid/hid.cpp" - "hid/driver/sdl_hid.cpp" -) - -set(SWA_PATCHES_CXX_SOURCES - "patches/ui/CHudPause_patches.cpp" - "patches/ui/CTitleStateIntro_patches.cpp" - "patches/ui/CTitleStateMenu_patches.cpp" - "patches/ui/frontend_listener.cpp" - "patches/audio_patches.cpp" - "patches/camera_patches.cpp" - "patches/fps_patches.cpp" - "patches/misc_patches.cpp" - "patches/object_patches.cpp" - "patches/player_patches.cpp" - "patches/resident_patches.cpp" - "patches/video_patches.cpp" -) - -set(SWA_UI_CXX_SOURCES - "ui/achievement_menu.cpp" - "ui/achievement_overlay.cpp" - "ui/installer_wizard.cpp" - "ui/button_guide.cpp" - "ui/fader.cpp" - "ui/message_window.cpp" - "ui/options_menu_thumbnails.cpp" - "ui/options_menu.cpp" - "ui/sdl_listener.cpp" - "ui/game_window.cpp" -) - -set(SWA_INSTALL_CXX_SOURCES - "install/installer.cpp" - "install/iso_file_system.cpp" - "install/memory_mapped_file.cpp" - "install/xcontent_file_system.cpp" - "install/xex_patcher.cpp" - "install/hashes/apotos_shamar.cpp" - "install/hashes/chunnan.cpp" - "install/hashes/empire_city_adabat.cpp" - "install/hashes/game.cpp" - "install/hashes/holoska.cpp" - "install/hashes/mazuri.cpp" - "install/hashes/spagonia.cpp" - "install/hashes/update.cpp" -) - -set(LIBMSPACK_PATH ${SWA_THIRDPARTY_ROOT}/libmspack/libmspack/mspack) - -set(LIBMSPACK_C_SOURCES - ${LIBMSPACK_PATH}/lzxd.c -) - -set_source_files_properties(${LIBMSPACK_C_SOURCES} PROPERTIES SKIP_PRECOMPILE_HEADERS ON) - -set(SMOLV_SOURCE_DIR "${SWA_TOOLS_ROOT}/ShaderRecomp/thirdparty/smol-v/source") -set(BC_DIFF_SOURCE_DIR "${SWA_TOOLS_ROOT}/bc_diff") - -set(MINIAUDIO_INCLUDE_DIRS "${SWA_THIRDPARTY_ROOT}/miniaudio") - -set(SWA_USER_CXX_SOURCES - "user/achievement_data.cpp" - "user/config.cpp" -) - -set(SWA_CXX_SOURCES - "app.cpp" - "exports.cpp" - "main.cpp" - "misc_impl.cpp" - "stdafx.cpp" - - ${SWA_KERNEL_CXX_SOURCES} - ${SWA_LOCALE_CXX_SOURCES} - ${SWA_OS_CXX_SOURCES} - ${SWA_CPU_CXX_SOURCES} - ${SWA_GPU_CXX_SOURCES} - ${SWA_APU_CXX_SOURCES} - ${SWA_HID_CXX_SOURCES} - ${SWA_PATCHES_CXX_SOURCES} - ${SWA_UI_CXX_SOURCES} - ${SWA_INSTALL_CXX_SOURCES} - ${LIBMSPACK_C_SOURCES} - "${SMOLV_SOURCE_DIR}/smolv.cpp" + list(APPEND SWA_THIRDPARTY_INCLUDES "${SWA_THIRDPARTY_ROOT}/D3D12MemoryAllocator/include") + list(APPEND SWA_THIRDPARTY_SOURCES "${SWA_THIRDPARTY_ROOT}/D3D12MemoryAllocator/src/D3D12MemAlloc.cpp") +endif() + +set_source_files_properties(${SWA_THIRDPARTY_SOURCES} PROPERTIES SKIP_PRECOMPILE_HEADERS ON) + +set(SWA_CXX_SOURCES + "app.cpp" + "exports.cpp" + "main.cpp" + "misc_impl.cpp" + "stdafx.cpp" + + ${SWA_KERNEL_CXX_SOURCES} + ${SWA_LOCALE_CXX_SOURCES} + ${SWA_OS_CXX_SOURCES} + ${SWA_CPU_CXX_SOURCES} + ${SWA_GPU_CXX_SOURCES} + ${SWA_APU_CXX_SOURCES} + ${SWA_HID_CXX_SOURCES} + ${SWA_PATCHES_CXX_SOURCES} + ${SWA_UI_CXX_SOURCES} + ${SWA_INSTALL_CXX_SOURCES} ${SWA_USER_CXX_SOURCES} -) - -if (WIN32) - # Set up Win32 resources for application icon. - set(ICON_PATH "${PROJECT_SOURCE_DIR}/../UnleashedRecompResources/images/game_icon.ico") - configure_file("res/win32/res.rc" "${CMAKE_BINARY_DIR}/res.rc" @ONLY) - add_executable(UnleashedRecomp ${SWA_CXX_SOURCES} "${CMAKE_BINARY_DIR}/res.rc") -else() - add_executable(UnleashedRecomp ${SWA_CXX_SOURCES}) -endif() - -set_target_properties(UnleashedRecomp PROPERTIES OUTPUT_NAME ${TARGET_NAME}) - -if (SWA_D3D12) - find_package(directx-headers CONFIG REQUIRED) - find_package(directx12-agility CONFIG REQUIRED) - find_package(d3d12-memory-allocator CONFIG REQUIRED) - target_compile_definitions(UnleashedRecomp PRIVATE SWA_D3D12) -endif() - -find_package(SDL2 CONFIG REQUIRED) -find_package(unordered_dense CONFIG REQUIRED) -find_package(VulkanHeaders CONFIG) -find_package(volk CONFIG REQUIRED) -find_package(VulkanMemoryAllocator CONFIG REQUIRED) -find_package(xxHash CONFIG REQUIRED) -find_package(PkgConfig REQUIRED) -pkg_check_modules(tomlplusplus REQUIRED IMPORTED_TARGET tomlplusplus) + ${SWA_THIRDPARTY_SOURCES} +) + +if (WIN32) + # Set up Win32 resources for application icon. + set(ICON_PATH "${PROJECT_SOURCE_DIR}/../UnleashedRecompResources/images/game_icon.ico") + configure_file("res/win32/res.rc" "${CMAKE_BINARY_DIR}/res.rc" @ONLY) + add_executable(UnleashedRecomp ${SWA_CXX_SOURCES} "${CMAKE_BINARY_DIR}/res.rc") +else() + add_executable(UnleashedRecomp ${SWA_CXX_SOURCES}) +endif() + +set_target_properties(UnleashedRecomp PROPERTIES OUTPUT_NAME ${TARGET_NAME}) + +if (SWA_D3D12) + find_package(directx-headers CONFIG REQUIRED) + find_package(directx12-agility CONFIG REQUIRED) + target_compile_definitions(UnleashedRecomp PRIVATE SWA_D3D12) +endif() + find_package(directx-dxc REQUIRED) -find_package(zstd CONFIG REQUIRED) -find_package(Stb REQUIRED) -find_package(unofficial-concurrentqueue REQUIRED) -find_package(imgui CONFIG REQUIRED) -find_package(magic_enum CONFIG REQUIRED) -find_package(unofficial-tiny-aes-c CONFIG REQUIRED) -find_package(nfd CONFIG REQUIRED) -find_package(Vorbis CONFIG REQUIRED) -find_package(fmt CONFIG REQUIRED) - -if (SWA_D3D12) - file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/D3D12) - add_custom_command(TARGET UnleashedRecomp POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy $ ${CMAKE_CURRENT_BINARY_DIR}/D3D12 - COMMAND ${CMAKE_COMMAND} -E copy $ ${CMAKE_CURRENT_BINARY_DIR}/D3D12 - COMMAND_EXPAND_LISTS - ) - - file(COPY ${PACKAGE_PREFIX_DIR}/bin/dxil.dll DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) - - target_link_libraries(UnleashedRecomp PRIVATE - Microsoft::DirectX-Headers - Microsoft::DirectX-Guids - Microsoft::DirectX12-Agility + +if (SWA_D3D12) + file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/D3D12) + add_custom_command(TARGET UnleashedRecomp POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy $ ${CMAKE_CURRENT_BINARY_DIR}/D3D12 + COMMAND ${CMAKE_COMMAND} -E copy $ ${CMAKE_CURRENT_BINARY_DIR}/D3D12 + COMMAND_EXPAND_LISTS + ) + + file(COPY ${PACKAGE_PREFIX_DIR}/bin/dxil.dll DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) + + target_link_libraries(UnleashedRecomp PRIVATE + Microsoft::DirectX-Headers + Microsoft::DirectX-Guids + Microsoft::DirectX12-Agility Microsoft::DirectXShaderCompiler - unofficial::D3D12MemoryAllocator - dxgi - ) -endif() - -file(CHMOD ${DIRECTX_DXC_TOOL} PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) - -if (WIN32) - target_link_libraries(UnleashedRecomp PRIVATE - comctl32 - ntdll - winmm - Synchronization - ) -endif() - -target_link_libraries(UnleashedRecomp PRIVATE - Vulkan::Headers - volk::volk - volk::volk_headers - GPUOpen::VulkanMemoryAllocator - o1heap - PowerUtils - SDL2::SDL2-static - UnleashedRecompLib - unordered_dense::unordered_dense - xxHash::xxhash - PkgConfig::tomlplusplus - zstd::libzstd_static - unofficial::concurrentqueue::concurrentqueue - imgui::imgui - magic_enum::magic_enum - unofficial::tiny-aes-c::tiny-aes-c - nfd::nfd - msdf-atlas-gen::msdf-atlas-gen - Vorbis::vorbisfile + Microsoft::DXIL + dxgi + ) +endif() + +file(CHMOD ${DIRECTX_DXC_TOOL} PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) + +if (WIN32) + target_link_libraries(UnleashedRecomp PRIVATE + comctl32 + ntdll + winmm + Synchronization + ) +endif() + +target_link_libraries(UnleashedRecomp PRIVATE fmt::fmt -) - -target_include_directories(UnleashedRecomp PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/api - ${SWA_THIRDPARTY_ROOT}/ddspp - ${SWA_THIRDPARTY_ROOT}/TinySHA1 - ${LIBMSPACK_PATH} - ${Stb_INCLUDE_DIR} - ${SMOLV_SOURCE_DIR} - ${MINIAUDIO_INCLUDE_DIRS} - ${BC_DIFF_SOURCE_DIR} -) - -if (CMAKE_SYSTEM_NAME MATCHES "Linux") - find_package(X11 REQUIRED) - target_include_directories(UnleashedRecomp PRIVATE ${X11_INCLUDE_DIR}) - target_link_libraries(UnleashedRecomp PRIVATE ${X11_LIBRARIES}) -endif() - -target_precompile_headers(UnleashedRecomp PUBLIC ${SWA_PRECOMPILED_HEADERS}) - -function(compile_shader FILE_PATH TARGET_NAME) - set(FILE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/gpu/shader/${FILE_PATH}.hlsl) - cmake_path(GET FILE_PATH STEM VARIABLE_NAME) - if (SWA_D3D12) - add_custom_command( - OUTPUT ${FILE_PATH}.dxil.h - COMMAND ${DIRECTX_DXC_TOOL} -T ${TARGET_NAME} -HV 2021 -all-resources-bound -Wno-ignored-attributes -Fh ${FILE_PATH}.dxil.h ${FILE_PATH} -Vn g_${VARIABLE_NAME}_dxil - DEPENDS ${FILE_PATH} - ) - target_sources(UnleashedRecomp PRIVATE ${FILE_PATH}.dxil.h) - endif() - add_custom_command( - OUTPUT ${FILE_PATH}.spirv.h - COMMAND ${DIRECTX_DXC_TOOL} -T ${TARGET_NAME} -HV 2021 -all-resources-bound -spirv -fvk-use-dx-layout ${ARGN} -Fh ${FILE_PATH}.spirv.h ${FILE_PATH} -Vn g_${VARIABLE_NAME}_spirv - DEPENDS ${FILE_PATH} - ) - target_sources(UnleashedRecomp PRIVATE ${FILE_PATH}.spirv.h) -endfunction() - -function(compile_vertex_shader FILE_PATH) - compile_shader(${FILE_PATH} vs_6_0 -fvk-invert-y) -endfunction() - -function(compile_pixel_shader FILE_PATH) - compile_shader(${FILE_PATH} ps_6_0) -endfunction() - -compile_vertex_shader(copy_vs) -compile_pixel_shader(csd_filter_ps) -compile_pixel_shader(enhanced_motion_blur_ps) -compile_pixel_shader(gaussian_blur_3x3) -compile_pixel_shader(gaussian_blur_5x5) -compile_pixel_shader(gaussian_blur_7x7) -compile_pixel_shader(gaussian_blur_9x9) -compile_pixel_shader(gamma_correction_ps) -compile_pixel_shader(imgui_ps) -compile_vertex_shader(imgui_vs) -compile_pixel_shader(movie_ps) -compile_vertex_shader(movie_vs) -compile_pixel_shader(resolve_msaa_depth_2x) -compile_pixel_shader(resolve_msaa_depth_4x) -compile_pixel_shader(resolve_msaa_depth_8x) - -function(generate_aggregate_header INPUT_DIRECTORY OUTPUT_FILE) - get_filename_component(ABS_OUTPUT_FILE "${OUTPUT_FILE}" ABSOLUTE) - file(GLOB_RECURSE HEADER_FILES "${INPUT_DIRECTORY}/*.h") - set(HEADER_CONTENT "#pragma once\n\n") - - foreach(HEADER_FILE IN LISTS HEADER_FILES) - get_filename_component(ABS_HEADER_FILE "${HEADER_FILE}" ABSOLUTE) - if (ABS_HEADER_FILE STREQUAL ABS_OUTPUT_FILE) - continue() - endif() - file(RELATIVE_PATH RELATIVE_HEADER_FILE "${INPUT_DIRECTORY}" "${HEADER_FILE}") - string(APPEND HEADER_CONTENT "#include \"${RELATIVE_HEADER_FILE}\"\n") - endforeach() - - if (EXISTS "${OUTPUT_FILE}") - file(READ "${OUTPUT_FILE}" EXISTING_CONTENT) - if (EXISTING_CONTENT STREQUAL HEADER_CONTENT) - return() - endif() - endif() - - file(WRITE "${OUTPUT_FILE}" "${HEADER_CONTENT}") -endfunction() - -generate_aggregate_header( + libzstd_static + msdf-atlas-gen::msdf-atlas-gen + nfd::nfd + o1heap + PowerUtils + SDL2::SDL2-static + tomlplusplus::tomlplusplus + UnleashedRecompLib + Vorbis::vorbisfile + xxHash::xxhash ) + +target_include_directories(UnleashedRecomp PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/api" - "${CMAKE_CURRENT_SOURCE_DIR}/api/SWA.h" -) - -set(RESOURCES_SOURCE_PATH "${PROJECT_SOURCE_DIR}/../UnleashedRecompResources") -set(RESOURCES_OUTPUT_PATH "${PROJECT_SOURCE_DIR}/res") - -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/bc_diff/button_bc_diff.bin" DEST_FILE "${RESOURCES_OUTPUT_PATH}/bc_diff/button_bc_diff.bin" ARRAY_NAME "g_button_bc_diff" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/font/im_font_atlas.bin" DEST_FILE "${RESOURCES_OUTPUT_PATH}/font/im_font_atlas.bin" ARRAY_NAME "g_im_font_atlas" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/font/im_font_atlas.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/font/im_font_atlas.dds" ARRAY_NAME "g_im_font_atlas_texture" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/achievements_menu/trophy.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/achievements_menu/trophy.dds" ARRAY_NAME "g_trophy" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/common/controller.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/common/controller.dds" ARRAY_NAME "g_controller" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/common/general_window.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/common/general_window.dds" ARRAY_NAME "g_general_window" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/common/kbm.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/common/kbm.dds" ARRAY_NAME "g_kbm" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/common/select_fade.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/common/select_fade.dds" ARRAY_NAME "g_select_fade" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/common/select_fill.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/common/select_fill.dds" ARRAY_NAME "g_select_fill" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/installer/arrow_circle.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/installer/arrow_circle.dds" ARRAY_NAME "g_arrow_circle" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/installer/install_001.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/installer/install_001.dds" ARRAY_NAME "g_install_001" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/installer/install_002.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/installer/install_002.dds" ARRAY_NAME "g_install_002" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/installer/install_003.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/installer/install_003.dds" ARRAY_NAME "g_install_003" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/installer/install_004.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/installer/install_004.dds" ARRAY_NAME "g_install_004" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/installer/install_005.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/installer/install_005.dds" ARRAY_NAME "g_install_005" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/installer/install_006.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/installer/install_006.dds" ARRAY_NAME "g_install_006" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/installer/install_007.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/installer/install_007.dds" ARRAY_NAME "g_install_007" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/installer/install_008.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/installer/install_008.dds" ARRAY_NAME "g_install_008" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/installer/miles_electric_icon.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/installer/miles_electric_icon.dds" ARRAY_NAME "g_miles_electric_icon" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/installer/pulse_install.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/installer/pulse_install.dds" ARRAY_NAME "g_pulse_install" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/achievement_notifications.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/achievement_notifications.dds" ARRAY_NAME "g_achievement_notifications" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/allow_background_input.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/allow_background_input.dds" ARRAY_NAME "g_allow_background_input" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/allow_dpad_movement.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/allow_dpad_movement.dds" ARRAY_NAME "g_allow_dpad_movement" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/antialiasing.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/antialiasing.dds" ARRAY_NAME "g_antialiasing" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/aspect_ratio.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/aspect_ratio.dds" ARRAY_NAME "g_aspect_ratio" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/battle_theme.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/battle_theme.dds" ARRAY_NAME "g_battle_theme" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/brightness.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/brightness.dds" ARRAY_NAME "g_brightness" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/control_tutorial.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/control_tutorial.dds" ARRAY_NAME "g_control_tutorial" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/controller_icons.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/controller_icons.dds" ARRAY_NAME "g_controller_icons" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/default.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/default.dds" ARRAY_NAME "g_default" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/effects_volume.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/effects_volume.dds" ARRAY_NAME "g_effects_volume" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/fps.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/fps.dds" ARRAY_NAME "g_fps" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/fullscreen.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/fullscreen.dds" ARRAY_NAME "g_fullscreen" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/gi_texture_filtering_bilinear.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/gi_texture_filtering_bilinear.dds" ARRAY_NAME "g_gi_texture_filtering_bilinear" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/gi_texture_filtering_bicubic.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/gi_texture_filtering_bicubic.dds" ARRAY_NAME "g_gi_texture_filtering_bicubic" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/hints.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/hints.dds" ARRAY_NAME "g_hints" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/invert_camera_x.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/invert_camera_x.dds" ARRAY_NAME "g_invert_camera_x" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/invert_camera_y.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/invert_camera_y.dds" ARRAY_NAME "g_invert_camera_y" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/language.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/language.dds" ARRAY_NAME "g_language" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/monitor.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/monitor.dds" ARRAY_NAME "g_monitor" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/motion_blur_off.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/motion_blur_off.dds" ARRAY_NAME "g_motion_blur_off" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/motion_blur_original.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/motion_blur_original.dds" ARRAY_NAME "g_motion_blur_original" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/motion_blur_enhanced.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/motion_blur_enhanced.dds" ARRAY_NAME "g_motion_blur_enhanced" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/movie_scale_mode.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/movie_scale_mode.dds" ARRAY_NAME "g_movie_scale_mode" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/music_attenuation.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/music_attenuation.dds" ARRAY_NAME "g_music_attenuation" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/music_volume.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/music_volume.dds" ARRAY_NAME "g_music_volume" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/resolution_scale.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/resolution_scale.dds" ARRAY_NAME "g_resolution_scale" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/shadow_resolution_original.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/shadow_resolution_original.dds" ARRAY_NAME "g_shadow_resolution_original" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/shadow_resolution_x512.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/shadow_resolution_x512.dds" ARRAY_NAME "g_shadow_resolution_x512" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/shadow_resolution_x1024.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/shadow_resolution_x1024.dds" ARRAY_NAME "g_shadow_resolution_x1024" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/shadow_resolution_x2048.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/shadow_resolution_x2048.dds" ARRAY_NAME "g_shadow_resolution_x2048" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/shadow_resolution_x4096.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/shadow_resolution_x4096.dds" ARRAY_NAME "g_shadow_resolution_x4096" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/shadow_resolution_x8192.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/shadow_resolution_x8192.dds" ARRAY_NAME "g_shadow_resolution_x8192" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/subtitles.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/subtitles.dds" ARRAY_NAME "g_subtitles" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/time_of_day_transition_xbox.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/time_of_day_transition_xbox.dds" ARRAY_NAME "g_time_of_day_transition_xbox" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/time_of_day_transition_playstation.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/time_of_day_transition_playstation.dds" ARRAY_NAME "g_time_of_day_transition_playstation" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/transparency_antialiasing_false.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/transparency_antialiasing_false.dds" ARRAY_NAME "g_transparency_antialiasing_false" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/transparency_antialiasing_true.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/transparency_antialiasing_true.dds" ARRAY_NAME "g_transparency_antialiasing_true" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/ui_scale_mode.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/ui_scale_mode.dds" ARRAY_NAME "g_ui_scale_mode" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/voice_language.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/voice_language.dds" ARRAY_NAME "g_voice_language" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/vsync.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/vsync.dds" ARRAY_NAME "g_vsync" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/window_size.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/window_size.dds" ARRAY_NAME "g_window_size" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/xbox_color_correction_false.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/xbox_color_correction_false.dds" ARRAY_NAME "g_xbox_color_correction_false" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/xbox_color_correction_true.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/xbox_color_correction_true.dds" ARRAY_NAME "g_xbox_color_correction_true" COMPRESSION_TYPE "zstd") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/game_icon.bmp" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/game_icon.bmp" ARRAY_NAME "g_game_icon") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/game_icon_night.bmp" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/game_icon_night.bmp" ARRAY_NAME "g_game_icon_night") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/sounds/sys_worldmap_cursor.ogg" DEST_FILE "${RESOURCES_OUTPUT_PATH}/sounds/sys_worldmap_cursor.ogg" ARRAY_NAME "g_sys_worldmap_cursor") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/sounds/sys_worldmap_finaldecide.ogg" DEST_FILE "${RESOURCES_OUTPUT_PATH}/sounds/sys_worldmap_finaldecide.ogg" ARRAY_NAME "g_sys_worldmap_finaldecide") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/sounds/sys_actstg_pausecansel.ogg" DEST_FILE "${RESOURCES_OUTPUT_PATH}/sounds/sys_actstg_pausecansel.ogg" ARRAY_NAME "g_sys_actstg_pausecansel") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/sounds/sys_actstg_pausecursor.ogg" DEST_FILE "${RESOURCES_OUTPUT_PATH}/sounds/sys_actstg_pausecursor.ogg" ARRAY_NAME "g_sys_actstg_pausecursor") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/sounds/sys_actstg_pausedecide.ogg" DEST_FILE "${RESOURCES_OUTPUT_PATH}/sounds/sys_actstg_pausedecide.ogg" ARRAY_NAME "g_sys_actstg_pausedecide") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/sounds/sys_actstg_pausewinclose.ogg" DEST_FILE "${RESOURCES_OUTPUT_PATH}/sounds/sys_actstg_pausewinclose.ogg" ARRAY_NAME "g_sys_actstg_pausewinclose") -BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/sounds/sys_actstg_pausewinopen.ogg" DEST_FILE "${RESOURCES_OUTPUT_PATH}/sounds/sys_actstg_pausewinopen.ogg" ARRAY_NAME "g_sys_actstg_pausewinopen") - + ${SWA_THIRDPARTY_INCLUDES} +) + +if (CMAKE_SYSTEM_NAME MATCHES "Linux") + find_package(X11 REQUIRED) + target_include_directories(UnleashedRecomp PRIVATE ${X11_INCLUDE_DIR}) + target_link_libraries(UnleashedRecomp PRIVATE ${X11_LIBRARIES}) +endif() + +target_precompile_headers(UnleashedRecomp PUBLIC ${SWA_PRECOMPILED_HEADERS}) + +function(compile_shader FILE_PATH TARGET_NAME) + set(FILE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/gpu/shader/${FILE_PATH}.hlsl) + cmake_path(GET FILE_PATH STEM VARIABLE_NAME) + if (SWA_D3D12) + add_custom_command( + OUTPUT ${FILE_PATH}.dxil.h + COMMAND ${DIRECTX_DXC_TOOL} -T ${TARGET_NAME} -HV 2021 -all-resources-bound -Wno-ignored-attributes -Fh ${FILE_PATH}.dxil.h ${FILE_PATH} -Vn g_${VARIABLE_NAME}_dxil + DEPENDS ${FILE_PATH} + ) + target_sources(UnleashedRecomp PRIVATE ${FILE_PATH}.dxil.h) + endif() + add_custom_command( + OUTPUT ${FILE_PATH}.spirv.h + COMMAND ${DIRECTX_DXC_TOOL} -T ${TARGET_NAME} -HV 2021 -all-resources-bound -spirv -fvk-use-dx-layout ${ARGN} -Fh ${FILE_PATH}.spirv.h ${FILE_PATH} -Vn g_${VARIABLE_NAME}_spirv + DEPENDS ${FILE_PATH} + ) + target_sources(UnleashedRecomp PRIVATE ${FILE_PATH}.spirv.h) +endfunction() + +function(compile_vertex_shader FILE_PATH) + compile_shader(${FILE_PATH} vs_6_0 -fvk-invert-y) +endfunction() + +function(compile_pixel_shader FILE_PATH) + compile_shader(${FILE_PATH} ps_6_0) +endfunction() + +compile_vertex_shader(copy_vs) +compile_pixel_shader(csd_filter_ps) +compile_pixel_shader(enhanced_motion_blur_ps) +compile_pixel_shader(gaussian_blur_3x3) +compile_pixel_shader(gaussian_blur_5x5) +compile_pixel_shader(gaussian_blur_7x7) +compile_pixel_shader(gaussian_blur_9x9) +compile_pixel_shader(gamma_correction_ps) +compile_pixel_shader(imgui_ps) +compile_vertex_shader(imgui_vs) +compile_pixel_shader(movie_ps) +compile_vertex_shader(movie_vs) +compile_pixel_shader(resolve_msaa_depth_2x) +compile_pixel_shader(resolve_msaa_depth_4x) +compile_pixel_shader(resolve_msaa_depth_8x) + +function(generate_aggregate_header INPUT_DIRECTORY OUTPUT_FILE) + get_filename_component(ABS_OUTPUT_FILE "${OUTPUT_FILE}" ABSOLUTE) + file(GLOB_RECURSE HEADER_FILES "${INPUT_DIRECTORY}/*.h") + set(HEADER_CONTENT "#pragma once\n\n") + + foreach(HEADER_FILE IN LISTS HEADER_FILES) + get_filename_component(ABS_HEADER_FILE "${HEADER_FILE}" ABSOLUTE) + if (ABS_HEADER_FILE STREQUAL ABS_OUTPUT_FILE) + continue() + endif() + file(RELATIVE_PATH RELATIVE_HEADER_FILE "${INPUT_DIRECTORY}" "${HEADER_FILE}") + string(APPEND HEADER_CONTENT "#include \"${RELATIVE_HEADER_FILE}\"\n") + endforeach() + + if (EXISTS "${OUTPUT_FILE}") + file(READ "${OUTPUT_FILE}" EXISTING_CONTENT) + if (EXISTING_CONTENT STREQUAL HEADER_CONTENT) + return() + endif() + endif() + + file(WRITE "${OUTPUT_FILE}" "${HEADER_CONTENT}") +endfunction() + +generate_aggregate_header( + "${CMAKE_CURRENT_SOURCE_DIR}/api" + "${CMAKE_CURRENT_SOURCE_DIR}/api/SWA.h" +) + +set(RESOURCES_SOURCE_PATH "${PROJECT_SOURCE_DIR}/../UnleashedRecompResources") +set(RESOURCES_OUTPUT_PATH "${PROJECT_SOURCE_DIR}/res") + +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/bc_diff/button_bc_diff.bin" DEST_FILE "${RESOURCES_OUTPUT_PATH}/bc_diff/button_bc_diff.bin" ARRAY_NAME "g_button_bc_diff" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/font/im_font_atlas.bin" DEST_FILE "${RESOURCES_OUTPUT_PATH}/font/im_font_atlas.bin" ARRAY_NAME "g_im_font_atlas" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/font/im_font_atlas.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/font/im_font_atlas.dds" ARRAY_NAME "g_im_font_atlas_texture" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/achievements_menu/trophy.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/achievements_menu/trophy.dds" ARRAY_NAME "g_trophy" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/common/controller.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/common/controller.dds" ARRAY_NAME "g_controller" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/common/general_window.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/common/general_window.dds" ARRAY_NAME "g_general_window" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/common/kbm.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/common/kbm.dds" ARRAY_NAME "g_kbm" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/common/select_fade.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/common/select_fade.dds" ARRAY_NAME "g_select_fade" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/common/select_fill.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/common/select_fill.dds" ARRAY_NAME "g_select_fill" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/installer/arrow_circle.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/installer/arrow_circle.dds" ARRAY_NAME "g_arrow_circle" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/installer/install_001.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/installer/install_001.dds" ARRAY_NAME "g_install_001" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/installer/install_002.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/installer/install_002.dds" ARRAY_NAME "g_install_002" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/installer/install_003.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/installer/install_003.dds" ARRAY_NAME "g_install_003" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/installer/install_004.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/installer/install_004.dds" ARRAY_NAME "g_install_004" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/installer/install_005.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/installer/install_005.dds" ARRAY_NAME "g_install_005" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/installer/install_006.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/installer/install_006.dds" ARRAY_NAME "g_install_006" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/installer/install_007.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/installer/install_007.dds" ARRAY_NAME "g_install_007" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/installer/install_008.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/installer/install_008.dds" ARRAY_NAME "g_install_008" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/installer/miles_electric_icon.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/installer/miles_electric_icon.dds" ARRAY_NAME "g_miles_electric_icon" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/installer/pulse_install.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/installer/pulse_install.dds" ARRAY_NAME "g_pulse_install" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/achievement_notifications.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/achievement_notifications.dds" ARRAY_NAME "g_achievement_notifications" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/allow_background_input.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/allow_background_input.dds" ARRAY_NAME "g_allow_background_input" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/allow_dpad_movement.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/allow_dpad_movement.dds" ARRAY_NAME "g_allow_dpad_movement" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/antialiasing.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/antialiasing.dds" ARRAY_NAME "g_antialiasing" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/aspect_ratio.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/aspect_ratio.dds" ARRAY_NAME "g_aspect_ratio" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/battle_theme.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/battle_theme.dds" ARRAY_NAME "g_battle_theme" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/brightness.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/brightness.dds" ARRAY_NAME "g_brightness" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/control_tutorial.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/control_tutorial.dds" ARRAY_NAME "g_control_tutorial" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/controller_icons.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/controller_icons.dds" ARRAY_NAME "g_controller_icons" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/default.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/default.dds" ARRAY_NAME "g_default" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/effects_volume.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/effects_volume.dds" ARRAY_NAME "g_effects_volume" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/fps.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/fps.dds" ARRAY_NAME "g_fps" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/fullscreen.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/fullscreen.dds" ARRAY_NAME "g_fullscreen" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/gi_texture_filtering_bilinear.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/gi_texture_filtering_bilinear.dds" ARRAY_NAME "g_gi_texture_filtering_bilinear" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/gi_texture_filtering_bicubic.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/gi_texture_filtering_bicubic.dds" ARRAY_NAME "g_gi_texture_filtering_bicubic" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/hints.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/hints.dds" ARRAY_NAME "g_hints" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/invert_camera_x.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/invert_camera_x.dds" ARRAY_NAME "g_invert_camera_x" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/invert_camera_y.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/invert_camera_y.dds" ARRAY_NAME "g_invert_camera_y" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/language.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/language.dds" ARRAY_NAME "g_language" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/monitor.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/monitor.dds" ARRAY_NAME "g_monitor" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/motion_blur_off.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/motion_blur_off.dds" ARRAY_NAME "g_motion_blur_off" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/motion_blur_original.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/motion_blur_original.dds" ARRAY_NAME "g_motion_blur_original" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/motion_blur_enhanced.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/motion_blur_enhanced.dds" ARRAY_NAME "g_motion_blur_enhanced" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/movie_scale_mode.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/movie_scale_mode.dds" ARRAY_NAME "g_movie_scale_mode" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/music_attenuation.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/music_attenuation.dds" ARRAY_NAME "g_music_attenuation" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/music_volume.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/music_volume.dds" ARRAY_NAME "g_music_volume" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/resolution_scale.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/resolution_scale.dds" ARRAY_NAME "g_resolution_scale" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/shadow_resolution_original.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/shadow_resolution_original.dds" ARRAY_NAME "g_shadow_resolution_original" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/shadow_resolution_x512.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/shadow_resolution_x512.dds" ARRAY_NAME "g_shadow_resolution_x512" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/shadow_resolution_x1024.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/shadow_resolution_x1024.dds" ARRAY_NAME "g_shadow_resolution_x1024" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/shadow_resolution_x2048.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/shadow_resolution_x2048.dds" ARRAY_NAME "g_shadow_resolution_x2048" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/shadow_resolution_x4096.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/shadow_resolution_x4096.dds" ARRAY_NAME "g_shadow_resolution_x4096" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/shadow_resolution_x8192.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/shadow_resolution_x8192.dds" ARRAY_NAME "g_shadow_resolution_x8192" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/subtitles.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/subtitles.dds" ARRAY_NAME "g_subtitles" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/time_of_day_transition_xbox.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/time_of_day_transition_xbox.dds" ARRAY_NAME "g_time_of_day_transition_xbox" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/time_of_day_transition_playstation.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/time_of_day_transition_playstation.dds" ARRAY_NAME "g_time_of_day_transition_playstation" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/transparency_antialiasing_false.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/transparency_antialiasing_false.dds" ARRAY_NAME "g_transparency_antialiasing_false" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/transparency_antialiasing_true.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/transparency_antialiasing_true.dds" ARRAY_NAME "g_transparency_antialiasing_true" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/ui_scale_mode.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/ui_scale_mode.dds" ARRAY_NAME "g_ui_scale_mode" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/voice_language.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/voice_language.dds" ARRAY_NAME "g_voice_language" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/vsync.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/vsync.dds" ARRAY_NAME "g_vsync" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/window_size.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/window_size.dds" ARRAY_NAME "g_window_size" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/xbox_color_correction_false.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/xbox_color_correction_false.dds" ARRAY_NAME "g_xbox_color_correction_false" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/options_menu/thumbnails/xbox_color_correction_true.dds" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/options_menu/thumbnails/xbox_color_correction_true.dds" ARRAY_NAME "g_xbox_color_correction_true" COMPRESSION_TYPE "zstd") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/game_icon.bmp" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/game_icon.bmp" ARRAY_NAME "g_game_icon") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/game_icon_night.bmp" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/game_icon_night.bmp" ARRAY_NAME "g_game_icon_night") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/sounds/sys_worldmap_cursor.ogg" DEST_FILE "${RESOURCES_OUTPUT_PATH}/sounds/sys_worldmap_cursor.ogg" ARRAY_NAME "g_sys_worldmap_cursor") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/sounds/sys_worldmap_finaldecide.ogg" DEST_FILE "${RESOURCES_OUTPUT_PATH}/sounds/sys_worldmap_finaldecide.ogg" ARRAY_NAME "g_sys_worldmap_finaldecide") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/sounds/sys_actstg_pausecansel.ogg" DEST_FILE "${RESOURCES_OUTPUT_PATH}/sounds/sys_actstg_pausecansel.ogg" ARRAY_NAME "g_sys_actstg_pausecansel") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/sounds/sys_actstg_pausecursor.ogg" DEST_FILE "${RESOURCES_OUTPUT_PATH}/sounds/sys_actstg_pausecursor.ogg" ARRAY_NAME "g_sys_actstg_pausecursor") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/sounds/sys_actstg_pausedecide.ogg" DEST_FILE "${RESOURCES_OUTPUT_PATH}/sounds/sys_actstg_pausedecide.ogg" ARRAY_NAME "g_sys_actstg_pausedecide") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/sounds/sys_actstg_pausewinclose.ogg" DEST_FILE "${RESOURCES_OUTPUT_PATH}/sounds/sys_actstg_pausewinclose.ogg" ARRAY_NAME "g_sys_actstg_pausewinclose") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/sounds/sys_actstg_pausewinopen.ogg" DEST_FILE "${RESOURCES_OUTPUT_PATH}/sounds/sys_actstg_pausewinopen.ogg" ARRAY_NAME "g_sys_actstg_pausewinopen") + diff --git a/UnleashedRecomp/gpu/rhi/plume_vulkan.h b/UnleashedRecomp/gpu/rhi/plume_vulkan.h index 0e93536e..b38251e4 100644 --- a/UnleashedRecomp/gpu/rhi/plume_vulkan.h +++ b/UnleashedRecomp/gpu/rhi/plume_vulkan.h @@ -22,9 +22,18 @@ #define VK_USE_PLATFORM_XLIB_KHR #endif -#include "volk.h" +#include -#include "vk_mem_alloc.h" +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wnullability-completeness" +#endif + +#include + +#ifdef __clang__ +#pragma clang diagnostic pop +#endif namespace plume { struct VulkanCommandQueue; diff --git a/UnleashedRecomp/gpu/video.cpp b/UnleashedRecomp/gpu/video.cpp index 4aee20cf..2e9ebba2 100644 --- a/UnleashedRecomp/gpu/video.cpp +++ b/UnleashedRecomp/gpu/video.cpp @@ -31,7 +31,7 @@ #include #if defined(ASYNC_PSO_DEBUG) || defined(PSO_CACHING) -#include +#include #endif #include "../../tools/ShaderRecomp/ShaderRecomp/shader_common.h" diff --git a/UnleashedRecomp/gpu/video.h b/UnleashedRecomp/gpu/video.h index a77af7de..7dd293c7 100644 --- a/UnleashedRecomp/gpu/video.h +++ b/UnleashedRecomp/gpu/video.h @@ -1,7 +1,7 @@ #pragma once //#define ASYNC_PSO_DEBUG -//#define PSO_CACHING +#define PSO_CACHING #include "rhi/plume_render_interface.h" diff --git a/UnleashedRecomp/stdafx.h b/UnleashedRecomp/stdafx.h index dc8ce023..28096160 100644 --- a/UnleashedRecomp/stdafx.h +++ b/UnleashedRecomp/stdafx.h @@ -34,11 +34,11 @@ using Microsoft::WRL::ComPtr; #include #include #include -#include +#include #include #include #include -#include +#include #include #include #include diff --git a/UnleashedRecomp/user/config.h b/UnleashedRecomp/user/config.h index c31d763a..fdba970f 100644 --- a/UnleashedRecomp/user/config.h +++ b/UnleashedRecomp/user/config.h @@ -662,4 +662,4 @@ public: static void Load(); static void Save(); -}; \ No newline at end of file +}; diff --git a/thirdparty/CMakeLists.txt b/thirdparty/CMakeLists.txt index 914095fe..28f000da 100644 --- a/thirdparty/CMakeLists.txt +++ b/thirdparty/CMakeLists.txt @@ -3,5 +3,9 @@ set(MSDF_ATLAS_USE_SKIA OFF) set(MSDF_ATLAS_NO_ARTERY_FONT ON) set(MSDFGEN_DISABLE_PNG ON) -add_subdirectory(${SWA_THIRDPARTY_ROOT}/o1heap) -add_subdirectory(${SWA_THIRDPARTY_ROOT}/msdf-atlas-gen) +add_subdirectory("${SWA_THIRDPARTY_ROOT}/msdf-atlas-gen") +add_subdirectory("${SWA_THIRDPARTY_ROOT}/nativefiledialog-extended") +add_subdirectory("${SWA_THIRDPARTY_ROOT}/ogg") +add_subdirectory("${SWA_THIRDPARTY_ROOT}/o1heap") +add_subdirectory("${SWA_THIRDPARTY_ROOT}/SDL") +add_subdirectory("${SWA_THIRDPARTY_ROOT}/vorbis") diff --git a/thirdparty/D3D12MemoryAllocator b/thirdparty/D3D12MemoryAllocator new file mode 160000 index 00000000..e00c4a7c --- /dev/null +++ b/thirdparty/D3D12MemoryAllocator @@ -0,0 +1 @@ +Subproject commit e00c4a7c85cf9c28c6f4a6cc75032736f416410f diff --git a/thirdparty/SDL b/thirdparty/SDL new file mode 160000 index 00000000..1edaad17 --- /dev/null +++ b/thirdparty/SDL @@ -0,0 +1 @@ +Subproject commit 1edaad17218d67b567c149badce9ef0fc67f65fa diff --git a/thirdparty/Vulkan-Headers b/thirdparty/Vulkan-Headers new file mode 160000 index 00000000..14345dab --- /dev/null +++ b/thirdparty/Vulkan-Headers @@ -0,0 +1 @@ +Subproject commit 14345dab231912ee9601136e96ca67a6e1f632e7 diff --git a/thirdparty/VulkanMemoryAllocator b/thirdparty/VulkanMemoryAllocator new file mode 160000 index 00000000..1c35ba99 --- /dev/null +++ b/thirdparty/VulkanMemoryAllocator @@ -0,0 +1 @@ +Subproject commit 1c35ba99ce775f8342d87a83a3f0f696f99c2a39 diff --git a/thirdparty/concurrentqueue b/thirdparty/concurrentqueue new file mode 160000 index 00000000..6dd38b8a --- /dev/null +++ b/thirdparty/concurrentqueue @@ -0,0 +1 @@ +Subproject commit 6dd38b8a1dbaa7863aa907045f32308a56a6ff5d diff --git a/thirdparty/imgui b/thirdparty/imgui new file mode 160000 index 00000000..8199457a --- /dev/null +++ b/thirdparty/imgui @@ -0,0 +1 @@ +Subproject commit 8199457a7d9e453f8d3d9cadc14683fb54a858b5 diff --git a/thirdparty/magic_enum b/thirdparty/magic_enum new file mode 160000 index 00000000..1a1824df --- /dev/null +++ b/thirdparty/magic_enum @@ -0,0 +1 @@ +Subproject commit 1a1824df7ac798177a521eed952720681b0bf482 diff --git a/thirdparty/nativefiledialog-extended b/thirdparty/nativefiledialog-extended new file mode 160000 index 00000000..388549a5 --- /dev/null +++ b/thirdparty/nativefiledialog-extended @@ -0,0 +1 @@ +Subproject commit 388549a5badaa7cbd138f5f189f50c67d5bf060c diff --git a/thirdparty/ogg b/thirdparty/ogg new file mode 160000 index 00000000..7cf42ea1 --- /dev/null +++ b/thirdparty/ogg @@ -0,0 +1 @@ +Subproject commit 7cf42ea17aef7bc1b7b21af70724840a96c2e7d0 diff --git a/thirdparty/stb b/thirdparty/stb new file mode 160000 index 00000000..5c205738 --- /dev/null +++ b/thirdparty/stb @@ -0,0 +1 @@ +Subproject commit 5c205738c191bcb0abc65c4febfa9bd25ff35234 diff --git a/thirdparty/tiny-AES-c b/thirdparty/tiny-AES-c new file mode 160000 index 00000000..23856752 --- /dev/null +++ b/thirdparty/tiny-AES-c @@ -0,0 +1 @@ +Subproject commit 23856752fbd139da0b8ca6e471a13d5bcc99a08d diff --git a/thirdparty/unordered_dense b/thirdparty/unordered_dense new file mode 160000 index 00000000..d911053e --- /dev/null +++ b/thirdparty/unordered_dense @@ -0,0 +1 @@ +Subproject commit d911053e390816ecc5dedd5a9d6b4bb5ed92b4c9 diff --git a/thirdparty/vcpkg b/thirdparty/vcpkg index 5b55679a..b322364f 160000 --- a/thirdparty/vcpkg +++ b/thirdparty/vcpkg @@ -1 +1 @@ -Subproject commit 5b55679a998403bcd570c0eb867a8bd378f21bcb +Subproject commit b322364f06308bdd24823f9d8f03fe0cc86fd46f diff --git a/thirdparty/volk b/thirdparty/volk new file mode 160000 index 00000000..447e21b5 --- /dev/null +++ b/thirdparty/volk @@ -0,0 +1 @@ +Subproject commit 447e21b5d92ed8d5271b0d39b071f938fcfa875f diff --git a/thirdparty/vorbis b/thirdparty/vorbis new file mode 160000 index 00000000..84c02369 --- /dev/null +++ b/thirdparty/vorbis @@ -0,0 +1 @@ +Subproject commit 84c023699cdf023a32fa4ded32019f194afcdad0 diff --git a/tools/PowerRecomp b/tools/PowerRecomp index b9c6b36a..14b7fd34 160000 --- a/tools/PowerRecomp +++ b/tools/PowerRecomp @@ -1 +1 @@ -Subproject commit b9c6b36a4d9c18134face14976e5e9c98cf5f113 +Subproject commit 14b7fd3445857a44ad91b832592cffb069451e4f diff --git a/tools/ShaderRecomp b/tools/ShaderRecomp index 20bf4654..cf44a5e6 160000 --- a/tools/ShaderRecomp +++ b/tools/ShaderRecomp @@ -1 +1 @@ -Subproject commit 20bf4654480aad68940c2bf019f2fc7cdde60b79 +Subproject commit cf44a5e6fb7c9931888ee4e6506109787141f87e diff --git a/tools/bc_diff/CMakeLists.txt b/tools/bc_diff/CMakeLists.txt index 5bba3025..cfe70d44 100644 --- a/tools/bc_diff/CMakeLists.txt +++ b/tools/bc_diff/CMakeLists.txt @@ -6,5 +6,4 @@ set(CMAKE_CXX_STANDARD 17) add_executable(bc_diff "bc_diff.cpp") add_compile_definitions(bc_diff PRIVATE _CRT_SECURE_NO_WARNINGS) -find_package(xxHash CONFIG REQUIRED) target_link_libraries(bc_diff PRIVATE xxHash::xxhash) diff --git a/tools/file_to_c/CMakeLists.txt b/tools/file_to_c/CMakeLists.txt index 96bfb044..6fbafba6 100644 --- a/tools/file_to_c/CMakeLists.txt +++ b/tools/file_to_c/CMakeLists.txt @@ -7,5 +7,4 @@ set(CMAKE_CXX_STANDARD 17) add_executable(file_to_c "file_to_c.cpp") -find_package(zstd CONFIG REQUIRED) -target_link_libraries(file_to_c PRIVATE $,zstd::libzstd_static,zstd::libzstd>) +target_link_libraries(file_to_c PRIVATE $,libzstd_static,libzstd_shared>) diff --git a/tools/fshasher/CMakeLists.txt b/tools/fshasher/CMakeLists.txt index ca85067e..f30e4852 100644 --- a/tools/fshasher/CMakeLists.txt +++ b/tools/fshasher/CMakeLists.txt @@ -2,6 +2,4 @@ project("fshasher") add_executable(fshasher "fshasher.cpp") -find_package(xxHash CONFIG REQUIRED) - target_link_libraries(fshasher PRIVATE xxHash::xxhash) diff --git a/vcpkg.json b/vcpkg.json index 03d42638..d930d54c 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -1,5 +1,5 @@ { - "builtin-baseline": "5b55679a998403bcd570c0eb867a8bd378f21bcb", + "builtin-baseline": "b322364f06308bdd24823f9d8f03fe0cc86fd46f", "dependencies": [ { "name": "directx-headers", @@ -9,34 +9,7 @@ "name": "directx12-agility", "platform": "windows" }, - { - "name": "d3d12-memory-allocator", - "platform": "windows" - }, - { - "name": "pkgconf", - "platform": "windows" - }, - { - "name": "imgui", - "features": [ "sdl2-binding" ] - }, "directx-dxc", - "sdl2", - "unordered-dense", - "volk", - "vulkan-headers", - "vulkan-memory-allocator", - "xxhash", - "tomlplusplus", - "zstd", - "stb", - "concurrentqueue", - "tiny-aes-c", - "magic-enum", - "nativefiledialog-extended", - "freetype", - "libvorbis", - "fmt" + "freetype" ] }