diff --git a/docs/plan/target-architecture.md b/docs/plan/target-architecture.md index f9c343aa..ceb1e5e6 100644 --- a/docs/plan/target-architecture.md +++ b/docs/plan/target-architecture.md @@ -712,6 +712,10 @@ target_include_directories(XCPipelineAssets - 完成 `engine/runtime/RHI` 的 CMake、依赖面与构建闭环 - 让 `RHI` 从目录迁移完成,进入真实 module 边界 +状态: + +- 已完成:`XCRuntimeRHI` 已建立,`RHI` backend / factory / screenshot / backend 第三方依赖已从 `XCEngine` 主 target 中拆出并完成独立构建闭环 + 验收: 1. `XCEditor` 编译通过 @@ -817,9 +821,9 @@ target_include_directories(XCPipelineAssets - `engine/runtime/UI` 已完成物理落地并通过编译 / 冒烟 - `engine/runtime/Scripting` 已完成物理落地并通过编译 / 冒烟 - `engine/runtime/Rendering` 已完成主要物理落地并通过编译 / 冒烟 -- `engine/runtime/RHI` 已完成物理目录迁移,并且当前编译 / 冒烟已经恢复通过,但仍需继续完成 module / lib 收口 +- `engine/runtime/RHI` 已完成真实 module / lib 收口,`XCRuntimeRHI` 已建立并通过编译 / 冒烟 - `engine/Shared` 已完成删除,资产基础类型已并入 `engine/runtime/Asset` -- 根级 `engine/include` 与 `engine/src` 已经不再作为物理代码目录存在,但 CMake 侧仍有历史引用残留需要清理 +- 根级 `engine/include` 与 `engine/src` 已不再作为物理代码目录存在,相关 CMake 历史引用也已清理 - `XCPipelineAssets -> XCRuntimeAsset` 的单向依赖已经建立 - `ObjectId` 相关底层能力仍暂时散落在 `runtime/Rendering` 与 `XCEngineRenderingEditorSupport` - editor 中仍有一批 viewport 交互与辅助渲染能力需要继续收口 @@ -828,12 +832,10 @@ target_include_directories(XCPipelineAssets 按优先级排序,当前剩余工作为: -1. 清理根残留 include / src 历史引用并稳定构建边界 -2. 继续完成 `RHI` 的真实 module / lib 收口 -3. 继续执行 `Shaders / UI / Model-Mesh-GaussianSplat` 的 runtime -> pipeline 回收 -4. 把 `ObjectId` / gizmo / viewport helper passes 从 runtime 中抽出并收口到 editor-support -5. 推进 native lib 总收口 -6. 全计划闭环后再删除根目录 `.dog` +1. 继续执行 `Shaders / UI / Model-Mesh-GaussianSplat` 的 runtime -> pipeline 回收 +2. 把 `ObjectId` / gizmo / viewport helper passes 从 runtime 中抽出并收口到 editor-support +3. 推进 native lib 总收口 +4. 全计划闭环后再删除根目录 `.dog` ## 14. 验收节奏 diff --git a/engine/CMakeLists.txt b/engine/CMakeLists.txt index 961a0254..9ab1c152 100644 --- a/engine/CMakeLists.txt +++ b/engine/CMakeLists.txt @@ -420,6 +420,128 @@ target_include_directories(XCPipelineAssets PRIVATE target_link_libraries(XCPipelineAssets PUBLIC XCRuntimeAsset ) +if(MSVC) + target_link_libraries(XCPipelineAssets PUBLIC + bcrypt + d3dcompiler + ) +endif() + +add_library(XCRuntimeRHI STATIC + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12Device.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12CommandQueue.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12CommandAllocator.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12CommandList.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12DescriptorHeap.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12DescriptorSet.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12Buffer.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12PipelineState.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12Sampler.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12Shader.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12Texture.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12RootSignature.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12PipelineLayout.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12SwapChain.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12Fence.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12Screenshot.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12ResourceView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12QueryHeap.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12RenderPass.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12Framebuffer.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/ShaderCompiler/SpirvShaderCompiler.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/Vulkan/VulkanBuffer.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/Vulkan/VulkanTexture.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/Vulkan/VulkanSampler.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/Vulkan/VulkanShader.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/Vulkan/VulkanShaderCompiler.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/Vulkan/VulkanDescriptorPool.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/Vulkan/VulkanDescriptorSet.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/Vulkan/VulkanPipelineLayout.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/Vulkan/VulkanPipelineState.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/Vulkan/VulkanResourceView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/Vulkan/VulkanCommandQueue.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/Vulkan/VulkanCommandList.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/Vulkan/VulkanRenderPass.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/Vulkan/VulkanFramebuffer.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/Vulkan/VulkanSwapChain.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/Vulkan/VulkanDevice.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/Vulkan/VulkanScreenshot.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLBuffer.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLTexture.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLSampler.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLShader.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLVertexArray.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLDevice.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLCommandList.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLCommandQueue.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLFence.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLPipelineState.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLSwapChain.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLRenderTargetView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLDepthStencilView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLScreenshot.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLTextureUnitAllocator.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLUniformBufferManager.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLFramebuffer.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLRenderPass.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLResourceView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLDescriptorPool.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLDescriptorSet.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLPipelineLayout.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/RHIFactory.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/RHIScreenshot.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/third_party/GLAD/src/glad.c + ${CMAKE_CURRENT_SOURCE_DIR}/third_party/stb/stb_image.cpp +) +target_include_directories(XCRuntimeRHI + PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include + ${CMAKE_CURRENT_SOURCE_DIR}/third_party/GLAD/include + PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/Core/include + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/Core/include/XCEngine + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/Debug/include + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/Debug/include/XCEngine + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/Threading/include + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/Threading/include/XCEngine + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine + ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src + ${CMAKE_CURRENT_SOURCE_DIR}/third_party + ${CMAKE_CURRENT_SOURCE_DIR}/third_party/stb +) +target_link_libraries(XCRuntimeRHI PUBLIC + Vulkan::Vulkan +) +if(WIN32) + target_link_libraries(XCRuntimeRHI PUBLIC + opengl32 + ) +endif() +if(MSVC) + target_link_libraries(XCRuntimeRHI PUBLIC + d3dcompiler + ) + target_compile_options(XCRuntimeRHI PRIVATE + /FS + /W3 + $<$:/Z7>) + set_target_properties(XCRuntimeRHI PROPERTIES + MSVC_DEBUG_INFORMATION_FORMAT "$<$:Embedded>" + COMPILE_PDB_NAME "XCRuntimeRHI-compile" + COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/compile-pdb" + COMPILE_PDB_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_BINARY_DIR}/compile-pdb/Debug" + COMPILE_PDB_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_BINARY_DIR}/compile-pdb/Release" + COMPILE_PDB_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_CURRENT_BINARY_DIR}/compile-pdb/MinSizeRel" + COMPILE_PDB_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_BINARY_DIR}/compile-pdb/RelWithDebInfo" + ) +else() + target_compile_options(XCRuntimeRHI PRIVATE -Wall) +endif() +target_compile_definitions(XCRuntimeRHI PRIVATE + XCENGINE_SUPPORT_OPENGL + XCENGINE_SUPPORT_VULKAN +) add_library(XCEngine STATIC # Core (Types, RefCounted, SmartPtr, Event) @@ -514,145 +636,6 @@ add_library(XCEngine STATIC ${CMAKE_CURRENT_SOURCE_DIR}/runtime/Debug/src/Profiler.cpp ${CMAKE_CURRENT_SOURCE_DIR}/runtime/Debug/src/RenderDocCapture.cpp - # RHI - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/RHIEnums.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/RHIFactory.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/RHIScreenshot.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/RHIDescriptorPool.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/RHIDescriptorSet.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/ShaderCompiler/SpirvShaderCompiler.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/D3D12/D3D12Enums.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/D3D12/D3D12Device.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/D3D12/D3D12CommandQueue.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/D3D12/D3D12CommandAllocator.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/D3D12/D3D12CommandList.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/D3D12/D3D12DescriptorHeap.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/D3D12/D3D12DescriptorSet.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/D3D12/D3D12Buffer.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/D3D12/D3D12PipelineState.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/D3D12/D3D12Sampler.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/D3D12/D3D12Shader.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/D3D12/D3D12Texture.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/D3D12/D3D12RootSignature.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/D3D12/D3D12PipelineLayout.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/D3D12/D3D12SwapChain.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/D3D12/D3D12Fence.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/D3D12/D3D12Screenshot.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/D3D12/D3D12ResourceView.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/D3D12/D3D12QueryHeap.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/D3D12/D3D12RenderPass.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/D3D12/D3D12Framebuffer.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12Device.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12CommandQueue.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12CommandAllocator.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12CommandList.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12DescriptorHeap.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12DescriptorSet.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12Buffer.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12PipelineState.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12Sampler.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12Shader.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12Texture.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12RootSignature.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12PipelineLayout.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12SwapChain.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12Fence.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12Screenshot.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12ResourceView.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12QueryHeap.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12RenderPass.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/D3D12/D3D12Framebuffer.cpp - - # Vulkan RHI - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/Vulkan/VulkanCommon.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/Vulkan/VulkanBuffer.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/Vulkan/VulkanTexture.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/Vulkan/VulkanSampler.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/Vulkan/VulkanShader.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/Vulkan/VulkanShaderCompiler.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/Vulkan/VulkanDescriptorPool.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/Vulkan/VulkanDescriptorSet.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/Vulkan/VulkanPipelineLayout.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/Vulkan/VulkanPipelineState.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/Vulkan/VulkanResourceView.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/Vulkan/VulkanFence.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/Vulkan/VulkanCommandQueue.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/Vulkan/VulkanCommandList.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/Vulkan/VulkanRenderPass.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/Vulkan/VulkanFramebuffer.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/Vulkan/VulkanSwapChain.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/Vulkan/VulkanDevice.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/Vulkan/VulkanScreenshot.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/ShaderCompiler/SpirvShaderCompiler.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/Vulkan/VulkanBuffer.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/Vulkan/VulkanTexture.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/Vulkan/VulkanSampler.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/Vulkan/VulkanShader.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/Vulkan/VulkanShaderCompiler.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/Vulkan/VulkanDescriptorPool.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/Vulkan/VulkanDescriptorSet.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/Vulkan/VulkanPipelineLayout.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/Vulkan/VulkanPipelineState.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/Vulkan/VulkanResourceView.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/Vulkan/VulkanCommandQueue.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/Vulkan/VulkanCommandList.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/Vulkan/VulkanRenderPass.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/Vulkan/VulkanFramebuffer.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/Vulkan/VulkanSwapChain.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/Vulkan/VulkanDevice.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/Vulkan/VulkanScreenshot.cpp - - # OpenGL RHI - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/OpenGL/OpenGLBuffer.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/OpenGL/OpenGLTexture.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/OpenGL/OpenGLSampler.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/OpenGL/OpenGLShader.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/OpenGL/OpenGLVertexArray.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/OpenGL/OpenGLDevice.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/OpenGL/OpenGLCommandList.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/OpenGL/OpenGLCommandQueue.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/OpenGL/OpenGLFence.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/OpenGL/OpenGLPipelineState.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/OpenGL/OpenGLSwapChain.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/OpenGL/OpenGLRenderTargetView.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/OpenGL/OpenGLDepthStencilView.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/OpenGL/OpenGLTextureUnitAllocator.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/OpenGL/OpenGLUniformBufferManager.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/OpenGL/OpenGLFramebuffer.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/OpenGL/OpenGLRenderPass.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/OpenGL/OpenGLResourceView.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/OpenGL/OpenGLDescriptorPool.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/OpenGL/OpenGLDescriptorSet.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/include/XCEngine/RHI/OpenGL/OpenGLPipelineLayout.h - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLBuffer.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLTexture.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLSampler.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLShader.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLVertexArray.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLDevice.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLCommandList.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLCommandQueue.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLFence.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLPipelineState.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLSwapChain.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLRenderTargetView.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLDepthStencilView.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLScreenshot.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLTextureUnitAllocator.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLUniformBufferManager.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLFramebuffer.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLRenderPass.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLResourceView.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLDescriptorPool.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLDescriptorSet.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/OpenGL/OpenGLPipelineLayout.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/third_party/GLAD/src/glad.c - ${CMAKE_CURRENT_SOURCE_DIR}/third_party/stb/stb_image.cpp - - # RHI Factory - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/RHIFactory.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src/RHIScreenshot.cpp - # Resources (Concrete Resource Types) ${CMAKE_CURRENT_SOURCE_DIR}/runtime/Resources/include/XCEngine/Resources/Resources.h ${CMAKE_CURRENT_SOURCE_DIR}/runtime/Resources/include/XCEngine/Resources/Texture/Texture.h @@ -1090,7 +1073,6 @@ target_include_directories(XCEngine PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/runtime/Physics/src ${CMAKE_CURRENT_SOURCE_DIR}/runtime/Platform/src ${CMAKE_CURRENT_SOURCE_DIR}/runtime/UI/src - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src ${CMAKE_CURRENT_SOURCE_DIR}/runtime/Rendering/src ${CMAKE_CURRENT_SOURCE_DIR}/runtime/Scripting/src ${CMAKE_CURRENT_SOURCE_DIR}/.. @@ -1114,11 +1096,10 @@ endif() target_link_libraries(XCEngine PUBLIC XCEngineUI + XCRuntimeRHI XCPipelineAssets XCRuntimeAsset ${CMAKE_CURRENT_SOURCE_DIR}/third_party/assimp/lib/assimp-vc143-mt.lib - opengl32 - Vulkan::Vulkan ) if(MSVC) @@ -1126,9 +1107,7 @@ if(MSVC) /FS $<$:/Z7>) target_link_libraries(XCEngine PUBLIC - delayimp - d3dcompiler - bcrypt) + delayimp) target_link_options(XCEngine INTERFACE "/DELAYLOAD:assimp-vc143-mt.dll") set_target_properties(XCEngine PROPERTIES MSVC_DEBUG_INFORMATION_FORMAT "$<$:Embedded>" @@ -1257,7 +1236,6 @@ if(XCENGINE_ENABLE_RENDERING_EDITOR_SUPPORT) ${CMAKE_CURRENT_SOURCE_DIR}/runtime/Audio/src ${CMAKE_CURRENT_SOURCE_DIR}/runtime/Platform/src ${CMAKE_CURRENT_SOURCE_DIR}/runtime/UI/src - ${CMAKE_CURRENT_SOURCE_DIR}/runtime/RHI/src ${CMAKE_CURRENT_SOURCE_DIR}/runtime/Rendering/src ${CMAKE_CURRENT_SOURCE_DIR}/runtime/Scripting/src ${CMAKE_CURRENT_SOURCE_DIR}/third_party