diff --git a/CMakeLists.txt b/CMakeLists.txt index a52c17e1..d6d46682 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,10 +1,13 @@ cmake_minimum_required(VERSION 3.24) +set(CMAKE_C_COMPILER clang-cl) +set(CMAKE_CXX_COMPILER clang-cl) + project(MinecraftConsoles LANGUAGES C CXX RC ASM_MASM) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) -# set(CMAKE_CXX_COMPILER clang-cl) + set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE) if(NOT WIN32 AND NOT CMAKE_CROSSCOMPILING) @@ -26,15 +29,13 @@ function(configure_compiler_target target) # MSVC and compatible compilers (like Clang-cl) if (MSVC) target_compile_options(${target} PRIVATE - $<$,$>:/W3> - $<$,$>:/W0> + $<$,$>:/W3 /Od> + $<$,$>:/W0 /O2 /Oi /GT /GF /Gw /Gy> $<$:/MP> $<$:/FS> $<$:/GS> $<$:/EHsc> $<$:/GR> - $<$,$>:/Od> - $<$,$>:/O2 /Oi /GT /GF> ) endif() @@ -44,23 +45,21 @@ function(configure_compiler_target target) $<$,$>:/GL> ) target_link_options(${target} PRIVATE - $<$:/LTCG:incremental> + $<$:/LTCG:incremental /OPT:REF /OPT:ICF> ) endif() # Clang - if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC") target_compile_options(${target} PRIVATE - $<$,$>:-O0 -Wall> - $<$,$>:-O2 -w -flto> + $<$,$>:/clang:-O3 /fp:fast> ) target_link_options(${target} PRIVATE - $<$:-flto> + $<$:/OPT:REF /OPT:ICF> ) endif() endfunction() - # --- # Configuration # --- diff --git a/Minecraft.Client/Windows64/Windows64_Minecraft.cpp b/Minecraft.Client/Windows64/Windows64_Minecraft.cpp index d2c03509..75f03cc2 100644 --- a/Minecraft.Client/Windows64/Windows64_Minecraft.cpp +++ b/Minecraft.Client/Windows64/Windows64_Minecraft.cpp @@ -1639,6 +1639,7 @@ int APIENTRY _tWinMain(_In_ HINSTANCE hInstance, // Toggle fullscreen const unsigned char fullscreen = app.GetGameSettings(primaryPad, eGameSetting_Fullscreen); + const unsigned char vsync = app.GetGameSettings(primaryPad, eGameSetting_Vsync); if (fullscreen && !g_isFullscreen) EnableFullscreen(); @@ -1647,7 +1648,8 @@ int APIENTRY _tWinMain(_In_ HINSTANCE hInstance, if (g_KBMInput.IsKeyPressed(KeyboardMouseInput::KEY_FULLSCREEN)) { - app.SetGameSettings(primaryPad, eGameSetting_Fullscreen, fullscreen ? 0 : 1); + //app.SetGameSettings(primaryPad, eGameSetting_Fullscreen, fullscreen ? 0 : 1); + app.SetGameSettings(primaryPad, eGameSetting_Vsync, vsync ? 0 : 1); } // Open chat