mirror of
https://github.com/GabsPuNs/Project-Zenith-Main.git
synced 2026-05-25 12:14:34 +00:00
Use clang-cl and toggle vsync on fullscreen key for test
Clang-CL (LLVM) gives me more FPS at the cost of a larger executable size. Also enables O3 and FP:Fast. They need to be tested!
This commit is contained in:
@@ -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
|
||||
$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C,CXX>>:/W3>
|
||||
$<$<AND:$<CONFIG:Release>,$<COMPILE_LANGUAGE:C,CXX>>:/W0>
|
||||
$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C,CXX>>:/W3 /Od>
|
||||
$<$<AND:$<CONFIG:Release>,$<COMPILE_LANGUAGE:C,CXX>>:/W0 /O2 /Oi /GT /GF /Gw /Gy>
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:/MP>
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:/FS>
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:/GS>
|
||||
$<$<COMPILE_LANGUAGE:CXX>:/EHsc>
|
||||
$<$<COMPILE_LANGUAGE:CXX>:/GR>
|
||||
$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C,CXX>>:/Od>
|
||||
$<$<AND:$<CONFIG:Release>,$<COMPILE_LANGUAGE:C,CXX>>:/O2 /Oi /GT /GF>
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -44,23 +45,21 @@ function(configure_compiler_target target)
|
||||
$<$<AND:$<CONFIG:Release>,$<COMPILE_LANGUAGE:C,CXX>>:/GL>
|
||||
)
|
||||
target_link_options(${target} PRIVATE
|
||||
$<$<CONFIG:Release>:/LTCG:incremental>
|
||||
$<$<CONFIG:Release>:/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
|
||||
$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C,CXX>>:-O0 -Wall>
|
||||
$<$<AND:$<CONFIG:Release>,$<COMPILE_LANGUAGE:C,CXX>>:-O2 -w -flto>
|
||||
$<$<AND:$<CONFIG:Release>,$<COMPILE_LANGUAGE:C,CXX>>:/clang:-O3 /fp:fast>
|
||||
)
|
||||
target_link_options(${target} PRIVATE
|
||||
$<$<CONFIG:Release>:-flto>
|
||||
$<$<CONFIG:Release>:/OPT:REF /OPT:ICF>
|
||||
)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
|
||||
# ---
|
||||
# Configuration
|
||||
# ---
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user