RenderSurface改名为Device
This commit is contained in:
parent
d6f3e7bc36
commit
436da3f5b0
@ -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
|
||||
|
@ -5,6 +5,7 @@
|
||||
#include<vulkan/vulkan.h>
|
||||
#include<iostream>
|
||||
|
||||
#define VK_NAMESPACE hgl::graph::vulkan
|
||||
#define VK_NAMESPACE_BEGIN namespace hgl{namespace graph{namespace vulkan{
|
||||
#define VK_NAMESPACE_END }}}
|
||||
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -1,11 +1,11 @@
|
||||
#include"RenderSurface.h"
|
||||
#include"VKDevice.h"
|
||||
#include<hgl/type/Pair.h>
|
||||
|
||||
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["<<format<<"] stride length is 0,please use \"RenderSurface::CreateBuffer(VkBufferUsageFlags,VkDeviceSize,VkSharingMode)\" function.";
|
||||
std::cerr<<"format["<<format<<"] stride length is 0,please use \"Device::CreateBuffer(VkBufferUsageFlags,VkDeviceSize,VkSharingMode)\" function.";
|
||||
return(nullptr);
|
||||
}
|
||||
|
||||
@ -71,7 +71,7 @@ VertexBuffer *RenderSurface::CreateBuffer(VkBufferUsageFlags buf_usage,VkFormat
|
||||
return(new VertexBuffer(rsa->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;
|
@ -4,7 +4,7 @@
|
||||
#include<hgl/type/List.h>
|
||||
#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<RenderSurfaceAttribute>;
|
||||
using RefDeviceAttribute=SharedPtr<DeviceAttribute>;
|
||||
|
||||
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
|
@ -1,9 +1,9 @@
|
||||
#include"RenderSurfaceAttribute.h"
|
||||
#include"VKDeviceAttribute.h"
|
||||
#include<iostream>
|
||||
|
||||
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);
|
@ -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
|
@ -1,10 +1,10 @@
|
||||
#include"RenderSurface.h"
|
||||
#include"VKDevice.h"
|
||||
#include"VKInstance.h"
|
||||
#include<hgl/type/Smart.h>
|
||||
|
||||
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
|
@ -4,7 +4,7 @@
|
||||
#include<iostream>
|
||||
|
||||
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
|
||||
|
@ -5,7 +5,7 @@
|
||||
#include<hgl/type/List.h>
|
||||
#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<PhysicalDevice> &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实例
|
||||
|
@ -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;
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
#include"Window.h"
|
||||
#include"VKInstance.h"
|
||||
#include"RenderSurface.h"
|
||||
#include"VKDevice.h"
|
||||
#include"VKShader.h"
|
||||
|
||||
#include<io.h>
|
||||
@ -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: "<<render_device->GetDeviceName()<<std::endl;
|
||||
}
|
||||
|
||||
if(!LoadShader(render->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;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user