diff --git a/CMakeLists.txt b/CMakeLists.txt index bf2ac938..d13a0a7b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -95,9 +95,18 @@ option(ENABLE_AVX2 "Enable AVX2 instruction set (requires AVX2-capable CPU, Hasw option(ADD_VERSION_SUFFIX "Add date and commit hash to the executable name" ON) set(BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) -# vcpkg init +# vcpkg init. The triplet has to follow the host, or a non-Windows build looks +# for its packages (DXC, used by the betterRenderer shader compiler) in a +# directory that only ever exists on Windows. set(VCPKG_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/ref/vcpkg") -set(VCPKG_INSTALLED_PATH "${VCPKG_ROOT}/installed/x64-windows") +if (WIN32) + set(VCPKG_TRIPLET "x64-windows") +elseif (APPLE) + set(VCPKG_TRIPLET "x64-osx") +else() + set(VCPKG_TRIPLET "x64-linux") +endif() +set(VCPKG_INSTALLED_PATH "${VCPKG_ROOT}/installed/${VCPKG_TRIPLET}") list(APPEND CMAKE_PREFIX_PATH "${VCPKG_INSTALLED_PATH}") list(APPEND CMAKE_MODULE_PATH "${VCPKG_INSTALLED_PATH}/share") diff --git a/betterRenderer/renderer/include/nvrenderer/nvrenderer.h b/betterRenderer/renderer/include/nvrenderer/nvrenderer.h index dc21fee6..33b4c1ba 100644 --- a/betterRenderer/renderer/include/nvrenderer/nvrenderer.h +++ b/betterRenderer/renderer/include/nvrenderer/nvrenderer.h @@ -9,10 +9,10 @@ // OpenGL includes required by EU07 includes #include // for GLuint, GLint +#include // for GLFWwindow +#include "utilities/Globals_macros.h" // Div. includes required by EU07 includes -#include -#include #include #include @@ -21,15 +21,23 @@ #include #include -// EU07 includes +// EU07 includes. This header is consumed by translation units that include +// nothing else, so everything it names has to be imported here rather than +// relied on to arrive from the including file. import eu07.utilities.classes; +import eu07.utilities.globals; import eu07.simcore; +import eu07.rendering.geometrybank; +import eu07.global_include.interfaces.imaterial; +import eu07.global_include.interfaces.itexture; +import eu07.gl.shader; #include "nvrenderer_enums.h" #include "quadtree.h" import eu07.rendering.renderer; #include "resource_registry.h" import eu07.environment.sky; +import eu07.glm; namespace Rt { struct IRtModel; diff --git a/betterRenderer/renderer/include/nvrenderer/quadtree.h b/betterRenderer/renderer/include/nvrenderer/quadtree.h index 7ad4d6ea..e913fa0b 100644 --- a/betterRenderer/renderer/include/nvrenderer/quadtree.h +++ b/betterRenderer/renderer/include/nvrenderer/quadtree.h @@ -1,10 +1,10 @@ #pragma once #include -#include -#include #include #include +import eu07.glm; +#include struct QuadTreeLeave { QuadTreeLeave(const glm::dvec3& origin, const glm::dvec3& extent, diff --git a/betterRenderer/renderer/include/nvrenderer/resource_registry.h b/betterRenderer/renderer/include/nvrenderer/resource_registry.h index 5256a384..9a817b4b 100644 --- a/betterRenderer/renderer/include/nvrenderer/resource_registry.h +++ b/betterRenderer/renderer/include/nvrenderer/resource_registry.h @@ -3,7 +3,7 @@ #include #include -#include +import eu07.glm; class NvTextureManager; class MaResourceRegistry; diff --git a/betterRenderer/renderer/source/XeGTAO.h b/betterRenderer/renderer/source/XeGTAO.h index 63caa4f6..fe40f863 100644 --- a/betterRenderer/renderer/source/XeGTAO.h +++ b/betterRenderer/renderer/source/XeGTAO.h @@ -30,6 +30,8 @@ #ifdef __cplusplus #include +#include "imgui/imgui.h" +import eu07.glm; namespace XeGTAO { diff --git a/betterRenderer/renderer/source/bloom.cpp b/betterRenderer/renderer/source/bloom.cpp index a104bf57..1f7e4c45 100644 --- a/betterRenderer/renderer/source/bloom.cpp +++ b/betterRenderer/renderer/source/bloom.cpp @@ -3,6 +3,7 @@ #include #include "nvrendererbackend.h" +#include "imgui/imgui.h" void Bloom::UpdateConstants(nvrhi::ICommandList* command_list) { BloomConstants constants{}; diff --git a/betterRenderer/renderer/source/bloom.h b/betterRenderer/renderer/source/bloom.h index a089e2f9..d312b3f7 100644 --- a/betterRenderer/renderer/source/bloom.h +++ b/betterRenderer/renderer/source/bloom.h @@ -1,7 +1,7 @@ #pragma once -#include #include +import eu07.glm; struct Bloom { struct BloomConstants { diff --git a/betterRenderer/renderer/source/contactshadows.h b/betterRenderer/renderer/source/contactshadows.h index b9fa8fd9..3a5ee271 100644 --- a/betterRenderer/renderer/source/contactshadows.h +++ b/betterRenderer/renderer/source/contactshadows.h @@ -1,7 +1,7 @@ #pragma once #include -#include +import eu07.glm; struct MaContactShadows { MaContactShadows(class NvRenderer* renderer, class NvGbuffer* gbuffer); diff --git a/betterRenderer/renderer/source/fsr.cpp b/betterRenderer/renderer/source/fsr.cpp index ab143b76..13d3408b 100644 --- a/betterRenderer/renderer/source/fsr.cpp +++ b/betterRenderer/renderer/source/fsr.cpp @@ -17,6 +17,8 @@ import eu07.utilities.globals; #include "gbuffer.h" #include "gbufferblitpass.h" +import eu07.glm; +#include NvFSR::NvFSR(NvRenderer* renderer) : m_backend(renderer->m_backend.get()), diff --git a/betterRenderer/renderer/source/fsr.h b/betterRenderer/renderer/source/fsr.h index 01fca247..6a8ac04d 100644 --- a/betterRenderer/renderer/source/fsr.h +++ b/betterRenderer/renderer/source/fsr.h @@ -1,9 +1,9 @@ #pragma once #include -#include #include "nvrendererbackend.h" +import eu07.glm; struct NvFSR { NvFSR(class NvRenderer* renderer); diff --git a/betterRenderer/renderer/source/gbufferblitpass.cpp b/betterRenderer/renderer/source/gbufferblitpass.cpp index fdb023b3..6506949d 100644 --- a/betterRenderer/renderer/source/gbufferblitpass.cpp +++ b/betterRenderer/renderer/source/gbufferblitpass.cpp @@ -11,6 +11,7 @@ import eu07.utilities.timer; #include "nvrendererbackend.h" #include "sky.h" #include "ssao.h" +import eu07.glm; GbufferBlitPass::GbufferBlitPass(NvRenderer* renderer, NvGbuffer* gbuffer, NvGbuffer* gbuffer_shadow, NvSsao* ssao, diff --git a/betterRenderer/renderer/source/gbufferlighting.cpp b/betterRenderer/renderer/source/gbufferlighting.cpp index 4f065bbb..6ad80ff8 100644 --- a/betterRenderer/renderer/source/gbufferlighting.cpp +++ b/betterRenderer/renderer/source/gbufferlighting.cpp @@ -2,12 +2,12 @@ #include -#include #include "gbuffer.h" #include "nvrendererbackend.h" #include "ssao.h" #include "config.h" +import eu07.glm; void GbufferLighting::Init() { auto fb_info = m_renderer->m_gbuffer->m_framebuffer->getFramebufferInfo(); diff --git a/betterRenderer/renderer/source/gbufferlighting.h b/betterRenderer/renderer/source/gbufferlighting.h index aac2a393..d4f27421 100644 --- a/betterRenderer/renderer/source/gbufferlighting.h +++ b/betterRenderer/renderer/source/gbufferlighting.h @@ -2,8 +2,8 @@ #include #include +import eu07.glm; -#include struct GbufferLighting : public MaResourceRegistry { GbufferLighting(NvRenderer* renderer) diff --git a/betterRenderer/renderer/source/materialparser.cpp b/betterRenderer/renderer/source/materialparser.cpp index ce724103..f1e451a0 100644 --- a/betterRenderer/renderer/source/materialparser.cpp +++ b/betterRenderer/renderer/source/materialparser.cpp @@ -7,11 +7,12 @@ import eu07.utilities.globals; import eu07.utilities.logs; #include import eu07.model.material; -#include +import eu07.utilities.parser; #include "utilities/utilities_macros.h" import eu07.utilities.utilities; #include #include +#include std::string_view MaterialAdapter::GetTexturePathForEntry( std::string_view key) const { diff --git a/betterRenderer/renderer/source/materialparser.h b/betterRenderer/renderer/source/materialparser.h index 01d112f4..24341518 100644 --- a/betterRenderer/renderer/source/materialparser.h +++ b/betterRenderer/renderer/source/materialparser.h @@ -6,8 +6,8 @@ #include #include -#include #include +import eu07.glm; struct MaterialAdapterInternal { virtual ~MaterialAdapterInternal() = default; diff --git a/betterRenderer/renderer/source/motioncache.h b/betterRenderer/renderer/source/motioncache.h index dfd04a69..5cb377f6 100644 --- a/betterRenderer/renderer/source/motioncache.h +++ b/betterRenderer/renderer/source/motioncache.h @@ -2,7 +2,8 @@ #include #include -#include +import eu07.glm; +#include struct MotionCacheId { union { diff --git a/betterRenderer/renderer/source/nvrenderer.cpp b/betterRenderer/renderer/source/nvrenderer.cpp index 309fa876..ea9e237a 100644 --- a/betterRenderer/renderer/source/nvrenderer.cpp +++ b/betterRenderer/renderer/source/nvrenderer.cpp @@ -8,7 +8,6 @@ import eu07.application.application; import eu07.simulation.simulation; #include -#include #include "auto_exposure.h" #include "bloom.h" @@ -39,6 +38,9 @@ import eu07.simulation.simulation; #include "rt_model.h" #include "tinyexr.h" #include "windshield_rain.h" +import eu07.glm; +#include "utilities/utilities_macros.h" +import eu07.utilities.utilities; bool NvRenderer::Init(GLFWwindow *Window) { m_message_callback = std::make_shared(); diff --git a/betterRenderer/renderer/source/nvrenderer_vulkan.cpp b/betterRenderer/renderer/source/nvrenderer_vulkan.cpp index 8479bf75..779fc6a0 100644 --- a/betterRenderer/renderer/source/nvrenderer_vulkan.cpp +++ b/betterRenderer/renderer/source/nvrenderer_vulkan.cpp @@ -16,6 +16,7 @@ import eu07.utilities.logs; VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE #include "nvrendererbackend.h" +#include #define MA_ERROR_LOG(fmt_str, ...) ErrorLog(fmt::format(fmt_str, __VA_ARGS__)) #define MA_INFO_LOG(fmt_str, ...) WriteLog(fmt::format(fmt_str, __VA_ARGS__)) diff --git a/betterRenderer/renderer/source/nvrenderer_vulkan.h b/betterRenderer/renderer/source/nvrenderer_vulkan.h index 3777bdc8..e4dd799c 100644 --- a/betterRenderer/renderer/source/nvrenderer_vulkan.h +++ b/betterRenderer/renderer/source/nvrenderer_vulkan.h @@ -11,6 +11,7 @@ #include #include +#include class NvRendererBackend_Vulkan : public NvRendererBackend { friend class NvRenderer; diff --git a/betterRenderer/renderer/source/nvtexture.cpp b/betterRenderer/renderer/source/nvtexture.cpp index 16c7906d..7c9316a8 100644 --- a/betterRenderer/renderer/source/nvtexture.cpp +++ b/betterRenderer/renderer/source/nvtexture.cpp @@ -16,6 +16,7 @@ import eu07.utilities.logs; #include "stbi/stb_image.h" #define STB_IMAGE_RESIZE2_IMPLEMENTATION #include "stbi/stb_image_resize2.h" +import eu07.model.texture; #undef STB_IMAGE_RESIZE2_IMPLEMENTATION uint64_t NvTexture::s_change_counter = 0; diff --git a/betterRenderer/renderer/source/nvtexture.h b/betterRenderer/renderer/source/nvtexture.h index 08228d99..0400c8c9 100644 --- a/betterRenderer/renderer/source/nvtexture.h +++ b/betterRenderer/renderer/source/nvtexture.h @@ -5,10 +5,10 @@ #include #include -#include #include "global_include/interfaces/ITexture_macros.h" import eu07.global_include.interfaces.itexture; #include "nvrenderer/nvrenderer_enums.h" +import eu07.glm; enum MaTextureTraits { MaTextureTraits_Sharpen, diff --git a/betterRenderer/renderer/source/rt_model.h b/betterRenderer/renderer/source/rt_model.h index e1733189..c816c697 100644 --- a/betterRenderer/renderer/source/rt_model.h +++ b/betterRenderer/renderer/source/rt_model.h @@ -1,12 +1,13 @@ #pragma once -#include #include #include "nvrenderer/nvrenderer.h" -class TSubModel; -class TModel3d; +// TSubModel/TModel3d are owned by the simulation core; a forward +// declaration here would be a second, conflicting declaration. +import eu07.simcore; +import eu07.glm; namespace Rt { struct IRtModel { diff --git a/betterRenderer/renderer/source/shaders_vulkan.cpp b/betterRenderer/renderer/source/shaders_vulkan.cpp index 9f806daa..570e43e5 100644 --- a/betterRenderer/renderer/source/shaders_vulkan.cpp +++ b/betterRenderer/renderer/source/shaders_vulkan.cpp @@ -1,6 +1,7 @@ #include #include "nvrenderer_vulkan.h" +#include #if LIBMANUL_WITH_VULKAN diff --git a/betterRenderer/renderer/source/sky.cpp b/betterRenderer/renderer/source/sky.cpp index c16b3bf1..44bb338f 100644 --- a/betterRenderer/renderer/source/sky.cpp +++ b/betterRenderer/renderer/source/sky.cpp @@ -6,6 +6,8 @@ #include "nvrendererbackend.h" import eu07.simulation.simulationenvironment; import eu07.simulation.simulationtime; +#include "imgui/imgui.h" +import eu07.glm; namespace { static const float PI = 3.14159265358979323846f; diff --git a/betterRenderer/renderer/source/ssao.cpp b/betterRenderer/renderer/source/ssao.cpp index 7a098703..64759085 100644 --- a/betterRenderer/renderer/source/ssao.cpp +++ b/betterRenderer/renderer/source/ssao.cpp @@ -3,12 +3,13 @@ #include #include -#include #include "XeGTAO.h" #include "gbuffer.h" #include "nvrenderer/nvrenderer.h" #include "nvrendererbackend.h" +#include "imgui/imgui.h" +import eu07.glm; NvSsao::NvSsao(NvRenderer* renderer) : m_backend(renderer->m_backend.get()), diff --git a/betterRenderer/renderer/source/ssao.h b/betterRenderer/renderer/source/ssao.h index 62ee6dd1..c5c14cad 100644 --- a/betterRenderer/renderer/source/ssao.h +++ b/betterRenderer/renderer/source/ssao.h @@ -2,10 +2,10 @@ #include -#include #include #include "XeGTAO.h" +import eu07.glm; struct NvSsao { NvSsao(class NvRenderer* renderer); diff --git a/betterRenderer/renderer/source/topo_utils.h b/betterRenderer/renderer/source/topo_utils.h index 3a9a4979..977dac9a 100644 --- a/betterRenderer/renderer/source/topo_utils.h +++ b/betterRenderer/renderer/source/topo_utils.h @@ -1,6 +1,6 @@ #pragma once -#include +import eu07.simcore; struct MaTopologyUtils { diff --git a/betterRenderer/renderer/source/track_batching.cpp b/betterRenderer/renderer/source/track_batching.cpp index 545a93da..187f361b 100644 --- a/betterRenderer/renderer/source/track_batching.cpp +++ b/betterRenderer/renderer/source/track_batching.cpp @@ -7,6 +7,10 @@ import eu07.utilities.timer; import eu07.simcore; import eu07.simulation.simulation; +import eu07.glm; +#include "utilities/utilities_macros.h" +import eu07.utilities.utilities; +import eu07.utilities.float3d; namespace BatchingUtils {