diff --git a/CMakeLists.txt b/CMakeLists.txt index bff486150f082c2e96e543436d977cf3112403ba..2ae078a428a8e5e640ed8dc7bcc2f4e58e159c6b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,6 +44,9 @@ endif() # configure everything to use the required dependencies include(${vkcv_config}/Libraries.cmake) +# set the compile definitions aka preprocessor variables +add_compile_definitions(${vkcv_definitions}) + # add modules as targets add_subdirectory(modules) @@ -56,9 +59,6 @@ message("-- Flags: [ ${vkcv_flags} ]") # set the compiler flags for the framework set(CMAKE_CXX_FLAGS ${vkcv_flags}) -# set the compile definitions aka preprocessor variables -add_compile_definitions(${vkcv_definitions}) - # create VkCV framework as static library using all source files add_library(vkcv STATIC ${vkcv_sources}) diff --git a/config/Libraries.cmake b/config/Libraries.cmake index e04aa3575a34632eb75c929bf4640305cd93e298..ec014f84c820abf4988b070d5b733be08c377319 100644 --- a/config/Libraries.cmake +++ b/config/Libraries.cmake @@ -10,6 +10,8 @@ if(NOT WIN32) list(APPEND vkcv_flags -fopenmp) endif() +list(APPEND vkcv_definitions _USE_MATH_DEFINES) + # some formatted printing set(vkcv_config_msg " - Library: ") diff --git a/modules/asset_loader/CMakeLists.txt b/modules/asset_loader/CMakeLists.txt index d2a9b817ea68c7851fd2123f76b378d8a4d85ac0..c5a1fd0eb9620d3a95af1c52a9e7456337047c7b 100644 --- a/modules/asset_loader/CMakeLists.txt +++ b/modules/asset_loader/CMakeLists.txt @@ -38,3 +38,5 @@ target_include_directories(vkcv_asset_loader SYSTEM BEFORE PRIVATE ${vkcv_asset_ # add the own include directory for public headers target_include_directories(vkcv_asset_loader BEFORE PUBLIC ${vkcv_asset_loader_include}) + +target_compile_definitions(vkcv_asset_loader PUBLIC ${vkcv_asset_loader_definitions}) diff --git a/modules/asset_loader/config/STB.cmake b/modules/asset_loader/config/STB.cmake index da20d3ec07f98c865b4c6e38518f668b226cbfb9..1287d0a9ddda559e061ddd680bc815e24b3e2075 100644 --- a/modules/asset_loader/config/STB.cmake +++ b/modules/asset_loader/config/STB.cmake @@ -1,6 +1,10 @@ if (EXISTS "${vkcv_asset_loader_lib_path}/stb") list(APPEND vkcv_asset_loader_includes ${vkcv_asset_loader_lib}/stb) + + list(APPEND vkcv_asset_loader_definitions STB_IMAGE_IMPLEMENTATION) + list(APPEND vkcv_asset_loader_definitions STBI_ONLY_JPEG) + list(APPEND vkcv_asset_loader_definitions STBI_ONLY_PNG) else() message(WARNING "STB is required..! Update the submodules!") endif () diff --git a/modules/asset_loader/src/vkcv/asset/asset_loader.cpp b/modules/asset_loader/src/vkcv/asset/asset_loader.cpp index 97fd39515290ac9235b3936d44d3e40a584ef84f..c21d0c9f70bc81561e1078b15b8372e6dd4730f5 100644 --- a/modules/asset_loader/src/vkcv/asset/asset_loader.cpp +++ b/modules/asset_loader/src/vkcv/asset/asset_loader.cpp @@ -3,9 +3,6 @@ #include <string.h> // memcpy(3) #include <stdlib.h> // calloc(3) #include <fx/gltf.h> -#define STB_IMAGE_IMPLEMENTATION -#define STBI_ONLY_JPEG -#define STBI_ONLY_PNG #include <stb_image.h> #include <vkcv/Logger.hpp> #include <algorithm> diff --git a/modules/camera/CMakeLists.txt b/modules/camera/CMakeLists.txt index 73f2dd1c81be9c6cadf563f7936bfaba8c1d0025..8fa7a9241b55f9c81c650ab9c7f3c63e04403efe 100644 --- a/modules/camera/CMakeLists.txt +++ b/modules/camera/CMakeLists.txt @@ -36,3 +36,4 @@ target_include_directories(vkcv_camera SYSTEM BEFORE PRIVATE ${vkcv_camera_inclu # add the own include directory for public headers target_include_directories(vkcv_camera BEFORE PUBLIC ${vkcv_camera_include} ${vkcv_camera_includes}) +target_compile_definitions(vkcv_camera PUBLIC ${vkcv_camera_defines}) diff --git a/modules/camera/config/GLM.cmake b/modules/camera/config/GLM.cmake index c4d14392ef0ea24243a45b19cd8583d90d3267be..6f6e0f65e3025a635855f8563280bfb8c420f475 100644 --- a/modules/camera/config/GLM.cmake +++ b/modules/camera/config/GLM.cmake @@ -9,6 +9,9 @@ else() add_subdirectory(${vkcv_camera_lib}/glm) list(APPEND vkcv_camera_libraries glm) + + list(APPEND vkcv_camera_defines GLM_DEPTH_ZERO_TO_ONE) + list(APPEND vkcv_camera_defines GLM_FORCE_LEFT_HANDED) else() message(WARNING "GLM is required..! Update the submodules!") endif () diff --git a/modules/camera/include/vkcv/camera/Camera.hpp b/modules/camera/include/vkcv/camera/Camera.hpp index dc9f2dcb3038655f51fb2404abc21f98a2120399..ce32d3f8a0c6ee3e0dd882f24a9ac2d12c14a024 100644 --- a/modules/camera/include/vkcv/camera/Camera.hpp +++ b/modules/camera/include/vkcv/camera/Camera.hpp @@ -1,7 +1,5 @@ #pragma once -#define GLM_DEPTH_ZERO_TO_ONE -#define GLM_FORCE_LEFT_HANDED #include <glm/glm.hpp> #include <glm/gtc/matrix_transform.hpp> #include <glm/gtc/matrix_access.hpp> diff --git a/modules/camera/src/vkcv/camera/Camera.cpp b/modules/camera/src/vkcv/camera/Camera.cpp index eb1857968b2284287691c6ed41ba168db30d3f84..18bf94463a0e2c4cb7d64526f4c30835cb451eb2 100644 --- a/modules/camera/src/vkcv/camera/Camera.cpp +++ b/modules/camera/src/vkcv/camera/Camera.cpp @@ -1,6 +1,5 @@ #include "vkcv/camera/Camera.hpp" -#define _USE_MATH_DEFINES #include <math.h> namespace vkcv::camera { diff --git a/modules/gui/CMakeLists.txt b/modules/gui/CMakeLists.txt index ce03f16e1f8d421f5b8e6c2fe913c0da04d34598..3b5202ccfe454f38745c53ac711cc05095ef88a1 100644 --- a/modules/gui/CMakeLists.txt +++ b/modules/gui/CMakeLists.txt @@ -32,3 +32,5 @@ target_include_directories(vkcv_gui SYSTEM BEFORE PRIVATE ${vkcv_gui_includes} $ # add the own include directory for public headers target_include_directories(vkcv_gui BEFORE PUBLIC ${vkcv_gui_include} ${vkcv_imgui_includes}) + +target_compile_definitions(vkcv_gui PUBLIC ${vkcv_gui_defines}) diff --git a/modules/gui/config/ImGui.cmake b/modules/gui/config/ImGui.cmake index 3f55ad05c34783ba0e82c41d2cbc4e5b204d60e7..90cdafdeee355af9e63723632572799e135b04da 100644 --- a/modules/gui/config/ImGui.cmake +++ b/modules/gui/config/ImGui.cmake @@ -1,17 +1,27 @@ if (EXISTS "${vkcv_gui_lib_path}/imgui") list(APPEND vkcv_imgui_sources ${vkcv_gui_lib_path}/imgui/backends/imgui_impl_glfw.cpp) - list(APPEND vkcv_imgui_sources ${vkcv_gui_lib_path}/imgui/backends/imgui_impl_vulkan.cpp ) + list(APPEND vkcv_imgui_sources ${vkcv_gui_lib_path}/imgui/backends/imgui_impl_glfw.h) + list(APPEND vkcv_imgui_sources ${vkcv_gui_lib_path}/imgui/backends/imgui_impl_vulkan.cpp) + list(APPEND vkcv_imgui_sources ${vkcv_gui_lib_path}/imgui/backends/imgui_impl_vulkan.h) + list(APPEND vkcv_imgui_sources ${vkcv_gui_lib_path}/imgui/imconfig.h) list(APPEND vkcv_imgui_sources ${vkcv_gui_lib_path}/imgui/imgui.cpp) + list(APPEND vkcv_imgui_sources ${vkcv_gui_lib_path}/imgui/imgui.h) list(APPEND vkcv_imgui_sources ${vkcv_gui_lib_path}/imgui/imgui_draw.cpp) list(APPEND vkcv_imgui_sources ${vkcv_gui_lib_path}/imgui/imgui_demo.cpp) + list(APPEND vkcv_imgui_sources ${vkcv_gui_lib_path}/imgui/imgui_internal.h) list(APPEND vkcv_imgui_sources ${vkcv_gui_lib_path}/imgui/imgui_tables.cpp) list(APPEND vkcv_imgui_sources ${vkcv_gui_lib_path}/imgui/imgui_widgets.cpp) + list(APPEND vkcv_imgui_sources ${vkcv_gui_lib_path}/imgui/imstb_rectpack.h) + list(APPEND vkcv_imgui_sources ${vkcv_gui_lib_path}/imgui/imstb_textedit.h) + list(APPEND vkcv_imgui_sources ${vkcv_gui_lib_path}/imgui/imstb_truetype.h) list(APPEND vkcv_imgui_includes ${vkcv_gui_lib}/imgui) list(APPEND vkcv_imgui_includes ${vkcv_gui_lib}/imgui/backend) list(APPEND vkcv_gui_include ${vkcv_gui_lib}) + + list(APPEND vkcv_gui_defines IMGUI_DISABLE_WIN32_FUNCTIONS=1) else() message(WARNING "IMGUI is required..! Update the submodules!") endif () diff --git a/src/vkcv/Swapchain.cpp b/src/vkcv/Swapchain.cpp index 33714adac7cec7c1b5e0013387424c4f865454ab..2c5b3530c396bc3532aa94cb59a120e3555291bf 100644 --- a/src/vkcv/Swapchain.cpp +++ b/src/vkcv/Swapchain.cpp @@ -1,7 +1,6 @@ #include <vkcv/Swapchain.hpp> #include <utility> -#define GLFW_INCLUDE_VULKAN #include <GLFW/glfw3.h> namespace vkcv