From 79f6537b77d4125a4f0e9f624b56fcac54405c25 Mon Sep 17 00:00:00 2001 From: hyzboy Date: Wed, 29 Sep 2021 20:52:14 +0800 Subject: [PATCH] added VKRenderContext.cpp/.h --- inc/hgl/graph/VKRenderContext.h | 36 +++++++++++++++++++++++ src/SceneGraph/CMakeLists.txt | 10 ++++++- src/SceneGraph/Vulkan/VKRenderContext.cpp | 0 3 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 inc/hgl/graph/VKRenderContext.h create mode 100644 src/SceneGraph/Vulkan/VKRenderContext.cpp diff --git a/inc/hgl/graph/VKRenderContext.h b/inc/hgl/graph/VKRenderContext.h new file mode 100644 index 00000000..d417d9f7 --- /dev/null +++ b/inc/hgl/graph/VKRenderContext.h @@ -0,0 +1,36 @@ +#ifndef HGL_VULKAN_RENDER_CONTEXT_INCLUDE +#define HGL_VULKAN_RENDER_CONTEXT_INCLUDE + +#include +#include +VK_NAMESPACE_BEGIN +/** + * äÖȾ¿ØÖÆÉÏÏÂÎÄ + */ +class RenderContext +{ +protected: + + GPUDevice *device; + + VkExtent2D extent; + +public: + + RenderContext(GPUDevice *,const VkExtent2D &); + virtual ~RenderContext(); + + void Prepare( +};//class RenderContext + +class RenderContextSwapchain:public RenderContext +{ + Swapchain *swapchain; + +public: + + void RequestPresentMode(const VkPresentModeKHR present_mode); + void RequestImageFormat(const VkFormat format); +};//class RenderContextSwapchain:public RenderContext +VK_NAMESPACE_END +#endif//HGL_VULKAN_RENDER_CONTEXT_INCLUDE diff --git a/src/SceneGraph/CMakeLists.txt b/src/SceneGraph/CMakeLists.txt index fa2988a0..d1649c0e 100644 --- a/src/SceneGraph/CMakeLists.txt +++ b/src/SceneGraph/CMakeLists.txt @@ -167,6 +167,10 @@ SOURCE_GROUP("Vulkan\\Material" FILES ${VK_MATERIAL_SOURCE}) SOURCE_GROUP("Vulkan\\Material\\Texture" FILES ${VK_TEXTURE_SOURCE}) SOURCE_GROUP("Vulkan\\Material\\Shader" FILES ${VK_SHADER_SOURCE}) +SET(VK_RENDER_CONTEXT_SOURCE ${SG_INCLUDE_PATH}/VKRenderContext.h + ${SG_INCLUDE_PATH}/VKSubpass.h + Vulkan/VKRenderContext.cpp) + SET(VK_RENDER_PASS_SOURCE ${SG_INCLUDE_PATH}/VKFramebuffer.h ${SG_INCLUDE_PATH}/VKPipeline.h ${SG_INCLUDE_PATH}/VKRenderPass.h @@ -180,13 +184,16 @@ SET(VK_RENDER_PASS_SOURCE ${SG_INCLUDE_PATH}/VKFramebuffer.h Vulkan/VKFramebuffer.cpp Vulkan/VKPipeline.cpp Vulkan/VKPipelineCache.cpp + #Vulkan/VKSubpass.cpp Vulkan/VKRenderPass.cpp Vulkan/VKRenderTarget.cpp Vulkan/VKSwapchainRenderTarget.cpp Vulkan/VKSwapchain.cpp ) -SOURCE_GROUP("Vulkan\\Render Pass" FILES ${VK_RENDER_PASS_SOURCE}) +SOURCE_GROUP("Vulkan\\Render Context\\Render Pass" FILES ${VK_RENDER_PASS_SOURCE}) + +SOURCE_GROUP("Vulkan\\Render Context" FILES ${VK_RENDER_CONTEXT_SOURCE}) SET(VK_CMD_BUFFER_SOURCE ${SG_INCLUDE_PATH}/VKCommandBuffer.h Vulkan/VKCommandBuffer.cpp @@ -226,6 +233,7 @@ SET(VULKAN_RENDER_SOURCE ${VK_RR_SOURCE} ${VK_TEXTURE_SOURCE} ${VK_MATERIAL_SOURCE} ${VK_RENDER_PASS_SOURCE} + ${VK_RENDER_CONTEXT_SOURCE} ${VK_CMD_BUFFER_SOURCE} ${VK_RENDERABLE_SOURCE} ${VK_RENDER_DEVICE_SOURCE}) diff --git a/src/SceneGraph/Vulkan/VKRenderContext.cpp b/src/SceneGraph/Vulkan/VKRenderContext.cpp new file mode 100644 index 00000000..e69de29b