diff --git a/example/Vulkan/second_triangle.cpp b/example/Vulkan/second_triangle.cpp index 286b94ea..b269258e 100644 --- a/example/Vulkan/second_triangle.cpp +++ b/example/Vulkan/second_triangle.cpp @@ -62,7 +62,7 @@ private: if(!material_instance) return(false); - db->global_descriptor.Bind(material_instance); + db->global_descriptor.Bind(material_instance->GetMaterial()); // pipeline=db->CreatePipeline(material_instance,sc_render_target,OS_TEXT("res/pipeline/solid2d")); pipeline=CreatePipeline(material_instance,InlinePipeline::Solid2D,Prim::Triangles); //等同上一行,为Framework重载,默认使用swapchain的render target diff --git a/example/common/VulkanAppFramework.h b/example/common/VulkanAppFramework.h index a06ee54c..d6c27314 100644 --- a/example/common/VulkanAppFramework.h +++ b/example/common/VulkanAppFramework.h @@ -52,7 +52,7 @@ protected: GPUDevice * device =nullptr; RenderPass * device_render_pass =nullptr; - SwapchainRenderTarget * sc_render_target =nullptr; + RTSwapchain * sc_render_target =nullptr; protected: diff --git a/inc/hgl/graph/VK.h b/inc/hgl/graph/VK.h index 24ede03c..01273b18 100644 --- a/inc/hgl/graph/VK.h +++ b/inc/hgl/graph/VK.h @@ -37,7 +37,7 @@ class ImageView; class Framebuffer; struct Swapchain; class RenderTarget; -class SwapchainRenderTarget; +class RTSwapchain; class Texture; class Texture1D; diff --git a/inc/hgl/graph/VKDevice.h b/inc/hgl/graph/VKDevice.h index e5602f42..f8fc2b8e 100644 --- a/inc/hgl/graph/VKDevice.h +++ b/inc/hgl/graph/VKDevice.h @@ -36,9 +36,9 @@ private: DeviceRenderPassManage *render_pass_manage; RenderPass *device_render_pass; - SwapchainRenderTarget *swapchainRT; + RTSwapchain *sc_rt; - SwapchainRenderTarget *CreateSwapchainRenderTarget(); + RTSwapchain *CreateSwapchainRenderTarget(); void InitRenderPassManage(); void ClearRenderPassManage(); @@ -77,9 +77,9 @@ public: RenderPass * GetRenderPass () {return device_render_pass;} - SwapchainRenderTarget * GetSwapchainRT () {return swapchainRT;} + RTSwapchain * GetSwapchainRT () {return sc_rt;} - const VkExtent2D & GetSwapchainSize ()const {return swapchainRT->GetExtent();} + const VkExtent2D & GetSwapchainSize ()const {return sc_rt->GetExtent();} void WaitIdle ()const {vkDeviceWaitIdle(attr->device);} diff --git a/inc/hgl/graph/VKRenderResource.h b/inc/hgl/graph/VKRenderResource.h index bc35a0ab..ebacdb14 100644 --- a/inc/hgl/graph/VKRenderResource.h +++ b/inc/hgl/graph/VKRenderResource.h @@ -55,7 +55,7 @@ class RenderResource public: //注:并非一定要走这里,这里只是提供一个注册和自动绑定的机制 - DescriptorBinding global_descriptor; ///<全局属性描述符绑定管理 + DescriptorBinding global_descriptor; ///<全局属性描述符绑定管理 public: diff --git a/inc/hgl/graph/VKRenderTarget.h b/inc/hgl/graph/VKRenderTarget.h index faec8838..fbd933f7 100644 --- a/inc/hgl/graph/VKRenderTarget.h +++ b/inc/hgl/graph/VKRenderTarget.h @@ -63,7 +63,7 @@ public: // command buffer /** * 交换链专用渲染目标 */ -class SwapchainRenderTarget:public RenderTarget +class RTSwapchain:public RenderTarget { VkDevice device; Swapchain *swapchain; @@ -75,8 +75,8 @@ class SwapchainRenderTarget:public RenderTarget public: - SwapchainRenderTarget(VkDevice dev,Swapchain *sc,DeviceQueue *q,Semaphore *rcs,Semaphore *pcs,RenderPass *rp); - ~SwapchainRenderTarget(); + RTSwapchain(VkDevice dev,Swapchain *sc,DeviceQueue *q,Semaphore *rcs,Semaphore *pcs,RenderPass *rp); + ~RTSwapchain(); Framebuffer * GetFramebuffer ()override {return swapchain->sc_fbo[current_frame];} Framebuffer * GetFramebuffer (const uint32_t index) {return swapchain->sc_fbo[index];} @@ -110,6 +110,6 @@ public: bool Submit(VkCommandBuffer); bool Submit(VkCommandBuffer,Semaphore *); -};//class SwapchainRenderTarget:public RenderTarget +};//class RTSwapchain:public RenderTarget VK_NAMESPACE_END #endif//HGL_GRAPH_VULKAN_RENDER_TARGET_INCLUDE diff --git a/src/SceneGraph/Vulkan/VKDevice.cpp b/src/SceneGraph/Vulkan/VKDevice.cpp index a44318a6..1038ec72 100644 --- a/src/SceneGraph/Vulkan/VKDevice.cpp +++ b/src/SceneGraph/Vulkan/VKDevice.cpp @@ -20,7 +20,7 @@ GPUDevice::GPUDevice(GPUDeviceAttribute *da) InitRenderPassManage(); - swapchainRT=nullptr; + sc_rt=nullptr; Resize(attr->surface_caps.currentExtent); texture_cmd_buf=CreateTextureCommandBuffer(); @@ -31,7 +31,7 @@ GPUDevice::~GPUDevice() { ClearRenderPassManage(); - SAFE_CLEAR(swapchainRT); + SAFE_CLEAR(sc_rt); SAFE_CLEAR(texture_queue); SAFE_CLEAR(texture_cmd_buf); @@ -41,13 +41,13 @@ GPUDevice::~GPUDevice() bool GPUDevice::Resize(const VkExtent2D &extent) { - SAFE_CLEAR(swapchainRT); + SAFE_CLEAR(sc_rt); attr->RefreshSurfaceCaps(); - swapchainRT=CreateSwapchainRenderTarget(); + sc_rt=CreateSwapchainRenderTarget(); - return(swapchainRT); + return(sc_rt); } VkCommandBuffer GPUDevice::CreateCommandBuffer() diff --git a/src/SceneGraph/Vulkan/VKDeviceRenderTarget.cpp b/src/SceneGraph/Vulkan/VKDeviceRenderTarget.cpp index 5b7b4b34..dcff03ee 100644 --- a/src/SceneGraph/Vulkan/VKDeviceRenderTarget.cpp +++ b/src/SceneGraph/Vulkan/VKDeviceRenderTarget.cpp @@ -57,7 +57,7 @@ RenderTarget *GPUDevice::CreateRT(const FramebufferInfo *fbi,const uint32_t fenc return CreateRT(fbi,rp,fence_count); } -SwapchainRenderTarget *GPUDevice::CreateSwapchainRenderTarget() +RTSwapchain *GPUDevice::CreateSwapchainRenderTarget() { Swapchain *sc=CreateSwapchain(attr->surface_caps.currentExtent); @@ -68,14 +68,14 @@ SwapchainRenderTarget *GPUDevice::CreateSwapchainRenderTarget() Semaphore *render_complete_semaphore=CreateGPUSemaphore(); Semaphore *present_complete_semaphore=CreateGPUSemaphore(); - SwapchainRenderTarget *srt=new SwapchainRenderTarget( attr->device, - sc, - q, - render_complete_semaphore, - present_complete_semaphore, - device_render_pass - ); + RTSwapchain *srt=new RTSwapchain( attr->device, + sc, + q, + render_complete_semaphore, + present_complete_semaphore, + device_render_pass + ); return srt; } -VK_NAMESPACE_END \ No newline at end of file +VK_NAMESPACE_END diff --git a/src/SceneGraph/Vulkan/VKSwapchainRenderTarget.cpp b/src/SceneGraph/Vulkan/VKSwapchainRenderTarget.cpp index e1fd3219..924326bc 100644 --- a/src/SceneGraph/Vulkan/VKSwapchainRenderTarget.cpp +++ b/src/SceneGraph/Vulkan/VKSwapchainRenderTarget.cpp @@ -3,7 +3,7 @@ #include VK_NAMESPACE_BEGIN -SwapchainRenderTarget::SwapchainRenderTarget(VkDevice dev,Swapchain *sc,DeviceQueue *q,Semaphore *rcs,Semaphore *pcs,RenderPass *rp):RenderTarget(q,rcs) +RTSwapchain::RTSwapchain(VkDevice dev,Swapchain *sc,DeviceQueue *q,Semaphore *rcs,Semaphore *pcs,RenderPass *rp):RenderTarget(q,rcs) { device=dev; @@ -24,13 +24,13 @@ SwapchainRenderTarget::SwapchainRenderTarget(VkDevice dev,Swapchain *sc,DeviceQu present_complete_semaphore=pcs; } -SwapchainRenderTarget::~SwapchainRenderTarget() +RTSwapchain::~RTSwapchain() { delete present_complete_semaphore; delete swapchain; } -int SwapchainRenderTarget::AcquireNextImage() +int RTSwapchain::AcquireNextImage() { if(vkAcquireNextImageKHR(device,swapchain->swap_chain,UINT64_MAX,*(this->present_complete_semaphore),VK_NULL_HANDLE,¤t_frame)==VK_SUCCESS) return current_frame; @@ -38,7 +38,7 @@ int SwapchainRenderTarget::AcquireNextImage() return -1; } -bool SwapchainRenderTarget::PresentBackbuffer(VkSemaphore *wait_semaphores,const uint32_t count) +bool RTSwapchain::PresentBackbuffer(VkSemaphore *wait_semaphores,const uint32_t count) { present_info.waitSemaphoreCount =count; present_info.pWaitSemaphores =wait_semaphores; @@ -58,19 +58,19 @@ bool SwapchainRenderTarget::PresentBackbuffer(VkSemaphore *wait_semaphores,const return(true); } -bool SwapchainRenderTarget::PresentBackbuffer() +bool RTSwapchain::PresentBackbuffer() { VkSemaphore sem=*render_complete_semaphore; return this->PresentBackbuffer(&sem,1); } -bool SwapchainRenderTarget::Submit(VkCommandBuffer cb) +bool RTSwapchain::Submit(VkCommandBuffer cb) { return queue->Submit(cb,present_complete_semaphore,render_complete_semaphore); } -bool SwapchainRenderTarget::Submit(VkCommandBuffer cb,Semaphore *pce) +bool RTSwapchain::Submit(VkCommandBuffer cb,Semaphore *pce) { return queue->Submit(cb,pce,render_complete_semaphore); }