diff --git a/example/2dVector/line.cpp b/example/2dVector/line.cpp index b9717cb4..55437739 100644 --- a/example/2dVector/line.cpp +++ b/example/2dVector/line.cpp @@ -37,9 +37,9 @@ private: vulkan::MaterialInstance * material_instance =nullptr; vulkan::RenderableInstance *render_instance =nullptr; - vulkan::Buffer * ubo_world_matrix =nullptr; - vulkan::Buffer * ubo_color_material =nullptr; - vulkan::Buffer * ubo_line_config =nullptr; + vulkan::GPUBuffer * ubo_world_matrix =nullptr; + vulkan::GPUBuffer * ubo_color_material =nullptr; + vulkan::GPUBuffer * ubo_line_config =nullptr; vulkan::Pipeline * pipeline =nullptr; @@ -61,9 +61,9 @@ private: return(true); } - vulkan::Buffer *CreateUBO(const AnsiString &name,const VkDeviceSize size,void *data) + vulkan::GPUBuffer *CreateUBO(const AnsiString &name,const VkDeviceSize size,void *data) { - vulkan::Buffer *ubo=db->CreateUBO(size,data); + vulkan::GPUBuffer *ubo=db->CreateUBO(size,data); if(!ubo) return(nullptr); diff --git a/example/Vulkan/Atomsphere.cpp b/example/Vulkan/Atomsphere.cpp index 69b56512..908f64cd 100644 --- a/example/Vulkan/Atomsphere.cpp +++ b/example/Vulkan/Atomsphere.cpp @@ -40,7 +40,7 @@ private: vulkan::MaterialInstance * material_instance =nullptr; vulkan::Pipeline * pipeline_solid =nullptr; - vulkan::Buffer * ubo_atomsphere =nullptr; + vulkan::GPUBuffer * ubo_atomsphere =nullptr; AtmosphereData atomsphere_data; vulkan::Renderable * ro_sphere =nullptr; diff --git a/example/Vulkan/DeferredModel.cpp b/example/Vulkan/DeferredModel.cpp index 18e7e97d..f6820018 100644 --- a/example/Vulkan/DeferredModel.cpp +++ b/example/Vulkan/DeferredModel.cpp @@ -16,7 +16,7 @@ using namespace hgl; using namespace hgl::graph; VK_NAMESPACE_BEGIN -Texture2D *CreateTextureFromFile(Device *device,const OSString &filename); +Texture2D *CreateTextureFromFile(RenderDevice *device,const OSString &filename); VK_NAMESPACE_END constexpr uint32_t SCREEN_WIDTH=512; diff --git a/example/Vulkan/DrawText.cpp b/example/Vulkan/DrawText.cpp index 68271f01..a291d599 100644 --- a/example/Vulkan/DrawText.cpp +++ b/example/Vulkan/DrawText.cpp @@ -28,8 +28,8 @@ private: vulkan::Sampler * sampler =nullptr; vulkan::MaterialInstance * material_instance =nullptr; - vulkan::Buffer * ubo_world_matrix =nullptr; - vulkan::Buffer * ubo_color =nullptr; + vulkan::GPUBuffer * ubo_world_matrix =nullptr; + vulkan::GPUBuffer * ubo_color =nullptr; vulkan::Pipeline * pipeline =nullptr; diff --git a/example/Vulkan/DrawTile.cpp b/example/Vulkan/DrawTile.cpp index e6c0832e..d1e719ca 100644 --- a/example/Vulkan/DrawTile.cpp +++ b/example/Vulkan/DrawTile.cpp @@ -42,7 +42,7 @@ private: vulkan::MaterialInstance * material_instance =nullptr; vulkan::Renderable * render_obj =nullptr; vulkan::RenderableInstance *render_instance =nullptr; - vulkan::Buffer * ubo_world_matrix =nullptr; + vulkan::GPUBuffer * ubo_world_matrix =nullptr; vulkan::Pipeline * pipeline =nullptr; diff --git a/example/Vulkan/FragCoordTest.cpp b/example/Vulkan/FragCoordTest.cpp index d6d9eb82..5e4e653b 100644 --- a/example/Vulkan/FragCoordTest.cpp +++ b/example/Vulkan/FragCoordTest.cpp @@ -28,7 +28,7 @@ private: vulkan::MaterialInstance * material_instance =nullptr; vulkan::RenderableInstance *renderable_instance =nullptr; - vulkan::Buffer * ubo_world_matrix =nullptr; + vulkan::GPUBuffer * ubo_world_matrix =nullptr; vulkan::Pipeline * pipeline =nullptr; diff --git a/example/Vulkan/Geometry2D.cpp b/example/Vulkan/Geometry2D.cpp index 80620174..d39755ba 100644 --- a/example/Vulkan/Geometry2D.cpp +++ b/example/Vulkan/Geometry2D.cpp @@ -35,8 +35,8 @@ private: *ro_circle =nullptr, *ro_round_rectangle =nullptr; - vulkan::Buffer * ubo_world_matrix =nullptr; - vulkan::Buffer * ubo_color_material =nullptr; + vulkan::GPUBuffer * ubo_world_matrix =nullptr; + vulkan::GPUBuffer * ubo_color_material =nullptr; vulkan::Pipeline * pipeline =nullptr; @@ -92,9 +92,9 @@ private: } } - vulkan::Buffer *CreateUBO(const AnsiString &name,const VkDeviceSize size,void *data) + vulkan::GPUBuffer *CreateUBO(const AnsiString &name,const VkDeviceSize size,void *data) { - vulkan::Buffer *ubo=db->CreateUBO(size,data); + vulkan::GPUBuffer *ubo=db->CreateUBO(size,data); if(!ubo) return(nullptr); diff --git a/example/Vulkan/Geometry3D.cpp b/example/Vulkan/Geometry3D.cpp index 6f4b1bb4..383763a2 100644 --- a/example/Vulkan/Geometry3D.cpp +++ b/example/Vulkan/Geometry3D.cpp @@ -16,7 +16,7 @@ class TestApp:public CameraAppFramework { Color4f color; - vulkan::Buffer *ubo_color=nullptr; + vulkan::GPUBuffer *ubo_color=nullptr; private: diff --git a/example/Vulkan/HQFilterTexture.cpp b/example/Vulkan/HQFilterTexture.cpp index 1ba73324..2655dd6e 100644 --- a/example/Vulkan/HQFilterTexture.cpp +++ b/example/Vulkan/HQFilterTexture.cpp @@ -10,7 +10,7 @@ using namespace hgl; using namespace hgl::graph; VK_NAMESPACE_BEGIN -Texture2D *CreateTextureFromFile(Device *device,const OSString &filename); +Texture2D *CreateTextureFromFile(RenderDevice *device,const OSString &filename); VK_NAMESPACE_END constexpr uint32_t SCREEN_SIZE=512; diff --git a/example/Vulkan/InlineGeometryScene.cpp b/example/Vulkan/InlineGeometryScene.cpp index 38a13a5d..189d6717 100644 --- a/example/Vulkan/InlineGeometryScene.cpp +++ b/example/Vulkan/InlineGeometryScene.cpp @@ -30,7 +30,7 @@ private: vulkan::Pipeline * pipeline_line =nullptr; vulkan::Pipeline * pipeline_solid =nullptr; - vulkan::Buffer * ubo_color =nullptr; + vulkan::GPUBuffer * ubo_color =nullptr; vulkan::Renderable *ro_plane_grid, *ro_cube, diff --git a/example/Vulkan/OffscreenRender.cpp b/example/Vulkan/OffscreenRender.cpp index 29818515..7310ee5a 100644 --- a/example/Vulkan/OffscreenRender.cpp +++ b/example/Vulkan/OffscreenRender.cpp @@ -16,7 +16,7 @@ class TestApp:public CameraAppFramework Camera cam; vulkan::MaterialInstance * material_instance =nullptr; - vulkan::Buffer * ubo_world_matrix =nullptr; + vulkan::GPUBuffer * ubo_world_matrix =nullptr; }; struct:public RenderObject diff --git a/example/Vulkan/RectanglePrimitive.cpp b/example/Vulkan/RectanglePrimitive.cpp index db40b476..6939fa81 100644 --- a/example/Vulkan/RectanglePrimitive.cpp +++ b/example/Vulkan/RectanglePrimitive.cpp @@ -10,7 +10,7 @@ using namespace hgl; using namespace hgl::graph; VK_NAMESPACE_BEGIN -Texture2D *CreateTextureFromFile(Device *device,const OSString &filename); +Texture2D *CreateTextureFromFile(RenderDevice *device,const OSString &filename); VK_NAMESPACE_END constexpr uint32_t SCREEN_SIZE=512; @@ -41,7 +41,7 @@ private: vulkan::MaterialInstance * material_instance =nullptr; vulkan::Renderable * render_obj =nullptr; vulkan::RenderableInstance *render_instance =nullptr; - vulkan::Buffer * ubo_world_matrix =nullptr; + vulkan::GPUBuffer * ubo_world_matrix =nullptr; vulkan::Pipeline * pipeline =nullptr; diff --git a/example/Vulkan/TextureFormat.cpp b/example/Vulkan/TextureFormat.cpp index 35d2dd50..b3f80cf6 100644 --- a/example/Vulkan/TextureFormat.cpp +++ b/example/Vulkan/TextureFormat.cpp @@ -63,8 +63,8 @@ int main(int,char **) { Window * win =nullptr; vulkan::Instance * inst =nullptr; - vulkan::Device * device =nullptr; - const vulkan::PhysicalDevice *physical_device =nullptr; + vulkan::RenderDevice * device =nullptr; + const vulkan::PhysicalRenderDevice *physical_device =nullptr; inst=InitVulkanInstance(); diff --git a/example/Vulkan/first_triangle.cpp b/example/Vulkan/first_triangle.cpp index 3e83295c..8a8cec3f 100644 --- a/example/Vulkan/first_triangle.cpp +++ b/example/Vulkan/first_triangle.cpp @@ -34,7 +34,7 @@ private: vulkan::MaterialInstance * material_instance =nullptr; vulkan::RenderableInstance *render_instance =nullptr; - vulkan::Buffer * ubo_world_matrix =nullptr; + vulkan::GPUBuffer * ubo_world_matrix =nullptr; vulkan::Pipeline * pipeline =nullptr; diff --git a/example/Vulkan/indices_rect.cpp b/example/Vulkan/indices_rect.cpp index e60b72e6..574d8183 100644 --- a/example/Vulkan/indices_rect.cpp +++ b/example/Vulkan/indices_rect.cpp @@ -38,7 +38,7 @@ private: vulkan::MaterialInstance * material_instance =nullptr; vulkan::RenderableInstance *renderable_instance =nullptr; - vulkan::Buffer * ubo_world_matrix =nullptr; + vulkan::GPUBuffer * ubo_world_matrix =nullptr; vulkan::Pipeline * pipeline =nullptr; diff --git a/example/Vulkan/texture_rect.cpp b/example/Vulkan/texture_rect.cpp index eb38522c..f6e1fd96 100644 --- a/example/Vulkan/texture_rect.cpp +++ b/example/Vulkan/texture_rect.cpp @@ -11,7 +11,7 @@ using namespace hgl; using namespace hgl::graph; VK_NAMESPACE_BEGIN -Texture2D *CreateTextureFromFile(Device *device,const OSString &filename); +Texture2D *CreateTextureFromFile(RenderDevice *device,const OSString &filename); VK_NAMESPACE_END constexpr uint32_t SCREEN_WIDTH=256; @@ -53,7 +53,7 @@ private: vulkan::Sampler * sampler =nullptr; vulkan::MaterialInstance * material_instance =nullptr; vulkan::RenderableInstance *renderable_instance =nullptr; - vulkan::Buffer * ubo_world_matrix =nullptr; + vulkan::GPUBuffer * ubo_world_matrix =nullptr; vulkan::Pipeline * pipeline =nullptr; private: diff --git a/example/common/VulkanAppFramework.h b/example/common/VulkanAppFramework.h index c7081ecf..cf7b0ff5 100644 --- a/example/common/VulkanAppFramework.h +++ b/example/common/VulkanAppFramework.h @@ -46,7 +46,7 @@ protected: protected: - vulkan::Device * device =nullptr; + vulkan::RenderDevice * device =nullptr; vulkan::SwapchainRenderTarget * sc_render_target =nullptr; protected: @@ -332,7 +332,7 @@ class CameraAppFramework:public VulkanApplicationFramework { private: - vulkan::Buffer * ubo_world_matrix =nullptr; + vulkan::GPUBuffer * ubo_world_matrix =nullptr; protected: @@ -375,7 +375,7 @@ public: camera.height=h; } - vulkan::Buffer *GetCameraMatrixBuffer() + vulkan::GPUBuffer *GetCameraMatrixBuffer() { return ubo_world_matrix; } diff --git a/inc/hgl/graph/TileData.h b/inc/hgl/graph/TileData.h index b79be1f1..62875a60 100644 --- a/inc/hgl/graph/TileData.h +++ b/inc/hgl/graph/TileData.h @@ -33,7 +33,7 @@ namespace hgl */ class TileData ///Tile纹理管理 { - Device *device; + RenderDevice *device; protected: @@ -48,7 +48,7 @@ namespace hgl protected: - vulkan::Buffer *tile_buffer; /// commit_list; uint8 *commit_ptr; @@ -67,7 +67,7 @@ namespace hgl public: - TileData(Device *,Texture2D *,const uint tw,const uint th); + TileData(RenderDevice *,Texture2D *,const uint tw,const uint th); virtual ~TileData(); void BeginCommit(); diff --git a/inc/hgl/graph/VK.h b/inc/hgl/graph/VK.h index cacaa6be..d7eac27b 100644 --- a/inc/hgl/graph/VK.h +++ b/inc/hgl/graph/VK.h @@ -14,9 +14,9 @@ VK_NAMESPACE_BEGIN using CharPointerList=hgl::List; class Instance; -class PhysicalDevice; -class Device; -struct DeviceAttribute; +class PhysicalRenderDevice; +class RenderDevice; +struct RenderDeviceAttribute; class ImageView; class Framebuffer; struct Swapchain; @@ -34,8 +34,8 @@ class TextureCubemapArray; class Sampler; -class Memory; -class Buffer; +class GPUMemory; +class GPUBuffer; struct BufferData; class VertexAttribBuffer; @@ -45,7 +45,7 @@ class IndexBuffer; class CommandBuffer; class RenderPass; -class Fence; +class GPUFence; class GPUSemaphore; class DescriptorSetLayoutCreater; diff --git a/inc/hgl/graph/VKBuffer.h b/inc/hgl/graph/VKBuffer.h index 4e194677..3bd8d7a0 100644 --- a/inc/hgl/graph/VKBuffer.h +++ b/inc/hgl/graph/VKBuffer.h @@ -7,11 +7,11 @@ VK_NAMESPACE_BEGIN struct BufferData { VkBuffer buffer; - Memory * memory=nullptr; + GPUMemory * memory=nullptr; VkDescriptorBufferInfo info; };//struct BufferData -class Buffer +class GPUBuffer { protected: @@ -20,11 +20,11 @@ protected: private: - friend class Device; + friend class RenderDevice; friend class VertexAttribBuffer; friend class IndexBuffer; - Buffer(VkDevice d,const BufferData &b) + GPUBuffer(VkDevice d,const BufferData &b) { device=d; buf=b; @@ -32,10 +32,10 @@ private: public: - virtual ~Buffer(); + virtual ~GPUBuffer(); VkBuffer GetBuffer (){return buf.buffer;} - Memory * GetMemory (){return buf.memory;} + GPUMemory * GetMemory (){return buf.memory;} const VkDescriptorBufferInfo * GetBufferInfo()const{return &buf.info;} void * Map () {return buf.memory->Map();} @@ -45,9 +45,9 @@ public: bool Write (const void *ptr,uint32_t start,uint32_t size) {return buf.memory->Write(ptr,start,size);} bool Write (const void *ptr,uint32_t size) {return buf.memory->Write(ptr,0,size);} bool Write (const void *ptr) {return buf.memory->Write(ptr);} -};//class Buffer +};//class GPUBuffer -class VertexAttribBuffer:public Buffer +class VertexAttribBuffer:public GPUBuffer { VkFormat format; ///<数据格式 uint32_t stride; ///<单个数据字节数 @@ -55,9 +55,9 @@ class VertexAttribBuffer:public Buffer private: - friend class Device; + friend class RenderDevice; - VertexAttribBuffer(VkDevice d,const BufferData &vb,VkFormat fmt,uint32_t _stride,uint32_t _count):Buffer(d,vb) + VertexAttribBuffer(VkDevice d,const BufferData &vb,VkFormat fmt,uint32_t _stride,uint32_t _count):GPUBuffer(d,vb) { format=fmt; stride=_stride; @@ -74,22 +74,22 @@ public: void *Map(VkDeviceSize start=0,VkDeviceSize size=0) override { - return Buffer::Map(start*stride,size*stride); + return GPUBuffer::Map(start*stride,size*stride); } -};//class VertexAttribBuffer:public Buffer +};//class VertexAttribBuffer:public GPUBuffer using VAB=VertexAttribBuffer; -class IndexBuffer:public Buffer +class IndexBuffer:public GPUBuffer { IndexType index_type; uint32_t count; private: - friend class Device; + friend class RenderDevice; - IndexBuffer(VkDevice d,const BufferData &vb,IndexType it,uint32_t _count):Buffer(d,vb) + IndexBuffer(VkDevice d,const BufferData &vb,IndexType it,uint32_t _count):GPUBuffer(d,vb) { index_type=it; count=_count; @@ -101,6 +101,6 @@ public: const IndexType GetType ()const{return index_type;} const uint32 GetCount()const{return count;} -};//class IndexBuffer:public Buffer +};//class IndexBuffer:public GPUBuffer VK_NAMESPACE_END #endif//HGL_GRAPH_VULKAN_BUFFER_INCLUDE diff --git a/inc/hgl/graph/VKDatabase.h b/inc/hgl/graph/VKDatabase.h index 093a1ca3..7971cb0b 100644 --- a/inc/hgl/graph/VKDatabase.h +++ b/inc/hgl/graph/VKDatabase.h @@ -31,7 +31,7 @@ class VertexAttribData; */ class Database { - Device *device; + RenderDevice *device; MapObject shader_module_by_name; Map material_by_name; @@ -41,14 +41,14 @@ class Database IDResManage rm_pipeline; ///<管线合集 IDResManage rm_desc_sets; ///<描述符合集 IDResManage rm_renderables; ///<可渲染对象合集 - IDResManage rm_buffers; ///<顶点缓冲区合集 + IDResManage rm_buffers; ///<顶点缓冲区合集 IDResManage rm_samplers; ///<采样器合集 IDResManage rm_textures; ///<纹理合集 IDResManage rm_renderable_instances; ///<渲染实例集合集 public: - Database(Device *dev):device(dev){} + Database(RenderDevice *dev):device(dev){} virtual ~Database()=default; public: //Add @@ -58,7 +58,7 @@ public: //Add PipelineID Add(Pipeline * p ){return rm_pipeline.Add(p);} DescriptorSetsID Add(DescriptorSets * ds ){return rm_desc_sets.Add(ds);} RenderableID Add(Renderable * r ){return rm_renderables.Add(r);} - BufferID Add(Buffer * buf ){return rm_buffers.Add(buf);} + BufferID Add(GPUBuffer * buf ){return rm_buffers.Add(buf);} SamplerID Add(Sampler * s ){return rm_samplers.Add(s);} TextureID Add(Texture * t ){return rm_textures.Add(t);} RenderableInstanceID Add(RenderableInstance *ri ){return rm_renderable_instances.Add(ri);} @@ -69,8 +69,8 @@ public: // VBO/VAO VAB *CreateVAB(VkFormat format,uint32_t count,SharingMode sm=SharingMode::Exclusive){return CreateVAB(format,count,nullptr,sm);} VAB *CreateVAB(const VAD *vad,SharingMode sm=SharingMode::Exclusive){return CreateVAB(vad->GetVulkanFormat(),vad->GetCount(),vad->GetData(),sm);} - #define SCENE_DB_CREATE_FUNC(name) Buffer *Create##name(VkDeviceSize size,void *data,SharingMode sm=SharingMode::Exclusive); \ - Buffer *Create##name(VkDeviceSize size,SharingMode sm=SharingMode::Exclusive); + #define SCENE_DB_CREATE_FUNC(name) GPUBuffer *Create##name(VkDeviceSize size,void *data,SharingMode sm=SharingMode::Exclusive); \ + GPUBuffer *Create##name(VkDeviceSize size,SharingMode sm=SharingMode::Exclusive); SCENE_DB_CREATE_FUNC(UBO) SCENE_DB_CREATE_FUNC(SSBO) @@ -119,7 +119,7 @@ public: //Get Pipeline * GetPipeline (const PipelineID &id){return rm_pipeline.Get(id);} DescriptorSets * GetDescSets (const DescriptorSetsID &id){return rm_desc_sets.Get(id);} Renderable * GetRenderable (const RenderableID &id){return rm_renderables.Get(id);} - Buffer * GetBuffer (const BufferID &id){return rm_buffers.Get(id);} + GPUBuffer * GetBuffer (const BufferID &id){return rm_buffers.Get(id);} Sampler * GetSampler (const SamplerID &id){return rm_samplers.Get(id);} Texture * GetTexture (const TextureID &id){return rm_textures.Get(id);} RenderableInstance *GetRenderableInstance (const RenderableInstanceID &id){return rm_renderable_instances.Get(id);} diff --git a/inc/hgl/graph/VKDescriptorSets.h b/inc/hgl/graph/VKDescriptorSets.h index fb63b8f2..363370a9 100644 --- a/inc/hgl/graph/VKDescriptorSets.h +++ b/inc/hgl/graph/VKDescriptorSets.h @@ -4,7 +4,7 @@ #include #include VK_NAMESPACE_BEGIN -class Buffer; +class GPUBuffer; class DescriptorSets { @@ -39,8 +39,8 @@ public: const VkPipelineLayout GetPipelineLayout ()const{return pipeline_layout;} void Clear(); - bool BindUBO(const int binding,const Buffer *); - bool BindUBODynamic(const int binding,const Buffer *); + bool BindUBO(const int binding,const GPUBuffer *); + bool BindUBODynamic(const int binding,const GPUBuffer *); bool BindSampler(const int binding,Texture *,Sampler *); void Update(); };//class DescriptorSets diff --git a/inc/hgl/graph/VKDevice.h b/inc/hgl/graph/VKDevice.h index 04229418..a4bb37eb 100644 --- a/inc/hgl/graph/VKDevice.h +++ b/inc/hgl/graph/VKDevice.h @@ -26,9 +26,9 @@ namespace hgl }//namespace hgl VK_NAMESPACE_BEGIN -class Device +class RenderDevice { - DeviceAttribute *attr; + RenderDeviceAttribute *attr; SubmitQueue *textureSQ; CommandBuffer *texture_cmd_buf; @@ -43,20 +43,20 @@ class Device private: - friend Device *CreateRenderDevice(VkInstance inst,const PhysicalDevice *physical_device,VkSurfaceKHR surface,const VkExtent2D &extent); + friend RenderDevice *CreateRenderDevice(VkInstance inst,const PhysicalRenderDevice *physical_device,VkSurfaceKHR surface,const VkExtent2D &extent); - Device(DeviceAttribute *da); + RenderDevice(RenderDeviceAttribute *da); public: - virtual ~Device(); + virtual ~RenderDevice(); operator VkDevice () {return attr->device;} - DeviceAttribute * GetDeviceAttribute () {return attr;} + RenderDeviceAttribute * GetRenderDeviceAttribute () {return attr;} VkSurfaceKHR GetSurface () {return attr->surface;} VkDevice GetDevice ()const {return attr->device;} - const PhysicalDevice * GetPhysicalDevice ()const {return attr->physical_device;} + const PhysicalRenderDevice * GetPhysicalRenderDevice ()const {return attr->physical_device;} VkDescriptorPool GetDescriptorPool () {return attr->desc_pool;} VkPipelineCache GetPipelineCache () {return attr->pipeline_cache;} @@ -82,8 +82,8 @@ public: public: //内存相关 - Memory *CreateMemory(const VkMemoryRequirements &,const uint32_t properties); - Memory *CreateMemory(VkImage,const uint32 flag=VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); + GPUMemory *CreateMemory(const VkMemoryRequirements &,const uint32_t properties); + GPUMemory *CreateMemory(VkImage,const uint32 flag=VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); private: //Buffer相关 @@ -91,8 +91,8 @@ private: //Buffer相关 public: //Buffer相关 - Buffer * CreateBuffer(VkBufferUsageFlags buf_usage,VkDeviceSize size,const void *data, SharingMode sharing_mode=SharingMode::Exclusive); - Buffer * CreateBuffer(VkBufferUsageFlags buf_usage,VkDeviceSize size, SharingMode sharing_mode=SharingMode::Exclusive){return CreateBuffer(buf_usage,size,nullptr,sharing_mode);} + GPUBuffer * CreateBuffer(VkBufferUsageFlags buf_usage,VkDeviceSize size,const void *data, SharingMode sharing_mode=SharingMode::Exclusive); + GPUBuffer * CreateBuffer(VkBufferUsageFlags buf_usage,VkDeviceSize size, SharingMode sharing_mode=SharingMode::Exclusive){return CreateBuffer(buf_usage,size,nullptr,sharing_mode);} VAB * CreateVAB (VkFormat format,uint32_t count,const void *data, SharingMode sharing_mode=SharingMode::Exclusive); VAB * CreateVAB (VkFormat format,uint32_t count, SharingMode sharing_mode=SharingMode::Exclusive){return CreateVAB(format,count,nullptr,sharing_mode);} @@ -106,8 +106,8 @@ public: //Buffer相关 IndexBuffer * CreateIBO16 ( uint32_t count,SharingMode sharing_mode=SharingMode::Exclusive){return CreateIBO(IndexType::U16,count,nullptr,sharing_mode);} IndexBuffer * CreateIBO32 ( uint32_t count,SharingMode sharing_mode=SharingMode::Exclusive){return CreateIBO(IndexType::U32,count,nullptr,sharing_mode);} -#define CREATE_BUFFER_OBJECT(LargeName,type) Buffer *Create##LargeName(VkDeviceSize size,void *data,SharingMode sharing_mode=SharingMode::Exclusive){return CreateBuffer(VK_BUFFER_USAGE_##type##_BUFFER_BIT,size,data,sharing_mode);} \ - Buffer *Create##LargeName(VkDeviceSize size,SharingMode sharing_mode=SharingMode::Exclusive){return CreateBuffer(VK_BUFFER_USAGE_##type##_BUFFER_BIT,size,nullptr,sharing_mode);} +#define CREATE_BUFFER_OBJECT(LargeName,type) GPUBuffer *Create##LargeName(VkDeviceSize size,void *data,SharingMode sharing_mode=SharingMode::Exclusive){return CreateBuffer(VK_BUFFER_USAGE_##type##_BUFFER_BIT,size,data,sharing_mode);} \ + GPUBuffer *Create##LargeName(VkDeviceSize size,SharingMode sharing_mode=SharingMode::Exclusive){return CreateBuffer(VK_BUFFER_USAGE_##type##_BUFFER_BIT,size,nullptr,sharing_mode);} CREATE_BUFFER_OBJECT(UBO,UNIFORM) CREATE_BUFFER_OBJECT(SSBO,STORAGE) @@ -131,7 +131,7 @@ public: //Texture void Clear(TextureCreateInfo *); - Texture2D *CreateTexture2D(Memory *mem,VkImage image,ImageView *image_view,VkImageLayout image_layout,ImageTiling tiling); + Texture2D *CreateTexture2D(GPUMemory *mem,VkImage image,ImageView *image_view,VkImageLayout image_layout,ImageTiling tiling); Texture2D *CreateTexture2D(VkFormat format,uint32_t width,uint32_t height,VkImageAspectFlags aspectMask,VkImage image,VkImageLayout image_layout,ImageTiling tiling=ImageTiling::Optimal); Texture2D *CreateTexture2D(const VkFormat format,uint32_t width,uint32_t height,const VkImageAspectFlags aspectMask,const uint usage,const VkImageLayout image_layout,ImageTiling tiling=ImageTiling::Optimal); @@ -183,7 +183,7 @@ public: //Texture VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL); } - Texture2D *CreateTexture2D( const VkFormat video_format,Buffer *buf,uint32_t width,uint32_t height, + Texture2D *CreateTexture2D( const VkFormat video_format,GPUBuffer *buf,uint32_t width,uint32_t height, const VkImageAspectFlags aspectMask =VK_IMAGE_ASPECT_COLOR_BIT, const uint usage =VK_IMAGE_USAGE_TRANSFER_DST_BIT|VK_IMAGE_USAGE_SAMPLED_BIT, const VkImageLayout image_layout=VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, @@ -195,14 +195,14 @@ public: //Texture const VkImageLayout image_layout=VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, const ImageTiling tiling =ImageTiling::Optimal); - bool ChangeTexture2D(Texture2D *,Buffer *buf,const VkBufferImageCopy *,const int count); - bool ChangeTexture2D(Texture2D *,Buffer *buf,const List &); + bool ChangeTexture2D(Texture2D *,GPUBuffer *buf,const VkBufferImageCopy *,const int count); + bool ChangeTexture2D(Texture2D *,GPUBuffer *buf,const List &); - bool ChangeTexture2D(Texture2D *,Buffer *buf,uint32_t left,uint32_t top,uint32_t width,uint32_t height); + bool ChangeTexture2D(Texture2D *,GPUBuffer *buf,uint32_t left,uint32_t top,uint32_t width,uint32_t height); bool ChangeTexture2D(Texture2D *,void *data,uint32_t left,uint32_t top,uint32_t width,uint32_t height,uint32_t size); template - bool ChangeTexture2D(Texture2D *tex,Buffer *buf,const RectScope2 &rs) + bool ChangeTexture2D(Texture2D *tex,GPUBuffer *buf,const RectScope2 &rs) { return ChangeTexture2D( tex, buf, @@ -238,7 +238,7 @@ public: //shader & material Material *CreateMaterial(const VertexShaderModule *vertex_shader_module,const ShaderModule *fragment_shader_module); Material *CreateMaterial(const VertexShaderModule *vertex_shader_module,const ShaderModule *geometry_shader_module,const ShaderModule *fragment_shader_module); -public: //Command Buffer 相关 +public: //Command GPUBuffer 相关 CommandBuffer * CreateCommandBuffer(const VkExtent2D &extent,const uint32_t atta_count); @@ -260,7 +260,7 @@ public: //Command Buffer 相关 const VkImageLayout color_final_layout=VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, const VkImageLayout depth_final_layout=VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL); - Fence * CreateFence(bool); + GPUFence * CreateFence(bool); vulkan::GPUSemaphore * CreateSemaphore(); public: //FrameBuffer相关 @@ -312,7 +312,7 @@ public: TileData *CreateTileData(const VkFormat video_format,const uint width,const uint height,const uint count); ///<创建一个Tile数据集 TileFont *CreateTileFont(FontSource *fs,int limit_count=-1); ///<创建一个Tile字体 -};//class Device +};//class RenderDevice //void CreateSubpassDependency(VkSubpassDependency *); void CreateSubpassDependency(List &dependency,const uint32_t count); @@ -333,6 +333,6 @@ bool CreateAttachmentDescription( List &color_outp const VkImageLayout color_final_layout=VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, const VkImageLayout depth_final_layout=VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL); -Device *CreateRenderDevice(Instance *inst,Window *win,const PhysicalDevice *physical_device=nullptr); +RenderDevice *CreateRenderDevice(Instance *inst,Window *win,const PhysicalRenderDevice *physical_device=nullptr); VK_NAMESPACE_END #endif//HGL_GRAPH_RENDER_SURFACE_INCLUDE diff --git a/inc/hgl/graph/VKDeviceAttribute.h b/inc/hgl/graph/VKDeviceAttribute.h index b0a3900d..a3617bba 100644 --- a/inc/hgl/graph/VKDeviceAttribute.h +++ b/inc/hgl/graph/VKDeviceAttribute.h @@ -6,10 +6,10 @@ VK_NAMESPACE_BEGIN constexpr uint32_t ERROR_FAMILY_INDEX=UINT32_MAX; -struct DeviceAttribute +struct RenderDeviceAttribute { VkInstance instance =VK_NULL_HANDLE; - const PhysicalDevice * physical_device =nullptr; + const PhysicalRenderDevice * physical_device =nullptr; VkSurfaceKHR surface =VK_NULL_HANDLE; VkSurfaceCapabilitiesKHR surface_caps; @@ -39,11 +39,11 @@ struct DeviceAttribute public: - DeviceAttribute(VkInstance inst,const PhysicalDevice *pd,VkSurfaceKHR s); - ~DeviceAttribute(); + RenderDeviceAttribute(VkInstance inst,const PhysicalRenderDevice *pd,VkSurfaceKHR s); + ~RenderDeviceAttribute(); bool CheckMemoryType(uint32_t typeBits,VkMemoryPropertyFlags properties,uint32_t *typeIndex) const; void Refresh(); -};//class DeviceAttribute +};//class RenderDeviceAttribute VK_NAMESPACE_END diff --git a/inc/hgl/graph/VKFence.h b/inc/hgl/graph/VKFence.h index 0ad8ab4a..b689cd46 100644 --- a/inc/hgl/graph/VKFence.h +++ b/inc/hgl/graph/VKFence.h @@ -3,16 +3,16 @@ #include VK_NAMESPACE_BEGIN -class Fence +class GPUFence { VkDevice device; VkFence fence; private: - friend class Device; + friend class RenderDevice; - Fence(VkDevice d,VkFence f) + GPUFence(VkDevice d,VkFence f) { device=d; fence=f; @@ -20,9 +20,9 @@ private: public: - ~Fence(); + ~GPUFence(); operator VkFence(){return fence;} -};//class Fence +};//class GPUFence VK_NAMESPACE_END #endif//HGL_VULKAN_GRAPH_FENCE_INCLUDE diff --git a/inc/hgl/graph/VKFramebuffer.h b/inc/hgl/graph/VKFramebuffer.h index d34cefbe..b851288c 100644 --- a/inc/hgl/graph/VKFramebuffer.h +++ b/inc/hgl/graph/VKFramebuffer.h @@ -16,7 +16,7 @@ class Framebuffer private: - friend class Device; + friend class RenderDevice; Framebuffer(VkDevice,VkFramebuffer,const VkExtent2D &,VkRenderPass,uint32_t color_count,bool depth); diff --git a/inc/hgl/graph/VKInstance.h b/inc/hgl/graph/VKInstance.h index 6f25a578..a3343997 100644 --- a/inc/hgl/graph/VKInstance.h +++ b/inc/hgl/graph/VKInstance.h @@ -55,7 +55,7 @@ VK_NAMESPACE_BEGIN VKDebugOut *debug_out; - ObjectList physical_devices; + ObjectList physical_devices; private: @@ -69,8 +69,8 @@ VK_NAMESPACE_BEGIN operator VkInstance (){return inst;} - const ObjectList &GetDeviceList ()const {return physical_devices;} - const PhysicalDevice * GetDevice (VkPhysicalDeviceType)const; + const ObjectList &GetDeviceList ()const {return physical_devices;} + const PhysicalRenderDevice * GetDevice (VkPhysicalDeviceType)const; };//class Instance void InitVulkanProperties(); diff --git a/inc/hgl/graph/VKMaterialInstance.h b/inc/hgl/graph/VKMaterialInstance.h index 4642eec7..18a7ea74 100644 --- a/inc/hgl/graph/VKMaterialInstance.h +++ b/inc/hgl/graph/VKMaterialInstance.h @@ -25,7 +25,7 @@ public: ~MaterialInstance(); - bool BindUBO(const AnsiString &name,vulkan::Buffer *ubo); + bool BindUBO(const AnsiString &name,vulkan::GPUBuffer *ubo); bool BindSampler(const AnsiString &name,Texture *tex,Sampler *sampler); void Update(); diff --git a/inc/hgl/graph/VKMemory.h b/inc/hgl/graph/VKMemory.h index c6e24e3d..4e9a438d 100644 --- a/inc/hgl/graph/VKMemory.h +++ b/inc/hgl/graph/VKMemory.h @@ -3,7 +3,7 @@ #include VK_NAMESPACE_BEGIN -class Memory +class GPUMemory { VkDevice device; VkDeviceMemory memory; @@ -13,9 +13,9 @@ class Memory private: - friend class Device; + friend class RenderDevice; - Memory(VkDevice dev,VkDeviceMemory dm,const VkMemoryRequirements &mr,const uint32 i,const uint32_t p) + GPUMemory(VkDevice dev,VkDeviceMemory dm,const VkMemoryRequirements &mr,const uint32 i,const uint32_t p) { device=dev; memory=dm; @@ -26,7 +26,7 @@ private: public: - virtual ~Memory(); + virtual ~GPUMemory(); operator VkDeviceMemory(){return memory;} @@ -48,6 +48,6 @@ public: bool BindBuffer (VkBuffer buffer); bool BindImage (VkImage image); -};//class Memory +};//class GPUMemory VK_NAMESPACE_END #endif//HGL_GRAPH_VULKAN_MEMORY_INCLUDE diff --git a/inc/hgl/graph/VKPhysicalDevice.h b/inc/hgl/graph/VKPhysicalDevice.h index 7777d6ad..a902de5f 100644 --- a/inc/hgl/graph/VKPhysicalDevice.h +++ b/inc/hgl/graph/VKPhysicalDevice.h @@ -5,7 +5,7 @@ #include VK_NAMESPACE_BEGIN -class PhysicalDevice +class PhysicalRenderDevice { VkInstance instance=nullptr; VkPhysicalDevice physical_device=nullptr; @@ -18,8 +18,8 @@ class PhysicalDevice public: - PhysicalDevice(VkInstance,VkPhysicalDevice); - ~PhysicalDevice()=default; + PhysicalRenderDevice(VkInstance,VkPhysicalDevice); + ~PhysicalRenderDevice()=default; operator VkPhysicalDevice(){return physical_device;} operator const VkPhysicalDevice()const{return physical_device;} @@ -119,5 +119,5 @@ public: min_width =properties.limits.lineWidthRange[0]; max_width =properties.limits.lineWidthRange[1]; } -};//class PhysicalDevice +};//class PhysicalRenderDevice VK_NAMESPACE_END diff --git a/inc/hgl/graph/VKRenderPass.h b/inc/hgl/graph/VKRenderPass.h index 7b2ded1b..5ff7d8cb 100644 --- a/inc/hgl/graph/VKRenderPass.h +++ b/inc/hgl/graph/VKRenderPass.h @@ -18,7 +18,7 @@ class RenderPass private: - friend class Device; + friend class RenderDevice; RenderPass(VkDevice d,VkRenderPass rp,const List &cf,VkFormat df) { diff --git a/inc/hgl/graph/VKRenderTarget.h b/inc/hgl/graph/VKRenderTarget.h index 4c16758b..a283a08f 100644 --- a/inc/hgl/graph/VKRenderTarget.h +++ b/inc/hgl/graph/VKRenderTarget.h @@ -30,10 +30,10 @@ protected: protected: - friend class Device; + friend class RenderDevice; - RenderTarget(Device *dev,Framebuffer *_fb,CommandBuffer *_cb,const uint32_t fence_count=1); - RenderTarget(Device *dev,RenderPass *_rp,Framebuffer *_fb,CommandBuffer *_cb,Texture2D **color_texture_list,const uint32_t color_count,Texture2D *depth_texture,const uint32_t fence_count=1); + RenderTarget(RenderDevice *dev,Framebuffer *_fb,CommandBuffer *_cb,const uint32_t fence_count=1); + RenderTarget(RenderDevice *dev,RenderPass *_rp,Framebuffer *_fb,CommandBuffer *_cb,Texture2D **color_texture_list,const uint32_t color_count,Texture2D *depth_texture,const uint32_t fence_count=1); public: @@ -72,7 +72,7 @@ class SwapchainRenderTarget:public RenderTarget public: - SwapchainRenderTarget(Device *dev,Swapchain *sc); + SwapchainRenderTarget(RenderDevice *dev,Swapchain *sc); ~SwapchainRenderTarget(); const VkRenderPass GetRenderPass ()const override {return *main_rp;} diff --git a/inc/hgl/graph/VKSampler.h b/inc/hgl/graph/VKSampler.h index 1665f531..39613f39 100644 --- a/inc/hgl/graph/VKSampler.h +++ b/inc/hgl/graph/VKSampler.h @@ -12,7 +12,7 @@ class Sampler protected: - friend class Device; + friend class RenderDevice; Sampler(VkDevice dev,VkSampler s) { diff --git a/inc/hgl/graph/VKSemaphore.h b/inc/hgl/graph/VKSemaphore.h index 07cb4a2b..15455032 100644 --- a/inc/hgl/graph/VKSemaphore.h +++ b/inc/hgl/graph/VKSemaphore.h @@ -10,7 +10,7 @@ class GPUSemaphore private: - friend class Device; + friend class RenderDevice; GPUSemaphore(VkDevice d,VkSemaphore s) { diff --git a/inc/hgl/graph/VKSubmitQueue.h b/inc/hgl/graph/VKSubmitQueue.h index be517ac1..bd84f95a 100644 --- a/inc/hgl/graph/VKSubmitQueue.h +++ b/inc/hgl/graph/VKSubmitQueue.h @@ -8,17 +8,17 @@ class SubmitQueue { protected: - Device *device; + RenderDevice *device; VkQueue queue; uint32_t current_fence; - ObjectList fence_list; + ObjectList fence_list; SubmitInfo submit_info; public: - SubmitQueue(Device *dev,VkQueue q,const uint32_t fence_count=1); + SubmitQueue(RenderDevice *dev,VkQueue q,const uint32_t fence_count=1); virtual ~SubmitQueue(); bool WaitQueue(); diff --git a/inc/hgl/graph/VKTexture.h b/inc/hgl/graph/VKTexture.h index a5a03781..987409f7 100644 --- a/inc/hgl/graph/VKTexture.h +++ b/inc/hgl/graph/VKTexture.h @@ -12,7 +12,7 @@ BitmapData *LoadBitmapFromFile(const OSString &filename); struct TextureData { - Memory * memory =nullptr; + GPUMemory * memory =nullptr; VkImage image =VK_NULL_HANDLE; VkImageLayout image_layout=VK_IMAGE_LAYOUT_UNDEFINED; ImageView * image_view =nullptr; @@ -29,7 +29,7 @@ struct TextureCreateInfo ImageTiling tiling; VkImage image; - Memory * memory; + GPUMemory * memory; ImageView * image_view; VkImageLayout image_layout; @@ -57,7 +57,7 @@ public: VkImageLayout GetImageLayout () {return data?data->image_layout:VK_IMAGE_LAYOUT_UNDEFINED;} VkImageView GetVulkanImageView () {return data?data->image_view->operator VkImageView():VK_NULL_HANDLE;} - Memory * GetMemory () {return data?data->memory:nullptr;} + GPUMemory * GetMemory () {return data?data->memory:nullptr;} ImageView * GetImageView () {return data?data->image_view:nullptr;} const uint32 GetMipLevels ()const {return data?data->mip_levels:0;} diff --git a/inc/hgl/graph/font/TextRenderable.h b/inc/hgl/graph/font/TextRenderable.h index 0fd00461..34182be1 100644 --- a/inc/hgl/graph/font/TextRenderable.h +++ b/inc/hgl/graph/font/TextRenderable.h @@ -11,7 +11,7 @@ namespace hgl */ class TextRenderable:public vulkan::Renderable { - vulkan::Device * device; + vulkan::RenderDevice * device; vulkan::Material * mtl; uint max_count; ///<缓冲区最大容量 @@ -21,7 +21,7 @@ namespace hgl public: - TextRenderable(vulkan::Device *,vulkan::Material *,uint mc=1024); + TextRenderable(vulkan::RenderDevice *,vulkan::Material *,uint mc=1024); virtual ~TextRenderable(); public: diff --git a/inc/hgl/gui/ThemeEngine.h b/inc/hgl/gui/ThemeEngine.h index 3dd41850..271f895a 100644 --- a/inc/hgl/gui/ThemeEngine.h +++ b/inc/hgl/gui/ThemeEngine.h @@ -10,20 +10,20 @@ namespace hgl { namespace vulkan { - class Device; + class RenderDevice; }//namespace vulkan class ThemeEngine { protected: - vulkan::Device *device; + vulkan::RenderDevice *device; MapObject
form_list; public: - ThemeEngine(vulkan::Device *dev){device=dev;} + ThemeEngine(vulkan::RenderDevice *dev){device=dev;} virtual ~ThemeEngine()=default; virtual bool Init()=0; diff --git a/src/GUI/DefaultThemeEngine.cpp b/src/GUI/DefaultThemeEngine.cpp index fff81add..a8200a91 100644 --- a/src/GUI/DefaultThemeEngine.cpp +++ b/src/GUI/DefaultThemeEngine.cpp @@ -4,7 +4,7 @@ namespace hgl { namespace gui { - ThemeEngine *CreateDefaultThemeEngine(vulkan::Device *dev) + ThemeEngine *CreateDefaultThemeEngine(vulkan::RenderDevice *dev) { return(new default_theme::DefaultThemeEngine(dev)); } diff --git a/src/GUI/DefaultThemeEngine.h b/src/GUI/DefaultThemeEngine.h index d386b594..d2da29bc 100644 --- a/src/GUI/DefaultThemeEngine.h +++ b/src/GUI/DefaultThemeEngine.h @@ -29,7 +29,7 @@ namespace hgl public: - DefaultThemeEngine(vulkan::Device *dev):ThemeEngine(dev){} + DefaultThemeEngine(vulkan::RenderDevice *dev):ThemeEngine(dev){} virtual ~DefaultThemeEngine() override; bool Init() override; diff --git a/src/GUI/ThemeEngine.cpp b/src/GUI/ThemeEngine.cpp index 9e379572..96821c68 100644 --- a/src/GUI/ThemeEngine.cpp +++ b/src/GUI/ThemeEngine.cpp @@ -10,9 +10,9 @@ namespace hgl ThemeEngine *default_theme_engine=nullptr; }//namespace - ThemeEngine *CreateDefaultThemeEngine(vulkan::Device *dev); + ThemeEngine *CreateDefaultThemeEngine(vulkan::RenderDevice *dev); - ThemeEngine *GetDefaultThemeEngine(vulkan::Device *dev) + ThemeEngine *GetDefaultThemeEngine(vulkan::RenderDevice *dev) { if(!default_theme_engine) default_theme_engine=CreateDefaultThemeEngine(dev); @@ -20,7 +20,7 @@ namespace hgl return default_theme_engine; } - ThemeEngine *CreateThemeEngine(vulkan::Device *dev) + ThemeEngine *CreateThemeEngine(vulkan::RenderDevice *dev) { return GetDefaultThemeEngine(); } diff --git a/src/RenderDevice/VKBuffer.cpp b/src/RenderDevice/VKBuffer.cpp index c0968813..355b9758 100644 --- a/src/RenderDevice/VKBuffer.cpp +++ b/src/RenderDevice/VKBuffer.cpp @@ -1,7 +1,7 @@ #include VK_NAMESPACE_BEGIN -Buffer::~Buffer() +GPUBuffer::~GPUBuffer() { if(buf.memory)delete buf.memory; vkDestroyBuffer(device,buf.buffer,nullptr); diff --git a/src/RenderDevice/VKDatabase.cpp b/src/RenderDevice/VKDatabase.cpp index 90386f20..cb77968e 100644 --- a/src/RenderDevice/VKDatabase.cpp +++ b/src/RenderDevice/VKDatabase.cpp @@ -16,18 +16,18 @@ VAB *Database::CreateVAB(VkFormat format,uint32_t count,const void *data,Sharing return vb; } -#define SCENE_DB_CREATE_BUFFER(name) Buffer *Database::Create##name(VkDeviceSize size,void *data,SharingMode sharing_mode) \ +#define SCENE_DB_CREATE_BUFFER(name) GPUBuffer *Database::Create##name(VkDeviceSize size,void *data,SharingMode sharing_mode) \ { \ - Buffer *buf=device->Create##name(size,data,sharing_mode); \ + GPUBuffer *buf=device->Create##name(size,data,sharing_mode); \ \ if(!buf)return(nullptr); \ rm_buffers.Add(buf); \ return(buf); \ } \ \ - Buffer *Database::Create##name(VkDeviceSize size,SharingMode sharing_mode) \ + GPUBuffer *Database::Create##name(VkDeviceSize size,SharingMode sharing_mode) \ { \ - Buffer *buf=device->Create##name(size,sharing_mode); \ + GPUBuffer *buf=device->Create##name(size,sharing_mode); \ \ if(!buf)return(nullptr); \ rm_buffers.Add(buf); \ diff --git a/src/RenderDevice/VKDescriptorSetLayoutCreater.cpp b/src/RenderDevice/VKDescriptorSetLayoutCreater.cpp index 0c71d36e..e6daf650 100644 --- a/src/RenderDevice/VKDescriptorSetLayoutCreater.cpp +++ b/src/RenderDevice/VKDescriptorSetLayoutCreater.cpp @@ -3,7 +3,7 @@ #include VK_NAMESPACE_BEGIN -DescriptorSetLayoutCreater *Device::CreateDescriptorSetLayoutCreater() +DescriptorSetLayoutCreater *RenderDevice::CreateDescriptorSetLayoutCreater() { return(new DescriptorSetLayoutCreater(attr->device,attr->desc_pool)); } diff --git a/src/RenderDevice/VKDescriptorSets.cpp b/src/RenderDevice/VKDescriptorSets.cpp index 0e94a87e..642c35f0 100644 --- a/src/RenderDevice/VKDescriptorSets.cpp +++ b/src/RenderDevice/VKDescriptorSets.cpp @@ -11,7 +11,7 @@ void DescriptorSets::Clear() desc_image_info.ClearData(); } -bool DescriptorSets::BindUBO(const int binding,const Buffer *buf) +bool DescriptorSets::BindUBO(const int binding,const GPUBuffer *buf) { if(binding<0||!buf) return(false); @@ -31,7 +31,7 @@ bool DescriptorSets::BindUBO(const int binding,const Buffer *buf) return(true); } -bool DescriptorSets::BindUBODynamic(const int binding,const Buffer *buf) +bool DescriptorSets::BindUBODynamic(const int binding,const GPUBuffer *buf) { if(binding<0||!buf) return(false); diff --git a/src/RenderDevice/VKDevice.cpp b/src/RenderDevice/VKDevice.cpp index 3fed6bd2..1ee39b5b 100644 --- a/src/RenderDevice/VKDevice.cpp +++ b/src/RenderDevice/VKDevice.cpp @@ -11,7 +11,7 @@ #include VK_NAMESPACE_BEGIN -Device::Device(DeviceAttribute *da) +RenderDevice::RenderDevice(RenderDeviceAttribute *da) { attr=da; @@ -23,7 +23,7 @@ Device::Device(DeviceAttribute *da) Resize(attr->surface_caps.currentExtent); } -Device::~Device() +RenderDevice::~RenderDevice() { SAFE_CLEAR(swapchainRT); SAFE_CLEAR(swapchain); @@ -34,7 +34,7 @@ Device::~Device() delete attr; } -bool Device::Resize(const VkExtent2D &extent) +bool RenderDevice::Resize(const VkExtent2D &extent) { SAFE_CLEAR(swapchainRT); SAFE_CLEAR(swapchain); @@ -55,7 +55,7 @@ bool Device::Resize(const VkExtent2D &extent) return(true); } -CommandBuffer *Device::CreateCommandBuffer(const VkExtent2D &extent,const uint32_t atta_count) +CommandBuffer *RenderDevice::CreateCommandBuffer(const VkExtent2D &extent,const uint32_t atta_count) { if(!attr->cmd_pool) return(nullptr); @@ -80,7 +80,7 @@ CommandBuffer *Device::CreateCommandBuffer(const VkExtent2D &extent,const uint32 * 创建栅栏 * @param create_signaled 是否创建初始信号 */ -Fence *Device::CreateFence(bool create_signaled) +GPUFence *RenderDevice::CreateFence(bool create_signaled) { FenceCreateInfo fenceInfo(create_signaled?VK_FENCE_CREATE_SIGNALED_BIT:0); @@ -89,10 +89,10 @@ Fence *Device::CreateFence(bool create_signaled) if(vkCreateFence(attr->device, &fenceInfo, nullptr, &fence)!=VK_SUCCESS) return(nullptr); - return(new Fence(attr->device,fence)); + return(new GPUFence(attr->device,fence)); } -vulkan::GPUSemaphore *Device::CreateSemaphore() +vulkan::GPUSemaphore *RenderDevice::CreateSemaphore() { SemaphoreCreateInfo SemaphoreCreateInfo; diff --git a/src/RenderDevice/VKDeviceAttribute.cpp b/src/RenderDevice/VKDeviceAttribute.cpp index 4470c897..c7447c4a 100644 --- a/src/RenderDevice/VKDeviceAttribute.cpp +++ b/src/RenderDevice/VKDeviceAttribute.cpp @@ -5,7 +5,7 @@ #include VK_NAMESPACE_BEGIN -DeviceAttribute::DeviceAttribute(VkInstance inst,const PhysicalDevice *pd,VkSurfaceKHR s) +RenderDeviceAttribute::RenderDeviceAttribute(VkInstance inst,const PhysicalRenderDevice *pd,VkSurfaceKHR s) { instance=inst; physical_device=pd; @@ -14,7 +14,7 @@ DeviceAttribute::DeviceAttribute(VkInstance inst,const PhysicalDevice *pd,VkSurf Refresh(); } -DeviceAttribute::~DeviceAttribute() +RenderDeviceAttribute::~RenderDeviceAttribute() { if(pipeline_cache) vkDestroyPipelineCache(device,pipeline_cache,nullptr); @@ -32,12 +32,12 @@ DeviceAttribute::~DeviceAttribute() vkDestroySurfaceKHR(instance,surface,nullptr); } -bool DeviceAttribute::CheckMemoryType(uint32_t typeBits,VkMemoryPropertyFlags properties,uint32_t *typeIndex) const +bool RenderDeviceAttribute::CheckMemoryType(uint32_t typeBits,VkMemoryPropertyFlags properties,uint32_t *typeIndex) const { return physical_device->CheckMemoryType(typeBits,properties,typeIndex); } -void DeviceAttribute::Refresh() +void RenderDeviceAttribute::Refresh() { VkPhysicalDevice pdevice = *physical_device; diff --git a/src/RenderDevice/VKDeviceBuffer.cpp b/src/RenderDevice/VKDeviceBuffer.cpp index 5394391f..88be5784 100644 --- a/src/RenderDevice/VKDeviceBuffer.cpp +++ b/src/RenderDevice/VKDeviceBuffer.cpp @@ -2,7 +2,7 @@ #include VK_NAMESPACE_BEGIN -bool Device::CreateBuffer(BufferData *buf,VkBufferUsageFlags buf_usage,VkDeviceSize size,const void *data,SharingMode sharing_mode) +bool RenderDevice::CreateBuffer(BufferData *buf,VkBufferUsageFlags buf_usage,VkDeviceSize size,const void *data,SharingMode sharing_mode) { BufferCreateInfo buf_info; @@ -19,7 +19,7 @@ bool Device::CreateBuffer(BufferData *buf,VkBufferUsageFlags buf_usage,VkDeviceS vkGetBufferMemoryRequirements(attr->device,buf->buffer,&mem_reqs); - Memory *dm=CreateMemory(mem_reqs,VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT|VK_MEMORY_PROPERTY_HOST_COHERENT_BIT); + GPUMemory *dm=CreateMemory(mem_reqs,VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT|VK_MEMORY_PROPERTY_HOST_COHERENT_BIT); if(dm&&dm->BindBuffer(buf->buffer)) { @@ -42,13 +42,13 @@ bool Device::CreateBuffer(BufferData *buf,VkBufferUsageFlags buf_usage,VkDeviceS return(false); } -VAB *Device::CreateVAB(VkFormat format,uint32_t count,const void *data,SharingMode sharing_mode) +VAB *RenderDevice::CreateVAB(VkFormat format,uint32_t count,const void *data,SharingMode sharing_mode) { const uint32_t stride=GetStrideByFormat(format); if(stride==0) { - std::cerr<<"format["<device,buf,format,stride,count)); } -IndexBuffer *Device::CreateIBO(IndexType index_type,uint32_t count,const void *data,SharingMode sharing_mode) +IndexBuffer *RenderDevice::CreateIBO(IndexType index_type,uint32_t count,const void *data,SharingMode sharing_mode) { uint32_t stride; @@ -80,13 +80,13 @@ IndexBuffer *Device::CreateIBO(IndexType index_type,uint32_t count,const void *d return(new IndexBuffer(attr->device,buf,index_type,count)); } -Buffer *Device::CreateBuffer(VkBufferUsageFlags buf_usage,VkDeviceSize size,const void *data,SharingMode sharing_mode) +GPUBuffer *RenderDevice::CreateBuffer(VkBufferUsageFlags buf_usage,VkDeviceSize size,const void *data,SharingMode sharing_mode) { BufferData buf; if(!CreateBuffer(&buf,buf_usage,size,data,sharing_mode)) return(nullptr); - return(new Buffer(attr->device,buf)); + return(new GPUBuffer(attr->device,buf)); } VK_NAMESPACE_END diff --git a/src/RenderDevice/VKDeviceCreater.cpp b/src/RenderDevice/VKDeviceCreater.cpp index e2bfd833..1c00392c 100644 --- a/src/RenderDevice/VKDeviceCreater.cpp +++ b/src/RenderDevice/VKDeviceCreater.cpp @@ -11,7 +11,7 @@ #include VK_NAMESPACE_BEGIN -Swapchain *CreateSwapchain(const DeviceAttribute *attr,const VkExtent2D &acquire_extent); +Swapchain *CreateSwapchain(const RenderDeviceAttribute *attr,const VkExtent2D &acquire_extent); namespace { @@ -51,7 +51,7 @@ namespace return nullptr; } - void GetDeviceQueue(DeviceAttribute *attr) + void GetDeviceQueue(RenderDeviceAttribute *attr) { vkGetDeviceQueue(attr->device,attr->graphics_family,0,&attr->graphics_queue); @@ -374,7 +374,7 @@ namespace constexpr size_t VK_DRIVER_ID_RANGE_SIZE=VK_DRIVER_ID_END_RANGE-VK_DRIVER_ID_BEGIN_RANGE+1; #endif//VK_DRIVER_ID_RANGE_SIZE -Device *CreateRenderDevice(VkInstance inst,const PhysicalDevice *physical_device,VkSurfaceKHR surface,const VkExtent2D &extent) +RenderDevice *CreateRenderDevice(VkInstance inst,const PhysicalRenderDevice *physical_device,VkSurfaceKHR surface,const VkExtent2D &extent) { #ifdef _DEBUG { @@ -397,9 +397,9 @@ Device *CreateRenderDevice(VkInstance inst,const PhysicalDevice *physical_device } #endif//_DEBUG - DeviceAttribute *device_attr=new DeviceAttribute(inst,physical_device,surface); + RenderDeviceAttribute *device_attr=new RenderDeviceAttribute(inst,physical_device,surface); - AutoDelete auto_delete(device_attr); + AutoDelete auto_delete(device_attr); if(device_attr->graphics_family==ERROR_FAMILY_INDEX) return(nullptr); @@ -428,10 +428,10 @@ Device *CreateRenderDevice(VkInstance inst,const PhysicalDevice *physical_device auto_delete.Discard(); - return(new Device(device_attr)); + return(new RenderDevice(device_attr)); } -Device *CreateRenderDevice(vulkan::Instance *inst,Window *win,const vulkan::PhysicalDevice *pd) +RenderDevice *CreateRenderDevice(vulkan::Instance *inst,Window *win,const vulkan::PhysicalRenderDevice *pd) { if(!inst) return(nullptr); @@ -453,7 +453,7 @@ Device *CreateRenderDevice(vulkan::Instance *inst,Window *win,const vulkan::Phys extent.width=win->GetWidth(); extent.height=win->GetHeight(); - Device *device=CreateRenderDevice(*inst,pd,surface,extent); + RenderDevice *device=CreateRenderDevice(*inst,pd,surface,extent); if(!device) { diff --git a/src/RenderDevice/VKDeviceFramebuffer.cpp b/src/RenderDevice/VKDeviceFramebuffer.cpp index 18c94331..1eb97cfa 100644 --- a/src/RenderDevice/VKDeviceFramebuffer.cpp +++ b/src/RenderDevice/VKDeviceFramebuffer.cpp @@ -20,7 +20,7 @@ VkFramebuffer CreateVulkanFramebuffer(VkDevice device,RenderPass *rp,const VkExt return fb; } -Framebuffer *Device::CreateFramebuffer(RenderPass *rp,ImageView **color_list,const uint color_count,ImageView *depth) +Framebuffer *RenderDevice::CreateFramebuffer(RenderPass *rp,ImageView **color_list,const uint color_count,ImageView *depth) { uint att_count=color_count; @@ -78,7 +78,7 @@ Framebuffer *Device::CreateFramebuffer(RenderPass *rp,ImageView **color_list,con return(new Framebuffer(GetDevice(),fbo,extent,*rp,color_count,depth)); } // -//Framebuffer *Device::CreateFramebuffer(RenderPass *rp,List &color,ImageView *depth) +//Framebuffer *RenderDevice::CreateFramebuffer(RenderPass *rp,List &color,ImageView *depth) //{ // if(!rp)return(nullptr); // @@ -89,7 +89,7 @@ Framebuffer *Device::CreateFramebuffer(RenderPass *rp,ImageView **color_list,con // return CreateFramebuffer(rp,color.GetData(),color.GetCount(),depth); //} -Framebuffer *Device::CreateFramebuffer(RenderPass *rp,ImageView *color,ImageView *depth) +Framebuffer *RenderDevice::CreateFramebuffer(RenderPass *rp,ImageView *color,ImageView *depth) { if(!rp)return(nullptr); if(!color&&!depth)return(nullptr); @@ -97,7 +97,7 @@ Framebuffer *Device::CreateFramebuffer(RenderPass *rp,ImageView *color,ImageView return CreateFramebuffer(rp,&color,1,depth); } -Framebuffer *Device::CreateFramebuffer(RenderPass *rp,ImageView *iv) +Framebuffer *RenderDevice::CreateFramebuffer(RenderPass *rp,ImageView *iv) { if(!rp)return(nullptr); if(!iv)return(nullptr); diff --git a/src/RenderDevice/VKDeviceImage.cpp b/src/RenderDevice/VKDeviceImage.cpp index 718f67d5..4023d564 100644 --- a/src/RenderDevice/VKDeviceImage.cpp +++ b/src/RenderDevice/VKDeviceImage.cpp @@ -2,7 +2,7 @@ #include VK_NAMESPACE_BEGIN -VkImage Device::CreateImage(VkImageCreateInfo *ici) +VkImage RenderDevice::CreateImage(VkImageCreateInfo *ici) { if(!ici)return(VK_NULL_HANDLE); if(!CheckVulkanFormat(ici->format))return(VK_NULL_HANDLE); @@ -16,20 +16,20 @@ VkImage Device::CreateImage(VkImageCreateInfo *ici) return image; } -void Device::DestoryImage(VkImage img) +void RenderDevice::DestoryImage(VkImage img) { if(img==VK_NULL_HANDLE)return; vkDestroyImage(attr->device,img,nullptr); } -Memory *Device::CreateMemory(VkImage image,const uint32_t flag) +GPUMemory *RenderDevice::CreateMemory(VkImage image,const uint32_t flag) { VkMemoryRequirements memReqs; vkGetImageMemoryRequirements(attr->device,image,&memReqs); - Memory *mem=CreateMemory(memReqs,flag); + GPUMemory *mem=CreateMemory(memReqs,flag); if(!mem)return(nullptr); diff --git a/src/RenderDevice/VKDeviceRenderPass.cpp b/src/RenderDevice/VKDeviceRenderPass.cpp index 8ed4a6cc..3f026359 100644 --- a/src/RenderDevice/VKDeviceRenderPass.cpp +++ b/src/RenderDevice/VKDeviceRenderPass.cpp @@ -192,7 +192,7 @@ bool CreateDepthAttachment( List &ref_list,List &desc_list, +RenderPass *RenderDevice::CreateRenderPass( const List &desc_list, const List &subpass, const List &dependency, const List &color_format_list, @@ -233,7 +233,7 @@ RenderPass *Device::CreateRenderPass( const List &des return(new RenderPass(attr->device,render_pass,color_format_list,depth_format)); } -RenderPass *Device::CreateRenderPass(const List &color_format_list,VkFormat depth_format,VkImageLayout color_final_layout,VkImageLayout depth_final_layout) +RenderPass *RenderDevice::CreateRenderPass(const List &color_format_list,VkFormat depth_format,VkImageLayout color_final_layout,VkImageLayout depth_final_layout) { for(const VkFormat &fmt:color_format_list) if(!attr->physical_device->IsColorAttachmentOptimal(fmt)) @@ -268,7 +268,7 @@ RenderPass *Device::CreateRenderPass(const List &color_format_list,VkF return CreateRenderPass(atta_desc_list,subpass_desc_list,subpass_dependency_list,color_format_list,depth_format,color_final_layout,depth_final_layout); } -RenderPass *Device::CreateRenderPass(VkFormat color_format,VkFormat depth_format,VkImageLayout color_final_layout,VkImageLayout depth_final_layout) +RenderPass *RenderDevice::CreateRenderPass(VkFormat color_format,VkFormat depth_format,VkImageLayout color_final_layout,VkImageLayout depth_final_layout) { List color_format_list; diff --git a/src/RenderDevice/VKDeviceRenderTarget.cpp b/src/RenderDevice/VKDeviceRenderTarget.cpp index 879db3a1..ced6e9ca 100644 --- a/src/RenderDevice/VKDeviceRenderTarget.cpp +++ b/src/RenderDevice/VKDeviceRenderTarget.cpp @@ -1,14 +1,14 @@ #include VK_NAMESPACE_BEGIN -RenderTarget *Device::CreateRenderTarget(Framebuffer *fb,const uint32_t fence_count) +RenderTarget *RenderDevice::CreateRenderTarget(Framebuffer *fb,const uint32_t fence_count) { CommandBuffer *cb=CreateCommandBuffer(fb->GetExtent(),fb->GetAttachmentCount()); return(new RenderTarget(this,fb,cb,fence_count)); } -RenderTarget *Device::CreateRenderTarget( const uint w,const uint h, +RenderTarget *RenderDevice::CreateRenderTarget( const uint w,const uint h, const List &color_format_list, const VkFormat depth_format, const VkImageLayout color_layout, @@ -65,7 +65,7 @@ RenderTarget *Device::CreateRenderTarget( const uint w,const uint h, return nullptr; } -RenderTarget *Device::CreateRenderTarget( const uint w,const uint h, +RenderTarget *RenderDevice::CreateRenderTarget( const uint w,const uint h, const VkFormat color_format, const VkFormat depth_format, const VkImageLayout color_layout, @@ -81,7 +81,7 @@ RenderTarget *Device::CreateRenderTarget( const uint w,const uint h, return CreateRenderTarget(w,h,color_format_list,depth_format,color_layout,depth_layout,fence_count); } -RenderTarget *Device::CreateRenderTarget(const uint w,const uint h,const VkFormat format,const VkImageLayout final_layout,const uint32_t fence_count) +RenderTarget *RenderDevice::CreateRenderTarget(const uint w,const uint h,const VkFormat format,const VkImageLayout final_layout,const uint32_t fence_count) { if(w<=0||h<=0)return(nullptr); diff --git a/src/RenderDevice/VKDeviceSwapchain.cpp b/src/RenderDevice/VKDeviceSwapchain.cpp index 36d7b6b8..85a1fdf1 100644 --- a/src/RenderDevice/VKDeviceSwapchain.cpp +++ b/src/RenderDevice/VKDeviceSwapchain.cpp @@ -15,7 +15,7 @@ namespace return swapchain_extent; } - VkSwapchainKHR CreateSwapChain(const DeviceAttribute *dev_attr,const VkExtent2D &extent) + VkSwapchainKHR CreateSwapChain(const RenderDeviceAttribute *dev_attr,const VkExtent2D &extent) { VkSwapchainCreateInfoKHR swapchain_ci; @@ -68,7 +68,7 @@ namespace } }//namespace -bool Device::CreateSwapchainColorTexture() +bool RenderDevice::CreateSwapchainColorTexture() { if(vkGetSwapchainImagesKHR(attr->device,swapchain->swap_chain,&(swapchain->swap_chain_count),nullptr)!=VK_SUCCESS) return(false); @@ -98,7 +98,7 @@ bool Device::CreateSwapchainColorTexture() return(true); } -bool Device::CreateSwapchainDepthTexture() +bool RenderDevice::CreateSwapchainDepthTexture() { const VkFormat depth_format=attr->physical_device->GetDepthFormat(); @@ -115,7 +115,7 @@ bool Device::CreateSwapchainDepthTexture() return swapchain->sc_depth; } -bool Device::CreateSwapchain(const VkExtent2D &acquire_extent) +bool RenderDevice::CreateSwapchain(const VkExtent2D &acquire_extent) { swapchain=new Swapchain; diff --git a/src/RenderDevice/VKDeviceTexture.cpp b/src/RenderDevice/VKDeviceTexture.cpp index d1128918..f8010d8c 100644 --- a/src/RenderDevice/VKDeviceTexture.cpp +++ b/src/RenderDevice/VKDeviceTexture.cpp @@ -21,7 +21,7 @@ namespace } }//namespace -bool Device::CheckFormatSupport(const VkFormat format,const uint32_t bits,ImageTiling tiling) const +bool RenderDevice::CheckFormatSupport(const VkFormat format,const uint32_t bits,ImageTiling tiling) const { const VkFormatProperties fp=attr->physical_device->GetFormatProperties(format); @@ -31,7 +31,7 @@ bool Device::CheckFormatSupport(const VkFormat format,const uint32_t bits,ImageT return(fp.linearTilingFeatures&bits); } -Texture2D *Device::CreateTexture2D(TextureData *tex_data) +Texture2D *RenderDevice::CreateTexture2D(TextureData *tex_data) { if(!tex_data) return(nullptr); @@ -39,7 +39,7 @@ Texture2D *Device::CreateTexture2D(TextureData *tex_data) return(new Texture2D(attr->device,tex_data)); } -Texture2D *Device::CreateTexture2D(Memory *mem,VkImage image,ImageView *image_view,VkImageLayout image_layout,ImageTiling tiling) +Texture2D *RenderDevice::CreateTexture2D(GPUMemory *mem,VkImage image,ImageView *image_view,VkImageLayout image_layout,ImageTiling tiling) { TextureData *tex_data=new TextureData; @@ -54,7 +54,7 @@ Texture2D *Device::CreateTexture2D(Memory *mem,VkImage image,ImageView *image_vi return CreateTexture2D(tex_data); } -void Device::Clear(TextureCreateInfo *tci) +void RenderDevice::Clear(TextureCreateInfo *tci) { if(!tci)return; @@ -65,7 +65,7 @@ void Device::Clear(TextureCreateInfo *tci) delete tci; } -Texture2D *Device::CreateTexture2D(TextureCreateInfo *tci) +Texture2D *RenderDevice::CreateTexture2D(TextureCreateInfo *tci) { if(!tci)return(nullptr); @@ -98,7 +98,7 @@ Texture2D *Device::CreateTexture2D(TextureCreateInfo *tci) return tex; } -Texture2D *Device::CreateTexture2D(VkFormat format,uint32_t width,uint32_t height,VkImageAspectFlags aspectMask,VkImage image,VkImageLayout image_layout,ImageTiling tiling) +Texture2D *RenderDevice::CreateTexture2D(VkFormat format,uint32_t width,uint32_t height,VkImageAspectFlags aspectMask,VkImage image,VkImageLayout image_layout,ImageTiling tiling) { if(!CheckTextureFormatSupport(format,tiling))return(nullptr); @@ -117,7 +117,7 @@ Texture2D *Device::CreateTexture2D(VkFormat format,uint32_t width,uint32_t heigh return CreateTexture2D(tci); } -Texture2D *Device::CreateTexture2D(const VkFormat format,uint32_t width,uint32_t height,const VkImageAspectFlags aspectMask,const uint usage,const VkImageLayout image_layout,ImageTiling tiling) +Texture2D *RenderDevice::CreateTexture2D(const VkFormat format,uint32_t width,uint32_t height,const VkImageAspectFlags aspectMask,const uint usage,const VkImageLayout image_layout,ImageTiling tiling) { if(!CheckTextureFormatSupport(format,tiling))return(nullptr); @@ -136,7 +136,7 @@ Texture2D *Device::CreateTexture2D(const VkFormat format,uint32_t width,uint32_t return CreateTexture2D(tci); } -Texture2D *Device::CreateTexture2D(const VkFormat format,Buffer *buf,uint32_t width,uint32_t height,const VkImageAspectFlags aspectMask,const uint usage,const VkImageLayout image_layout,const ImageTiling tiling) +Texture2D *RenderDevice::CreateTexture2D(const VkFormat format,GPUBuffer *buf,uint32_t width,uint32_t height,const VkImageAspectFlags aspectMask,const uint usage,const VkImageLayout image_layout,const ImageTiling tiling) { if(!buf)return(nullptr); @@ -149,7 +149,7 @@ Texture2D *Device::CreateTexture2D(const VkFormat format,Buffer *buf,uint32_t wi return(tex); } -Texture2D *Device::CreateTexture2D(const VkFormat format,void *data,uint32_t width,uint32_t height,uint32_t size,const VkImageAspectFlags aspectMask,const uint usage,const VkImageLayout image_layout,const ImageTiling tiling) +Texture2D *RenderDevice::CreateTexture2D(const VkFormat format,void *data,uint32_t width,uint32_t height,uint32_t size,const VkImageAspectFlags aspectMask,const uint usage,const VkImageLayout image_layout,const ImageTiling tiling) { Texture2D *tex=CreateTexture2D(format,width,height,aspectMask,usage,image_layout,tiling); @@ -157,7 +157,7 @@ Texture2D *Device::CreateTexture2D(const VkFormat format,void *data,uint32_t wid if(data) { - Buffer *buf=CreateBuffer(VK_BUFFER_USAGE_TRANSFER_SRC_BIT,size,data); + GPUBuffer *buf=CreateBuffer(VK_BUFFER_USAGE_TRANSFER_SRC_BIT,size,data); if(buf) { @@ -169,7 +169,7 @@ Texture2D *Device::CreateTexture2D(const VkFormat format,void *data,uint32_t wid return(tex); } -bool Device::ChangeTexture2D(Texture2D *tex,Buffer *buf,const VkBufferImageCopy *buffer_image_copy,const int count) +bool RenderDevice::ChangeTexture2D(Texture2D *tex,GPUBuffer *buf,const VkBufferImageCopy *buffer_image_copy,const int count) { if(!tex||!buf) return(false); @@ -226,7 +226,7 @@ bool Device::ChangeTexture2D(Texture2D *tex,Buffer *buf,const VkBufferImageCopy return(true); } -bool Device::ChangeTexture2D(Texture2D *tex,Buffer *buf,const List &ir_list) +bool RenderDevice::ChangeTexture2D(Texture2D *tex,GPUBuffer *buf,const List &ir_list) { if(!tex||!buf||ir_list.GetCount()<=0) return(false); @@ -264,7 +264,7 @@ bool Device::ChangeTexture2D(Texture2D *tex,Buffer *buf,const List return ChangeTexture2D(tex,buf,buffer_image_copy,ir_count); } -bool Device::ChangeTexture2D(Texture2D *tex,Buffer *buf,uint32_t left,uint32_t top,uint32_t width,uint32_t height) +bool RenderDevice::ChangeTexture2D(Texture2D *tex,GPUBuffer *buf,uint32_t left,uint32_t top,uint32_t width,uint32_t height) { if(!tex||!buf ||left<0||left+width>tex->GetWidth() @@ -290,7 +290,7 @@ bool Device::ChangeTexture2D(Texture2D *tex,Buffer *buf,uint32_t left,uint32_t t return ChangeTexture2D(tex,buf,&buffer_image_copy,1); } -bool Device::ChangeTexture2D(Texture2D *tex,void *data,uint32_t left,uint32_t top,uint32_t width,uint32_t height,uint32_t size) +bool RenderDevice::ChangeTexture2D(Texture2D *tex,void *data,uint32_t left,uint32_t top,uint32_t width,uint32_t height,uint32_t size) { if(!tex||!data ||left<0||left+width>tex->GetWidth() @@ -299,7 +299,7 @@ bool Device::ChangeTexture2D(Texture2D *tex,void *data,uint32_t left,uint32_t to ||size<=0) return(false); - Buffer *buf=CreateBuffer(VK_BUFFER_USAGE_TRANSFER_SRC_BIT,size,data); + GPUBuffer *buf=CreateBuffer(VK_BUFFER_USAGE_TRANSFER_SRC_BIT,size,data); bool result=ChangeTexture2D(tex,buf,left,top,width,height); @@ -308,7 +308,7 @@ bool Device::ChangeTexture2D(Texture2D *tex,void *data,uint32_t left,uint32_t to return(result); } -bool Device::SubmitTexture(const VkCommandBuffer *cmd_bufs,const uint32_t count) +bool RenderDevice::SubmitTexture(const VkCommandBuffer *cmd_bufs,const uint32_t count) { if(!cmd_bufs||count<=0) return(false); @@ -319,7 +319,7 @@ bool Device::SubmitTexture(const VkCommandBuffer *cmd_bufs,const uint32_t count) return(true); } -Sampler *Device::CreateSampler(VkSamplerCreateInfo *sci) +Sampler *RenderDevice::CreateSampler(VkSamplerCreateInfo *sci) { static VkSamplerCreateInfo default_sampler_create_info= { diff --git a/src/RenderDevice/VKFence.cpp b/src/RenderDevice/VKFence.cpp index 26258879..7eb3f66c 100644 --- a/src/RenderDevice/VKFence.cpp +++ b/src/RenderDevice/VKFence.cpp @@ -1,6 +1,6 @@ #include VK_NAMESPACE_BEGIN -Fence::~Fence() +GPUFence::~GPUFence() { vkDestroyFence(device,fence,nullptr); } diff --git a/src/RenderDevice/VKInstance.cpp b/src/RenderDevice/VKInstance.cpp index af7f4ac1..3bff2cce 100644 --- a/src/RenderDevice/VKInstance.cpp +++ b/src/RenderDevice/VKInstance.cpp @@ -5,7 +5,7 @@ #include VK_NAMESPACE_BEGIN -Device *CreateRenderDevice(VkInstance,const PhysicalDevice *,Window *); +RenderDevice *CreateRenderDevice(VkInstance,const PhysicalRenderDevice *,Window *); void CheckInstanceLayer(CharPointerList &layer_list,CreateInstanceLayerInfo *layer_info); @@ -70,7 +70,7 @@ Instance::Instance(VkInstance i,VKDebugOut *out) vkEnumeratePhysicalDevices(inst, &gpu_count,pd_list); for(uint32_t i=0;i #include"VKDescriptorSetLayoutCreater.h" VK_NAMESPACE_BEGIN -Material *Device::CreateMaterial(ShaderModuleMap *shader_maps) +Material *RenderDevice::CreateMaterial(ShaderModuleMap *shader_maps) { const int shader_count=shader_maps->GetCount(); @@ -49,7 +49,7 @@ Material *Device::CreateMaterial(ShaderModuleMap *shader_maps) return(new Material(shader_maps,shader_stage_list,dsl_creater)); } -Material *Device::CreateMaterial(const VertexShaderModule *vertex_shader_module,const ShaderModule *fragment_shader_module) +Material *RenderDevice::CreateMaterial(const VertexShaderModule *vertex_shader_module,const ShaderModule *fragment_shader_module) { if(!vertex_shader_module||!fragment_shader_module) return(nullptr); @@ -65,7 +65,7 @@ Material *Device::CreateMaterial(const VertexShaderModule *vertex_shader_module, return CreateMaterial(smm); } -Material *Device::CreateMaterial(const VertexShaderModule *vertex_shader_module,const ShaderModule *geometry_shader_module,const ShaderModule *fragment_shader_module) +Material *RenderDevice::CreateMaterial(const VertexShaderModule *vertex_shader_module,const ShaderModule *geometry_shader_module,const ShaderModule *fragment_shader_module) { if(!vertex_shader_module ||!geometry_shader_module diff --git a/src/RenderDevice/VKMaterialInstance.cpp b/src/RenderDevice/VKMaterialInstance.cpp index 749ecbd4..67bd1ed9 100644 --- a/src/RenderDevice/VKMaterialInstance.cpp +++ b/src/RenderDevice/VKMaterialInstance.cpp @@ -15,7 +15,7 @@ MaterialInstance::~MaterialInstance() delete descriptor_sets; } -bool MaterialInstance::BindUBO(const AnsiString &name,vulkan::Buffer *ubo) +bool MaterialInstance::BindUBO(const AnsiString &name,vulkan::GPUBuffer *ubo) { if(name.IsEmpty()||!ubo) return(false); diff --git a/src/RenderDevice/VKMemory.cpp b/src/RenderDevice/VKMemory.cpp index 37e9ba9d..2c89b940 100644 --- a/src/RenderDevice/VKMemory.cpp +++ b/src/RenderDevice/VKMemory.cpp @@ -2,7 +2,7 @@ #include #include VK_NAMESPACE_BEGIN -Memory *Device::CreateMemory(const VkMemoryRequirements &req,uint32_t properties) +GPUMemory *RenderDevice::CreateMemory(const VkMemoryRequirements &req,uint32_t properties) { uint32_t index; @@ -21,15 +21,15 @@ Memory *Device::CreateMemory(const VkMemoryRequirements &req,uint32_t properties if(vkAllocateMemory(attr->device,&alloc_info,nullptr,&memory)!=VK_SUCCESS) return(nullptr); - return(new Memory(attr->device,memory,req,index,properties)); + return(new GPUMemory(attr->device,memory,req,index,properties)); } -Memory::~Memory() +GPUMemory::~GPUMemory() { vkFreeMemory(device,memory,nullptr); } -void *Memory::Map() +void *GPUMemory::Map() { void *result; @@ -39,7 +39,7 @@ void *Memory::Map() return(nullptr); } -void *Memory::Map(const VkDeviceSize offset,const VkDeviceSize size) +void *GPUMemory::Map(const VkDeviceSize offset,const VkDeviceSize size) { if(offset<0||offset+size>=req.size) return(nullptr); @@ -52,12 +52,12 @@ void *Memory::Map(const VkDeviceSize offset,const VkDeviceSize size) return(nullptr); } -void Memory::Unmap() +void GPUMemory::Unmap() { vkUnmapMemory(device,memory); } -bool Memory::Write(const void *ptr,VkDeviceSize start,VkDeviceSize size) +bool GPUMemory::Write(const void *ptr,VkDeviceSize start,VkDeviceSize size) { if(!ptr)return(false); @@ -71,14 +71,14 @@ bool Memory::Write(const void *ptr,VkDeviceSize start,VkDeviceSize size) return(true); } -bool Memory::BindBuffer(VkBuffer buffer) +bool GPUMemory::BindBuffer(VkBuffer buffer) { if(!buffer)return(false); return(vkBindBufferMemory(device,buffer,memory,0)==VK_SUCCESS); } -bool Memory::BindImage(VkImage image) +bool GPUMemory::BindImage(VkImage image) { if(!image)return(false); diff --git a/src/RenderDevice/VKPhysicalDevice.cpp b/src/RenderDevice/VKPhysicalDevice.cpp index 3209fc63..49d8a4cf 100644 --- a/src/RenderDevice/VKPhysicalDevice.cpp +++ b/src/RenderDevice/VKPhysicalDevice.cpp @@ -1,7 +1,7 @@ #include VK_NAMESPACE_BEGIN -PhysicalDevice::PhysicalDevice(VkInstance inst,VkPhysicalDevice pd) +PhysicalRenderDevice::PhysicalRenderDevice(VkInstance inst,VkPhysicalDevice pd) { instance=inst; physical_device=pd; @@ -31,19 +31,19 @@ PhysicalDevice::PhysicalDevice(VkInstance inst,VkPhysicalDevice pd) vkGetPhysicalDeviceFeatures(physical_device,&features); vkGetPhysicalDeviceMemoryProperties(physical_device,&memory_properties); - PFN_vkGetPhysicalDeviceProperties2 GetPhysicalDeviceProperties2=nullptr; + PFN_vkGetPhysicalDeviceProperties2 GetPhysicalRenderDeviceProperties2=nullptr; if(GetExtensionSpecVersion(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME)) - GetPhysicalDeviceProperties2=(PFN_vkGetPhysicalDeviceProperties2KHR)vkGetInstanceProcAddr(instance,"vkGetPhysicalDeviceProperties2KHR"); + GetPhysicalRenderDeviceProperties2=(PFN_vkGetPhysicalDeviceProperties2KHR)vkGetInstanceProcAddr(instance,"vkGetPhysicalDeviceProperties2KHR"); - if(!GetPhysicalDeviceProperties2) + if(!GetPhysicalRenderDeviceProperties2) if(GetExtensionSpecVersion(VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME)) - GetPhysicalDeviceProperties2=(PFN_vkGetPhysicalDeviceProperties2)vkGetInstanceProcAddr(instance,"vkGetPhysicalDeviceProperties2"); + GetPhysicalRenderDeviceProperties2=(PFN_vkGetPhysicalDeviceProperties2)vkGetInstanceProcAddr(instance,"vkGetPhysicalDeviceProperties2"); - if(GetPhysicalDeviceProperties2) + if(GetPhysicalRenderDeviceProperties2) { VkPhysicalDeviceProperties2KHR properties2; - GetPhysicalDeviceProperties2(physical_device,&properties2); + GetPhysicalRenderDeviceProperties2(physical_device,&properties2); hgl_cpy(properties,properties2.properties); @@ -58,7 +58,7 @@ PhysicalDevice::PhysicalDevice(VkInstance inst,VkPhysicalDevice pd) } } -const uint32_t PhysicalDevice::GetExtensionSpecVersion(const AnsiString &name)const +const uint32_t PhysicalRenderDevice::GetExtensionSpecVersion(const AnsiString &name)const { const uint count=extension_properties.GetCount(); const VkExtensionProperties *ep=extension_properties.GetData(); @@ -72,7 +72,7 @@ const uint32_t PhysicalDevice::GetExtensionSpecVersion(const AnsiString &name)co return 0; } -const bool PhysicalDevice::CheckMemoryType(uint32_t typeBits,VkMemoryPropertyFlags properties,uint32_t *typeIndex)const +const bool PhysicalRenderDevice::CheckMemoryType(uint32_t typeBits,VkMemoryPropertyFlags properties,uint32_t *typeIndex)const { // Search memtypes to find first index with those properties for(uint32_t i=0; idevice,attr->pipeline_cache,pd,mtl,rt); } -Pipeline *Device::CreatePipeline(PipelineData *pd,const Material *mtl,const RenderTarget *rt) +Pipeline *RenderDevice::CreatePipeline(PipelineData *pd,const Material *mtl,const RenderTarget *rt) { return VK_NAMESPACE::CreatePipeline(attr->device,attr->pipeline_cache,pd,mtl,rt); } diff --git a/src/RenderDevice/VKRenderTarget.cpp b/src/RenderDevice/VKRenderTarget.cpp index 2101ed47..9f6a5830 100644 --- a/src/RenderDevice/VKRenderTarget.cpp +++ b/src/RenderDevice/VKRenderTarget.cpp @@ -5,7 +5,7 @@ #include VK_NAMESPACE_BEGIN -RenderTarget::RenderTarget(Device *dev,Framebuffer *_fb,CommandBuffer *_cb,const uint32_t fence_count):SubmitQueue(dev,dev->GetGraphicsQueue(),fence_count) +RenderTarget::RenderTarget(RenderDevice *dev,Framebuffer *_fb,CommandBuffer *_cb,const uint32_t fence_count):SubmitQueue(dev,dev->GetGraphicsQueue(),fence_count) { rp=nullptr; fb=_fb; @@ -21,7 +21,7 @@ RenderTarget::RenderTarget(Device *dev,Framebuffer *_fb,CommandBuffer *_cb,const render_complete_semaphore=dev->CreateSemaphore(); } -RenderTarget::RenderTarget(Device *dev,RenderPass *_rp,Framebuffer *_fb,CommandBuffer *_cb,Texture2D **ctl,const uint32_t cc,Texture2D *dt,const uint32_t fence_count):SubmitQueue(dev,dev->GetGraphicsQueue(),fence_count) +RenderTarget::RenderTarget(RenderDevice *dev,RenderPass *_rp,Framebuffer *_fb,CommandBuffer *_cb,Texture2D **ctl,const uint32_t cc,Texture2D *dt,const uint32_t fence_count):SubmitQueue(dev,dev->GetGraphicsQueue(),fence_count) { rp=_rp; fb=_fb; @@ -68,7 +68,7 @@ bool RenderTarget::Submit(GPUSemaphore *present_complete_semaphore) return this->SubmitQueue::Submit(*command_buffer,present_complete_semaphore,render_complete_semaphore); } -SwapchainRenderTarget::SwapchainRenderTarget(Device *dev,Swapchain *sc):RenderTarget(dev,nullptr,nullptr,sc->GetImageCount()) +SwapchainRenderTarget::SwapchainRenderTarget(RenderDevice *dev,Swapchain *sc):RenderTarget(dev,nullptr,nullptr,sc->GetImageCount()) { swapchain=sc; vk_swapchain=swapchain->GetSwapchain(); diff --git a/src/RenderDevice/VKShaderModule.cpp b/src/RenderDevice/VKShaderModule.cpp index 57267c9e..94cf07c4 100644 --- a/src/RenderDevice/VKShaderModule.cpp +++ b/src/RenderDevice/VKShaderModule.cpp @@ -3,7 +3,7 @@ #include VK_NAMESPACE_BEGIN -ShaderModule *Device::CreateShaderModule(ShaderResource *sr) +ShaderModule *RenderDevice::CreateShaderModule(ShaderResource *sr) { if(!sr)return(nullptr); diff --git a/src/RenderDevice/VKSubmitQueue.cpp b/src/RenderDevice/VKSubmitQueue.cpp index f9d1c7b8..cbb59330 100644 --- a/src/RenderDevice/VKSubmitQueue.cpp +++ b/src/RenderDevice/VKSubmitQueue.cpp @@ -8,7 +8,7 @@ namespace const VkPipelineStageFlags pipe_stage_flags=VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; }//namespace -SubmitQueue::SubmitQueue(Device *dev,VkQueue q,const uint32_t fence_count) +SubmitQueue::SubmitQueue(RenderDevice *dev,VkQueue q,const uint32_t fence_count) { device=dev; queue=q; diff --git a/src/RenderDevice/VKTextureLoader.cpp b/src/RenderDevice/VKTextureLoader.cpp index c5d937dd..5422e1f9 100644 --- a/src/RenderDevice/VKTextureLoader.cpp +++ b/src/RenderDevice/VKTextureLoader.cpp @@ -90,16 +90,16 @@ namespace { protected: - Device *device; + RenderDevice *device; VkFormat format; - vulkan::Buffer *buf; + vulkan::GPUBuffer *buf; Texture2D *tex; public: - VkTexture2DLoader(Device *dev):device(dev) + VkTexture2DLoader(RenderDevice *dev):device(dev) { buf=nullptr; format=VK_FORMAT_UNDEFINED; @@ -169,7 +169,7 @@ namespace };//class VkTexture2DLoader }//namespace -Texture2D *CreateTextureFromFile(Device *device,const OSString &filename) +Texture2D *CreateTextureFromFile(RenderDevice *device,const OSString &filename) { VkTexture2DLoader loader(device); diff --git a/src/RenderDevice/VKTileData.cpp b/src/RenderDevice/VKTileData.cpp index b199cb03..9db7977f 100644 --- a/src/RenderDevice/VKTileData.cpp +++ b/src/RenderDevice/VKTileData.cpp @@ -61,7 +61,7 @@ namespace }//namespace VK_NAMESPACE_BEGIN -TileData *Device::CreateTileData(const VkFormat format,const uint width,const uint height,const uint count) +TileData *RenderDevice::CreateTileData(const VkFormat format,const uint width,const uint height,const uint count) { if(!CheckVulkanFormat(format)) return(nullptr); diff --git a/src/RenderDevice/VKTileFont.cpp b/src/RenderDevice/VKTileFont.cpp index 43e9d2a1..2be99bbb 100644 --- a/src/RenderDevice/VKTileFont.cpp +++ b/src/RenderDevice/VKTileFont.cpp @@ -7,7 +7,7 @@ VK_NAMESPACE_BEGIN * @param f 字体需求信息 * @param limit_count 缓冲字符数量上限 */ -TileFont *Device::CreateTileFont(FontSource *fs,int limit_count) +TileFont *RenderDevice::CreateTileFont(FontSource *fs,int limit_count) { if(!fs)return(nullptr); diff --git a/src/SceneGraph/TileData.cpp b/src/SceneGraph/TileData.cpp index 714e4ca5..df18d867 100644 --- a/src/SceneGraph/TileData.cpp +++ b/src/SceneGraph/TileData.cpp @@ -7,7 +7,7 @@ namespace hgl { namespace graph { - TileData::TileData(Device *dev,Texture2D *tt,const uint tw,const uint th) + TileData::TileData(RenderDevice *dev,Texture2D *tt,const uint tw,const uint th) { device=dev; diff --git a/src/SceneGraph/font/TextRenderable.cpp b/src/SceneGraph/font/TextRenderable.cpp index ee1c2d95..003418d5 100644 --- a/src/SceneGraph/font/TextRenderable.cpp +++ b/src/SceneGraph/font/TextRenderable.cpp @@ -6,7 +6,7 @@ namespace hgl { namespace graph { - TextRenderable::TextRenderable(vulkan::Device *dev,vulkan::Material *m,uint mc):vulkan::Renderable(mc) + TextRenderable::TextRenderable(vulkan::RenderDevice *dev,vulkan::Material *m,uint mc):vulkan::Renderable(mc) { device=dev; mtl=m;