diff --git a/example/Vulkan/CMakeLists.txt b/example/Vulkan/CMakeLists.txt index d311021e..262511e4 100644 --- a/example/Vulkan/CMakeLists.txt +++ b/example/Vulkan/CMakeLists.txt @@ -11,9 +11,9 @@ SET(VULKAN_TEST_SOURCE_FILES main.cpp VKInstance.cpp VKPhysicalDevice.cpp VKCommandBuffer.cpp - RenderSurfaceAttribute.cpp - RenderSurfaceCreater.cpp - RenderSurface.cpp + VKDeviceAttribute.cpp + VKDeviceCreater.cpp + VKDevice.cpp VKBuffer.cpp VKDescriptorSet.cpp VKDescriptorSetLayout.cpp @@ -29,8 +29,8 @@ SET(VULKAN_TEST_HEADER_FILES VK.h VKPhysicalDevice.h VKCommandBuffer.h VKSurfaceExtensionName.h - RenderSurfaceAttribute.h - RenderSurface.h + VKDeviceAttribute.h + VKDevice.h VKBuffer.h VKDescriptorSetLayout.h VKDescriptorSet.h diff --git a/example/Vulkan/VK.h b/example/Vulkan/VK.h index f19ce1e5..5953810c 100644 --- a/example/Vulkan/VK.h +++ b/example/Vulkan/VK.h @@ -5,6 +5,7 @@ #include #include +#define VK_NAMESPACE hgl::graph::vulkan #define VK_NAMESPACE_BEGIN namespace hgl{namespace graph{namespace vulkan{ #define VK_NAMESPACE_END }}} diff --git a/example/Vulkan/VKBuffer.h b/example/Vulkan/VKBuffer.h index d93f953f..7c03bfba 100644 --- a/example/Vulkan/VKBuffer.h +++ b/example/Vulkan/VKBuffer.h @@ -20,7 +20,7 @@ protected: private: - friend class RenderSurface; + friend class Device; friend class VertexBuffer; Buffer(VkDevice d,const VulkanBuffer &vb) @@ -47,7 +47,7 @@ class VertexBuffer:public Buffer private: - friend class RenderSurface; + friend class Device; VertexBuffer(VkDevice d,const VulkanBuffer &vb,VkFormat fmt,uint32_t _stride,uint32_t _count):Buffer(d,vb) { diff --git a/example/Vulkan/RenderSurface.cpp b/example/Vulkan/VKDevice.cpp similarity index 89% rename from example/Vulkan/RenderSurface.cpp rename to example/Vulkan/VKDevice.cpp index 243cb65f..efc958a2 100644 --- a/example/Vulkan/RenderSurface.cpp +++ b/example/Vulkan/VKDevice.cpp @@ -1,11 +1,11 @@ -#include"RenderSurface.h" +#include"VKDevice.h" #include VK_NAMESPACE_BEGIN namespace { - bool CreateVulkanBuffer(VulkanBuffer &vb,const RenderSurfaceAttribute *rsa,VkBufferUsageFlags buf_usage,VkDeviceSize size,VkSharingMode sharing_mode) + bool CreateVulkanBuffer(VulkanBuffer &vb,const DeviceAttribute *rsa,VkBufferUsageFlags buf_usage,VkDeviceSize size,VkSharingMode sharing_mode) { VkBufferCreateInfo buf_info={}; buf_info.sType=VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO; @@ -51,13 +51,13 @@ namespace } }//namespace -VertexBuffer *RenderSurface::CreateBuffer(VkBufferUsageFlags buf_usage,VkFormat format,uint32_t count,VkSharingMode sharing_mode) +VertexBuffer *Device::CreateBuffer(VkBufferUsageFlags buf_usage,VkFormat format,uint32_t count,VkSharingMode sharing_mode) { const uint32_t stride=GetStrideByFormat(format); if(stride==0) { - std::cerr<<"format["<device,vb,format,stride,count)); } -Buffer *RenderSurface::CreateBuffer(VkBufferUsageFlags buf_usage,VkDeviceSize size,VkSharingMode sharing_mode) +Buffer *Device::CreateBuffer(VkBufferUsageFlags buf_usage,VkDeviceSize size,VkSharingMode sharing_mode) { VulkanBuffer vb; @@ -81,7 +81,7 @@ Buffer *RenderSurface::CreateBuffer(VkBufferUsageFlags buf_usage,VkDeviceSize si return(new Buffer(rsa->device,vb)); } -CommandBuffer *RenderSurface::CreateCommandBuffer() +CommandBuffer *Device::CreateCommandBuffer() { if(!rsa->cmd_pool) return(nullptr); @@ -103,7 +103,7 @@ CommandBuffer *RenderSurface::CreateCommandBuffer() return(new CommandBuffer(rsa->device,rsa->cmd_pool,cmd_buf)); } -//DescriptorSet *RenderSurface::CreateDescSet(int count) +//DescriptorSet *Device::CreateDescSet(int count) //{ // VkDescriptorSetAllocateInfo alloc_info[1]; // alloc_info[0].sType=VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO; @@ -118,7 +118,7 @@ CommandBuffer *RenderSurface::CreateCommandBuffer() // res=vkAllocateDescriptorSets(info.device,alloc_info,info.desc_set.data()); //} -RenderPass *RenderSurface::CreateRenderPass() +RenderPass *Device::CreateRenderPass() { VkAttachmentDescription attachments[2]; attachments[0].format=rsa->format; diff --git a/example/Vulkan/RenderSurface.h b/example/Vulkan/VKDevice.h similarity index 83% rename from example/Vulkan/RenderSurface.h rename to example/Vulkan/VKDevice.h index 0130a644..191a81c9 100644 --- a/example/Vulkan/RenderSurface.h +++ b/example/Vulkan/VKDevice.h @@ -4,7 +4,7 @@ #include #include"VK.h" #include"Window.h" -#include"RenderSurfaceAttribute.h" +#include"VKDeviceAttribute.h" #include"VKBuffer.h" #include"VKCommandBuffer.h" //#include"VKDescriptorSet.h" @@ -12,24 +12,24 @@ VK_NAMESPACE_BEGIN -using RefRenderSurfaceAttribute=SharedPtr; +using RefDeviceAttribute=SharedPtr; -class RenderSurface +class Device { - RefRenderSurfaceAttribute rsa; + RefDeviceAttribute rsa; private: - friend RenderSurface *CreateRenderSuface(VkInstance,const PhysicalDevice *,Window *); + friend Device *CreateRenderDevice(VkInstance,const PhysicalDevice *,Window *); - RenderSurface(RefRenderSurfaceAttribute &ref_rsa) + Device(RefDeviceAttribute &ref_rsa) { rsa=ref_rsa; } public: - virtual ~RenderSurface()=default; + virtual ~Device()=default; VkSurfaceKHR GetSurface () {return rsa->surface;} VkDevice GetDevice () {return rsa->device;} @@ -58,6 +58,6 @@ public: // DescriptorSet * CreateDescSet(int); RenderPass *CreateRenderPass(); -};//class RenderSurface +};//class Device VK_NAMESPACE_END #endif//HGL_GRAPH_RENDER_SURFACE_INCLUDE diff --git a/example/Vulkan/RenderSurfaceAttribute.cpp b/example/Vulkan/VKDeviceAttribute.cpp similarity index 96% rename from example/Vulkan/RenderSurfaceAttribute.cpp rename to example/Vulkan/VKDeviceAttribute.cpp index 45389ceb..850bc5e4 100644 --- a/example/Vulkan/RenderSurfaceAttribute.cpp +++ b/example/Vulkan/VKDeviceAttribute.cpp @@ -1,9 +1,9 @@ -#include"RenderSurfaceAttribute.h" +#include"VKDeviceAttribute.h" #include VK_NAMESPACE_BEGIN -RenderSurfaceAttribute::RenderSurfaceAttribute(VkInstance inst,const PhysicalDevice *pd,VkSurfaceKHR s) +DeviceAttribute::DeviceAttribute(VkInstance inst,const PhysicalDevice *pd,VkSurfaceKHR s) { instance=inst; physical_device=pd; @@ -128,7 +128,7 @@ RenderSurfaceAttribute::RenderSurfaceAttribute(VkInstance inst,const PhysicalDev } } -RenderSurfaceAttribute::~RenderSurfaceAttribute() +DeviceAttribute::~DeviceAttribute() { if(desc_pool) vkDestroyDescriptorPool(device,desc_pool,nullptr); diff --git a/example/Vulkan/RenderSurfaceAttribute.h b/example/Vulkan/VKDeviceAttribute.h similarity index 91% rename from example/Vulkan/RenderSurfaceAttribute.h rename to example/Vulkan/VKDeviceAttribute.h index 3772e77d..e9b79d91 100644 --- a/example/Vulkan/RenderSurfaceAttribute.h +++ b/example/Vulkan/VKDeviceAttribute.h @@ -7,7 +7,7 @@ VK_NAMESPACE_BEGIN constexpr uint32_t ERROR_FAMILY_INDEX=UINT32_MAX; -struct RenderSurfaceAttribute +struct DeviceAttribute { VkInstance instance =nullptr; const PhysicalDevice * physical_device =nullptr; @@ -49,12 +49,12 @@ struct RenderSurfaceAttribute public: - RenderSurfaceAttribute(VkInstance inst,const PhysicalDevice *pd,VkSurfaceKHR s); - ~RenderSurfaceAttribute(); + DeviceAttribute(VkInstance inst,const PhysicalDevice *pd,VkSurfaceKHR s); + ~DeviceAttribute(); bool CheckMemoryType(uint32_t typeBits,VkFlags requirements_mask,uint32_t *typeIndex) const { return physical_device->CheckMemoryType(typeBits,requirements_mask,typeIndex); } -};//class RenderSurfaceAttribute +};//class DeviceAttribute VK_NAMESPACE_END diff --git a/example/Vulkan/RenderSurfaceCreater.cpp b/example/Vulkan/VKDeviceCreater.cpp similarity index 95% rename from example/Vulkan/RenderSurfaceCreater.cpp rename to example/Vulkan/VKDeviceCreater.cpp index 077eaa00..c5381352 100644 --- a/example/Vulkan/RenderSurfaceCreater.cpp +++ b/example/Vulkan/VKDeviceCreater.cpp @@ -1,10 +1,10 @@ -#include"RenderSurface.h" +#include"VKDevice.h" #include"VKInstance.h" #include VK_NAMESPACE_BEGIN -VkSurfaceKHR CreateSurface(VkInstance,Window *); +VkSurfaceKHR CreateRenderDevice(VkInstance,Window *); namespace { @@ -82,7 +82,7 @@ namespace return(nullptr); } - VkSwapchainKHR CreateSwapChain(RenderSurfaceAttribute *rsa) + VkSwapchainKHR CreateSwapChain(DeviceAttribute *rsa) { VkSwapchainCreateInfoKHR swapchain_ci={}; @@ -162,7 +162,7 @@ namespace return CreateImageView(device,VK_IMAGE_VIEW_TYPE_2D,format,VK_IMAGE_ASPECT_DEPTH_BIT,img); } - bool CreateSwapchainImageView(RenderSurfaceAttribute *rsa) + bool CreateSwapchainImageView(DeviceAttribute *rsa) { uint32_t count; @@ -195,7 +195,7 @@ namespace return(true); } - bool CreateDepthBuffer(RenderSurfaceAttribute *rsa) + bool CreateDepthBuffer(DeviceAttribute *rsa) { VkImageCreateInfo image_info={}; @@ -289,14 +289,14 @@ namespace } }//namespace -RenderSurface *CreateRenderSuface(VkInstance inst,const PhysicalDevice *physical_device,Window *win) +Device *CreateRenderDevice(VkInstance inst,const PhysicalDevice *physical_device,Window *win) { - VkSurfaceKHR surface=CreateSurface(inst,win); + VkSurfaceKHR surface=CreateRenderDevice(inst,win); if(!surface) return(nullptr); - RefRenderSurfaceAttribute rsa=new RenderSurfaceAttribute(inst,physical_device,surface); + RefDeviceAttribute rsa=new DeviceAttribute(inst,physical_device,surface); rsa->swapchain_extent=GetSwapchainExtent(rsa->surface_caps,win->GetWidth(),win->GetHeight()); @@ -329,6 +329,6 @@ RenderSurface *CreateRenderSuface(VkInstance inst,const PhysicalDevice *physical if(!rsa->desc_pool) return(nullptr); - return(new RenderSurface(rsa)); + return(new Device(rsa)); } VK_NAMESPACE_END diff --git a/example/Vulkan/VKInstance.cpp b/example/Vulkan/VKInstance.cpp index 1c76b6ff..1c790ba2 100644 --- a/example/Vulkan/VKInstance.cpp +++ b/example/Vulkan/VKInstance.cpp @@ -4,7 +4,7 @@ #include VK_NAMESPACE_BEGIN -RenderSurface *CreateRenderSuface(VkInstance,const PhysicalDevice *,Window *); +Device *CreateRenderDevice(VkInstance,const PhysicalDevice *,Window *); namespace { @@ -254,7 +254,7 @@ const PhysicalDevice *Instance::GetDevice(VkPhysicalDeviceType type)const return(nullptr); } -RenderSurface *Instance::CreateSurface(Window *win,const PhysicalDevice *pd) +Device *Instance::CreateRenderDevice(Window *win,const PhysicalDevice *pd) { if(!win) return(nullptr); @@ -266,6 +266,6 @@ RenderSurface *Instance::CreateSurface(Window *win,const PhysicalDevice *pd) if(!pd) return(nullptr); - return CreateRenderSuface(inst,pd,win); + return VK_NAMESPACE::CreateRenderDevice(inst,pd,win); } VK_NAMESPACE_END diff --git a/example/Vulkan/VKInstance.h b/example/Vulkan/VKInstance.h index 58e9324d..4f778c1b 100644 --- a/example/Vulkan/VKInstance.h +++ b/example/Vulkan/VKInstance.h @@ -5,7 +5,7 @@ #include #include"Window.h" #include"VK.h" -#include"RenderSurface.h" +#include"VKDevice.h" VK_NAMESPACE_BEGIN class Instance @@ -40,7 +40,7 @@ VK_NAMESPACE_BEGIN const ObjectList &GetDeviceList ()const {return physical_devices;} const PhysicalDevice * GetDevice (VkPhysicalDeviceType)const; - RenderSurface * CreateSurface (Window *,const PhysicalDevice *pd=nullptr); + Device * CreateRenderDevice (Window *,const PhysicalDevice *pd=nullptr); };//class Instance Instance *CreateInstance(const UTF8String &); ///<创建一个Vulkan实例 diff --git a/example/Vulkan/WinWindow.cpp b/example/Vulkan/WinWindow.cpp index 3dd88e2f..2e75df75 100644 --- a/example/Vulkan/WinWindow.cpp +++ b/example/Vulkan/WinWindow.cpp @@ -179,7 +179,7 @@ namespace hgl }//namespace hgl VK_NAMESPACE_BEGIN -VkSurfaceKHR CreateSurface(VkInstance vk_inst,Window *win) +VkSurfaceKHR CreateRenderDevice(VkInstance vk_inst,Window *win) { WinWindow *ww=(WinWindow *)win; diff --git a/example/Vulkan/main.cpp b/example/Vulkan/main.cpp index 73c6d1b8..a7f43483 100644 --- a/example/Vulkan/main.cpp +++ b/example/Vulkan/main.cpp @@ -1,6 +1,6 @@ #include"Window.h" #include"VKInstance.h" -#include"RenderSurface.h" +#include"VKDevice.h" #include"VKShader.h" #include @@ -81,9 +81,9 @@ int main(int,char **) return(-1); } - vulkan::RenderSurface *render=inst->CreateSurface(win); + vulkan::Device *device=inst->CreateRenderDevice(win); - if(!render) + if(!device) { delete inst; delete win; @@ -91,17 +91,17 @@ int main(int,char **) } { - const vulkan::PhysicalDevice *render_device=render->GetPhysicalDevice(); + const vulkan::PhysicalDevice *render_device=device->GetPhysicalDevice(); std::cout<<"auto select physical device: "<GetDeviceName()<GetDevice())) + if(!LoadShader(device->GetDevice())) return(-3); - vulkan::CommandBuffer *cmd_buf=render->CreateCommandBuffer(); + vulkan::CommandBuffer *cmd_buf=device->CreateCommandBuffer(); - vulkan::Buffer *ubo=render->CreateUBO(1024); + vulkan::Buffer *ubo=device->CreateUBO(1024); uint8_t *p=ubo->Map(); @@ -111,14 +111,14 @@ int main(int,char **) ubo->Unmap(); } - vulkan::RenderPass *rp=render->CreateRenderPass(); + vulkan::RenderPass *rp=device->CreateRenderPass(); delete rp; delete ubo; delete cmd_buf; - delete render; + delete device; delete inst; delete win;