x86 msvc build fix. Build 32bit SDL. Force renderer type at startup
This commit is contained in:
parent
72a61786f4
commit
8259b8ba02
|
@ -127,11 +127,15 @@ if(WIN32)
|
||||||
execute_process(COMMAND git apply -p1 ${CMAKE_CURRENT_SOURCE_DIR}/core/deps/patches/SDL.patch
|
execute_process(COMMAND git apply -p1 ${CMAKE_CURRENT_SOURCE_DIR}/core/deps/patches/SDL.patch
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/core/deps/SDL)
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/core/deps/SDL)
|
||||||
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/core/deps/SDL")
|
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/core/deps/SDL")
|
||||||
|
if(MSVC)
|
||||||
|
set(SDL_CMAKE_ARCH_ARG -A ${CMAKE_GENERATOR_PLATFORM})
|
||||||
|
endif()
|
||||||
execute_process(COMMAND ${CMAKE_COMMAND}
|
execute_process(COMMAND ${CMAKE_COMMAND}
|
||||||
"-DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/core/deps/SDL"
|
"-DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/core/deps/SDL"
|
||||||
|
-DLIBC=ON
|
||||||
-DBUILD_SHARED_LIBS=OFF
|
-DBUILD_SHARED_LIBS=OFF
|
||||||
-G "${CMAKE_GENERATOR}"
|
-G "${CMAKE_GENERATOR}"
|
||||||
$<$<BOOL:MSVC>:-A ${CMAKE_GENERATOR_PLATFORM}>
|
${SDL_CMAKE_ARCH_ARG}
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/core/deps/SDL"
|
"${CMAKE_CURRENT_SOURCE_DIR}/core/deps/SDL"
|
||||||
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/core/deps/SDL")
|
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/core/deps/SDL")
|
||||||
execute_process(COMMAND ${CMAKE_COMMAND} --build "${CMAKE_CURRENT_BINARY_DIR}/core/deps/SDL" --config Release --target install)
|
execute_process(COMMAND ${CMAKE_COMMAND} --build "${CMAKE_CURRENT_BINARY_DIR}/core/deps/SDL" --config Release --target install)
|
||||||
|
@ -142,7 +146,7 @@ if(MINGW)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT ANDROID)
|
if(NOT ANDROID)
|
||||||
find_package(SDL2 QUIET HINTS "${CMAKE_CURRENT_BINARY_DIR}/core/deps/SDL")
|
find_package(SDL2 HINTS "${CMAKE_CURRENT_BINARY_DIR}/core/deps/SDL")
|
||||||
endif()
|
endif()
|
||||||
if(SDL2_FOUND)
|
if(SDL2_FOUND)
|
||||||
target_compile_definitions(${PROJECT_NAME} PRIVATE USE_SDL USE_SDL_AUDIO)
|
target_compile_definitions(${PROJECT_NAME} PRIVATE USE_SDL USE_SDL_AUDIO)
|
||||||
|
|
|
@ -405,6 +405,9 @@ int reicast_init(int argc, char* argv[])
|
||||||
LogManager::Init();
|
LogManager::Init();
|
||||||
config::Settings::instance().load(false);
|
config::Settings::instance().load(false);
|
||||||
}
|
}
|
||||||
|
// Force the renderer type now since we're not switching
|
||||||
|
if (renderer_changed != -1)
|
||||||
|
config::RendererType = (RenderType)renderer_changed;
|
||||||
|
|
||||||
os_CreateWindow();
|
os_CreateWindow();
|
||||||
os_SetupInput();
|
os_SetupInput();
|
||||||
|
|
|
@ -716,7 +716,7 @@ bool VulkanContext::Init()
|
||||||
VkSurfaceKHR surface;
|
VkSurfaceKHR surface;
|
||||||
if (SDL_Vulkan_CreateSurface((SDL_Window *)window, (VkInstance)*instance, &surface) == 0)
|
if (SDL_Vulkan_CreateSurface((SDL_Window *)window, (VkInstance)*instance, &surface) == 0)
|
||||||
return false;
|
return false;
|
||||||
this->surface.reset(surface);
|
this->surface.reset(vk::SurfaceKHR(surface));
|
||||||
#elif defined(_WIN32)
|
#elif defined(_WIN32)
|
||||||
vk::Win32SurfaceCreateInfoKHR createInfo(vk::Win32SurfaceCreateFlagsKHR(), GetModuleHandle(NULL), (HWND)window);
|
vk::Win32SurfaceCreateInfoKHR createInfo(vk::Win32SurfaceCreateFlagsKHR(), GetModuleHandle(NULL), (HWND)window);
|
||||||
surface = instance->createWin32SurfaceKHRUnique(createInfo);
|
surface = instance->createWin32SurfaceKHRUnique(createInfo);
|
||||||
|
@ -935,7 +935,7 @@ void VulkanContext::Term()
|
||||||
#ifndef USE_SDL
|
#ifndef USE_SDL
|
||||||
surface.reset();
|
surface.reset();
|
||||||
#else
|
#else
|
||||||
::vkDestroySurfaceKHR(*instance, surface.release(), nullptr);
|
::vkDestroySurfaceKHR((VkInstance)*instance, (VkSurfaceKHR)surface.release(), nullptr);
|
||||||
#endif
|
#endif
|
||||||
pipelineCache.reset();
|
pipelineCache.reset();
|
||||||
device.reset();
|
device.reset();
|
||||||
|
|
|
@ -735,27 +735,17 @@ int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi
|
||||||
#else
|
#else
|
||||||
SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)&ExeptionHandler);
|
SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)&ExeptionHandler);
|
||||||
#endif
|
#endif
|
||||||
#ifndef __GNUC__
|
if (reicast_init(argc, argv) != 0)
|
||||||
__try
|
die("Flycast initialization failed");
|
||||||
|
|
||||||
|
#ifdef _WIN64
|
||||||
|
setup_seh();
|
||||||
#endif
|
#endif
|
||||||
{
|
|
||||||
if (reicast_init(argc, argv) != 0)
|
|
||||||
die("Flycast initialization failed");
|
|
||||||
|
|
||||||
#ifdef _WIN64
|
mainui_loop();
|
||||||
setup_seh();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
mainui_loop();
|
dc_term();
|
||||||
|
|
||||||
dc_term();
|
|
||||||
}
|
|
||||||
#ifndef __GNUC__
|
|
||||||
__except( ExeptionHandler(GetExceptionInformation()) )
|
|
||||||
{
|
|
||||||
ERROR_LOG(COMMON, "Unhandled exception - UI thread halted...");
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
SetUnhandledExceptionFilter(0);
|
SetUnhandledExceptionFilter(0);
|
||||||
#ifdef USE_SDL
|
#ifdef USE_SDL
|
||||||
sdl_window_destroy();
|
sdl_window_destroy();
|
||||||
|
|
Loading…
Reference in New Issue