diff --git a/inc/hgl/graph/vulkan/VK.h b/inc/hgl/graph/vulkan/VK.h index 87de8fc2..95e2e8f5 100644 --- a/inc/hgl/graph/vulkan/VK.h +++ b/inc/hgl/graph/vulkan/VK.h @@ -67,6 +67,12 @@ enum class SharingMode Concurrent };// +enum ImageTiling +{ + Optimal=0, + Linear +};// + enum class ShaderStageBit { Vertex =VK_SHADER_STAGE_VERTEX_BIT, diff --git a/inc/hgl/graph/vulkan/VKDatabase.h b/inc/hgl/graph/vulkan/VKDatabase.h index d41db2e4..4f9b44ed 100644 --- a/inc/hgl/graph/vulkan/VKDatabase.h +++ b/inc/hgl/graph/vulkan/VKDatabase.h @@ -62,12 +62,12 @@ public: //Add public: //Create - VAB *CreateVAB(VkFormat format,uint32_t count,const void *data,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE); - VAB *CreateVAB(VkFormat format,uint32_t count,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE){return CreateVAB(format,count,nullptr,sharing_mode);} - VAB *CreateVAB(const VAD *vad,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE){return CreateVAB(vad->GetVulkanFormat(),vad->GetCount(),vad->GetData(),sharing_mode);} + VAB *CreateVAB(VkFormat format,uint32_t count,const void *data,SharingMode sm=SharingMode::Exclusive); + 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,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE); \ - Buffer *Create##name(VkDeviceSize size,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE); + #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); SCENE_DB_CREATE_FUNC(UBO) SCENE_DB_CREATE_FUNC(SSBO) @@ -75,13 +75,13 @@ public: //Create #undef SCENE_DB_CREATE_FUNC - IndexBuffer *CreateIBO(VkIndexType index_type,uint32_t count,const void *data,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE); - IndexBuffer *CreateIBO16(uint32_t count,const uint16 *data,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE){return CreateIBO(VK_INDEX_TYPE_UINT16,count,(void *)data,sharing_mode);} - IndexBuffer *CreateIBO32(uint32_t count,const uint32 *data,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE){return CreateIBO(VK_INDEX_TYPE_UINT32,count,(void *)data,sharing_mode);} + IndexBuffer *CreateIBO(VkIndexType index_type,uint32_t count,const void *data,SharingMode sm=SharingMode::Exclusive); + IndexBuffer *CreateIBO16(uint32_t count,const uint16 *data,SharingMode sm=SharingMode::Exclusive){return CreateIBO(VK_INDEX_TYPE_UINT16,count,(void *)data,sm);} + IndexBuffer *CreateIBO32(uint32_t count,const uint32 *data,SharingMode sm=SharingMode::Exclusive){return CreateIBO(VK_INDEX_TYPE_UINT32,count,(void *)data,sm);} - IndexBuffer *CreateIBO(VkIndexType index_type,uint32_t count,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE){return CreateIBO(index_type,count,nullptr,sharing_mode);} - IndexBuffer *CreateIBO16(uint32_t count,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE){return CreateIBO(VK_INDEX_TYPE_UINT16,count,nullptr,sharing_mode);} - IndexBuffer *CreateIBO32(uint32_t count,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE){return CreateIBO(VK_INDEX_TYPE_UINT32,count,nullptr,sharing_mode);} + IndexBuffer *CreateIBO(VkIndexType index_type,uint32_t count,SharingMode sm=SharingMode::Exclusive){return CreateIBO(index_type,count,nullptr,sm);} + IndexBuffer *CreateIBO16(uint32_t count,SharingMode sm=SharingMode::Exclusive){return CreateIBO(VK_INDEX_TYPE_UINT16,count,nullptr,sm);} + IndexBuffer *CreateIBO32(uint32_t count,SharingMode sm=SharingMode::Exclusive){return CreateIBO(VK_INDEX_TYPE_UINT32,count,nullptr,sm);} MaterialInstance * CreateMaterialInstance(Material *); Renderable * CreateRenderable(Material *,const uint32_t vertex_count=0); diff --git a/inc/hgl/graph/vulkan/VKDevice.h b/inc/hgl/graph/vulkan/VKDevice.h index 020ad646..f3865e66 100644 --- a/inc/hgl/graph/vulkan/VKDevice.h +++ b/inc/hgl/graph/vulkan/VKDevice.h @@ -86,27 +86,27 @@ public: //内存相关 private: //Buffer相关 - bool CreateBuffer(BufferData *buf,VkBufferUsageFlags buf_usage,VkDeviceSize size,const void *data,VkSharingMode sharing_mode); + bool CreateBuffer(BufferData *buf,VkBufferUsageFlags buf_usage,VkDeviceSize size,const void *data,SharingMode sharing_mode); public: //Buffer相关 - Buffer * CreateBuffer(VkBufferUsageFlags buf_usage,VkDeviceSize size,const void *data, VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE); - Buffer * CreateBuffer(VkBufferUsageFlags buf_usage,VkDeviceSize size, VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE){return CreateBuffer(buf_usage,size,nullptr,sharing_mode);} + 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);} - VAB * CreateVAB (VkFormat format,uint32_t count,const void *data, VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE); - VAB * CreateVAB (VkFormat format,uint32_t count, VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE){return CreateVAB(format,count,nullptr,sharing_mode);} - VAB * CreateVAB (const VAD *vad, VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE){return CreateVAB(vad->GetVulkanFormat(),vad->GetCount(),vad->GetData(),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);} + VAB * CreateVAB (const VAD *vad, SharingMode sharing_mode=SharingMode::Exclusive){return CreateVAB(vad->GetVulkanFormat(),vad->GetCount(),vad->GetData(),sharing_mode);} - IndexBuffer * CreateIBO (VkIndexType index_type,uint32_t count,const void * data,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE); - IndexBuffer * CreateIBO16 ( uint32_t count,const uint16 *data,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE){return CreateIBO(VK_INDEX_TYPE_UINT16,count,(void *)data,sharing_mode);} - IndexBuffer * CreateIBO32 ( uint32_t count,const uint32 *data,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE){return CreateIBO(VK_INDEX_TYPE_UINT32,count,(void *)data,sharing_mode);} + IndexBuffer * CreateIBO (VkIndexType index_type,uint32_t count,const void * data,SharingMode sharing_mode=SharingMode::Exclusive); + IndexBuffer * CreateIBO16 ( uint32_t count,const uint16 *data,SharingMode sharing_mode=SharingMode::Exclusive){return CreateIBO(VK_INDEX_TYPE_UINT16,count,(void *)data,sharing_mode);} + IndexBuffer * CreateIBO32 ( uint32_t count,const uint32 *data,SharingMode sharing_mode=SharingMode::Exclusive){return CreateIBO(VK_INDEX_TYPE_UINT32,count,(void *)data,sharing_mode);} - IndexBuffer * CreateIBO (VkIndexType index_type,uint32_t count,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE){return CreateIBO(index_type,count,nullptr,sharing_mode);} - IndexBuffer * CreateIBO16 ( uint32_t count,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE){return CreateIBO(VK_INDEX_TYPE_UINT16,count,nullptr,sharing_mode);} - IndexBuffer * CreateIBO32 ( uint32_t count,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE){return CreateIBO(VK_INDEX_TYPE_UINT32,count,nullptr,sharing_mode);} + IndexBuffer * CreateIBO (VkIndexType index_type,uint32_t count,SharingMode sharing_mode=SharingMode::Exclusive){return CreateIBO(index_type,count,nullptr,sharing_mode);} + IndexBuffer * CreateIBO16 ( uint32_t count,SharingMode sharing_mode=SharingMode::Exclusive){return CreateIBO(VK_INDEX_TYPE_UINT16,count,nullptr,sharing_mode);} + IndexBuffer * CreateIBO32 ( uint32_t count,SharingMode sharing_mode=SharingMode::Exclusive){return CreateIBO(VK_INDEX_TYPE_UINT32,count,nullptr,sharing_mode);} -#define CREATE_BUFFER_OBJECT(LargeName,type) Buffer *Create##LargeName(VkDeviceSize size,void *data,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE){return CreateBuffer(VK_BUFFER_USAGE_##type##_BUFFER_BIT,size,data,sharing_mode);} \ - Buffer *Create##LargeName(VkDeviceSize size,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE){return CreateBuffer(VK_BUFFER_USAGE_##type##_BUFFER_BIT,size,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);} CREATE_BUFFER_OBJECT(UBO,UNIFORM) CREATE_BUFFER_OBJECT(SSBO,STORAGE) @@ -116,38 +116,38 @@ public: //Buffer相关 public: //Image - VkImage CreateImage1D (const VkFormat format,const uint32_t width, const uint usage,const VkImageTiling tiling); - VkImage CreateImage1DArray (const VkFormat format,const uint32_t width,const uint32_t layer, const uint usage,const VkImageTiling tiling); - VkImage CreateImage2D (const VkFormat format,const uint32_t width,const uint32_t height, const uint usage,const VkImageTiling tiling); - VkImage CreateImage2DArray (const VkFormat format,const uint32_t width,const uint32_t height,const uint32_t layer, const uint usage,const VkImageTiling tiling); - VkImage CreateImage3D (const VkFormat format,const uint32_t width,const uint32_t height,const uint32_t depth, const uint usage,const VkImageTiling tiling); - VkImage CreateCubemap (const VkFormat format,const uint32_t width,const uint32_t height, const uint usage,const VkImageTiling tiling); -// VkImage CreateCubemapArray (const VkFormat format,const uint32_t width,const uint32_t height,const uint32_t count, const uint usage,const VkImageTiling tiling); + VkImage CreateImage1D (const VkFormat format,const uint32_t width, const uint usage,const ImageTiling tiling); + VkImage CreateImage1DArray (const VkFormat format,const uint32_t width,const uint32_t layer, const uint usage,const ImageTiling tiling); + VkImage CreateImage2D (const VkFormat format,const uint32_t width,const uint32_t height, const uint usage,const ImageTiling tiling); + VkImage CreateImage2DArray (const VkFormat format,const uint32_t width,const uint32_t height,const uint32_t layer, const uint usage,const ImageTiling tiling); + VkImage CreateImage3D (const VkFormat format,const uint32_t width,const uint32_t height,const uint32_t depth, const uint usage,const ImageTiling tiling); + VkImage CreateCubemap (const VkFormat format,const uint32_t width,const uint32_t height, const uint usage,const ImageTiling tiling); +// VkImage CreateCubemapArray (const VkFormat format,const uint32_t width,const uint32_t height,const uint32_t count, const uint usage,const ImageTiling tiling); void DestoryImage (VkImage); public: //Texture - Texture2D *CreateTexture2D(Memory *mem,VkImage image,ImageView *image_view,VkImageLayout image_layout,VkImageTiling tiling); - Texture2D *CreateTexture2D(VkFormat format,uint32_t width,uint32_t height,VkImageAspectFlagBits aspectMask,VkImage image,VkImageLayout image_layout,VkImageTiling tiling=VK_IMAGE_TILING_OPTIMAL); + Texture2D *CreateTexture2D(Memory *mem,VkImage image,ImageView *image_view,VkImageLayout image_layout,ImageTiling tiling); + Texture2D *CreateTexture2D(VkFormat format,uint32_t width,uint32_t height,VkImageAspectFlagBits 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,VkImageTiling tiling=VK_IMAGE_TILING_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); - Texture2D *CreateTexture2DColor(const VkFormat video_format,uint32_t width,uint32_t height,const VkImageTiling tiling=VK_IMAGE_TILING_OPTIMAL) + Texture2D *CreateTexture2DColor(const VkFormat video_format,uint32_t width,uint32_t height,const ImageTiling tiling=ImageTiling::Optimal) { return CreateTexture2D(video_format,width,height, VK_IMAGE_ASPECT_COLOR_BIT, VK_IMAGE_USAGE_TRANSFER_DST_BIT|VK_IMAGE_USAGE_SAMPLED_BIT, - (tiling==VK_IMAGE_TILING_OPTIMAL?VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL:VK_IMAGE_LAYOUT_GENERAL), + (tiling==ImageTiling::Optimal?VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL:VK_IMAGE_LAYOUT_GENERAL), tiling); } - Texture2D *CreateTexture2DDepth(const VkFormat video_format,uint32_t width,uint32_t height,const VkImageTiling tiling=VK_IMAGE_TILING_OPTIMAL) + Texture2D *CreateTexture2DDepth(const VkFormat video_format,uint32_t width,uint32_t height,const ImageTiling tiling=ImageTiling::Optimal) { return CreateTexture2D(video_format,width,height, VK_IMAGE_ASPECT_DEPTH_BIT, VK_IMAGE_USAGE_TRANSFER_DST_BIT|VK_IMAGE_USAGE_SAMPLED_BIT, - (tiling==VK_IMAGE_TILING_OPTIMAL?VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL:VK_IMAGE_LAYOUT_GENERAL), + (tiling==ImageTiling::Optimal?VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL:VK_IMAGE_LAYOUT_GENERAL), tiling); } @@ -176,13 +176,13 @@ public: //Texture 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, - const VkImageTiling tiling =VK_IMAGE_TILING_OPTIMAL); + const ImageTiling tiling =ImageTiling::Optimal); Texture2D *CreateTexture2D( const VkFormat video_format,void *data,uint32_t width,uint32_t height,uint32_t size, 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, - const VkImageTiling tiling =VK_IMAGE_TILING_OPTIMAL); + const ImageTiling tiling =ImageTiling::Optimal); bool ChangeTexture2D(Texture2D *,Buffer *buf,const VkBufferImageCopy *,const int count); bool ChangeTexture2D(Texture2D *,Buffer *buf,const List &); diff --git a/src/RenderDevice/Vulkan/VKDatabase.cpp b/src/RenderDevice/Vulkan/VKDatabase.cpp index e81c4584..8047ac0c 100644 --- a/src/RenderDevice/Vulkan/VKDatabase.cpp +++ b/src/RenderDevice/Vulkan/VKDatabase.cpp @@ -3,7 +3,7 @@ #include VK_NAMESPACE_BEGIN -VAB *Database::CreateVAB(VkFormat format,uint32_t count,const void *data,VkSharingMode sharing_mode) +VAB *Database::CreateVAB(VkFormat format,uint32_t count,const void *data,SharingMode sharing_mode) { VAB *vb=device->CreateVAB(format,count,data,sharing_mode); @@ -15,7 +15,7 @@ VAB *Database::CreateVAB(VkFormat format,uint32_t count,const void *data,VkShari return vb; } -#define SCENE_DB_CREATE_BUFFER(name) Buffer *Database::Create##name(VkDeviceSize size,void *data,VkSharingMode sharing_mode) \ +#define SCENE_DB_CREATE_BUFFER(name) Buffer *Database::Create##name(VkDeviceSize size,void *data,SharingMode sharing_mode) \ { \ Buffer *buf=device->Create##name(size,data,sharing_mode); \ \ @@ -24,7 +24,7 @@ VAB *Database::CreateVAB(VkFormat format,uint32_t count,const void *data,VkShari return(buf); \ } \ \ - Buffer *Database::Create##name(VkDeviceSize size,VkSharingMode sharing_mode) \ + Buffer *Database::Create##name(VkDeviceSize size,SharingMode sharing_mode) \ { \ Buffer *buf=device->Create##name(size,sharing_mode); \ \ @@ -39,7 +39,7 @@ VAB *Database::CreateVAB(VkFormat format,uint32_t count,const void *data,VkShari #undef SCENE_DB_CREATE_BUFFER -IndexBuffer *Database::CreateIBO(VkIndexType index_type,uint32_t count,const void *data,VkSharingMode sharing_mode) +IndexBuffer *Database::CreateIBO(VkIndexType index_type,uint32_t count,const void *data,SharingMode sharing_mode) { IndexBuffer *buf=device->CreateIBO(index_type,count,data,sharing_mode); diff --git a/src/RenderDevice/Vulkan/VKDeviceBuffer.cpp b/src/RenderDevice/Vulkan/VKDeviceBuffer.cpp index 5b210ec8..45842c9a 100644 --- a/src/RenderDevice/Vulkan/VKDeviceBuffer.cpp +++ b/src/RenderDevice/Vulkan/VKDeviceBuffer.cpp @@ -2,17 +2,17 @@ #include VK_NAMESPACE_BEGIN -bool Device::CreateBuffer(BufferData *buf,VkBufferUsageFlags buf_usage,VkDeviceSize size,const void *data,VkSharingMode sharing_mode) +bool Device::CreateBuffer(BufferData *buf,VkBufferUsageFlags buf_usage,VkDeviceSize size,const void *data,SharingMode sharing_mode) { VkBufferCreateInfo buf_info={}; - buf_info.sType =VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO; - buf_info.pNext =nullptr; - buf_info.usage =buf_usage; - buf_info.size =size; - buf_info.queueFamilyIndexCount =0; - buf_info.pQueueFamilyIndices =nullptr; - buf_info.sharingMode =sharing_mode; - buf_info.flags =0; + buf_info.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO; + buf_info.pNext = nullptr; + buf_info.usage = buf_usage; + buf_info.size = size; + buf_info.queueFamilyIndexCount = 0; + buf_info.pQueueFamilyIndices = nullptr; + buf_info.sharingMode = VkSharingMode(sharing_mode); + buf_info.flags = 0; if(vkCreateBuffer(attr->device,&buf_info,nullptr,&buf->buffer)!=VK_SUCCESS) return(false); @@ -44,7 +44,7 @@ bool Device::CreateBuffer(BufferData *buf,VkBufferUsageFlags buf_usage,VkDeviceS return(false); } -VAB *Device::CreateVAB(VkFormat format,uint32_t count,const void *data,VkSharingMode sharing_mode) +VAB *Device::CreateVAB(VkFormat format,uint32_t count,const void *data,SharingMode sharing_mode) { const uint32_t stride=GetStrideByFormat(format); @@ -64,7 +64,7 @@ VAB *Device::CreateVAB(VkFormat format,uint32_t count,const void *data,VkSharing return(new VertexAttribBuffer(attr->device,buf,format,stride,count)); } -IndexBuffer *Device::CreateIBO(VkIndexType index_type,uint32_t count,const void *data,VkSharingMode sharing_mode) +IndexBuffer *Device::CreateIBO(VkIndexType index_type,uint32_t count,const void *data,SharingMode sharing_mode) { uint32_t stride; @@ -82,7 +82,7 @@ IndexBuffer *Device::CreateIBO(VkIndexType index_type,uint32_t count,const void return(new IndexBuffer(attr->device,buf,index_type,count)); } -Buffer *Device::CreateBuffer(VkBufferUsageFlags buf_usage,VkDeviceSize size,const void *data,VkSharingMode sharing_mode) +Buffer *Device::CreateBuffer(VkBufferUsageFlags buf_usage,VkDeviceSize size,const void *data,SharingMode sharing_mode) { BufferData buf; diff --git a/src/RenderDevice/Vulkan/VKDeviceImage.cpp b/src/RenderDevice/Vulkan/VKDeviceImage.cpp index a130dc3f..90381bf5 100644 --- a/src/RenderDevice/Vulkan/VKDeviceImage.cpp +++ b/src/RenderDevice/Vulkan/VKDeviceImage.cpp @@ -18,7 +18,7 @@ namespace } }//namespace -VkImage Device::CreateImage1D(const VkFormat format,const uint32_t length,const uint usage,const VkImageTiling tiling) +VkImage Device::CreateImage1D(const VkFormat format,const uint32_t length,const uint usage,const ImageTiling tiling) { if(!CheckVulkanFormat(format))return(nullptr); if(length<1)return(nullptr); @@ -41,7 +41,7 @@ VkImage Device::CreateImage1D(const VkFormat format,const uint32_t length,const imageCreateInfo.queueFamilyIndexCount = 0; imageCreateInfo.pQueueFamilyIndices = nullptr; imageCreateInfo.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; - imageCreateInfo.tiling = tiling; + imageCreateInfo.tiling = VkImageTiling(tiling); VkImage image; @@ -51,7 +51,7 @@ VkImage Device::CreateImage1D(const VkFormat format,const uint32_t length,const return image; } -VkImage Device::CreateImage1DArray(const VkFormat format,const uint32_t length,const uint32_t layer,const uint usage,const VkImageTiling tiling) +VkImage Device::CreateImage1DArray(const VkFormat format,const uint32_t length,const uint32_t layer,const uint usage,const ImageTiling tiling) { if(!CheckVulkanFormat(format))return(nullptr); if(length<1||layer<1)return(nullptr); @@ -74,7 +74,7 @@ VkImage Device::CreateImage1DArray(const VkFormat format,const uint32_t length,c imageCreateInfo.queueFamilyIndexCount = 0; imageCreateInfo.pQueueFamilyIndices = nullptr; imageCreateInfo.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; - imageCreateInfo.tiling = tiling; + imageCreateInfo.tiling = VkImageTiling(tiling); VkImage image; @@ -84,7 +84,7 @@ VkImage Device::CreateImage1DArray(const VkFormat format,const uint32_t length,c return image; } -VkImage Device::CreateImage2D(const VkFormat format,const uint32_t width,const uint32_t height,const uint usage,const VkImageTiling tiling) +VkImage Device::CreateImage2D(const VkFormat format,const uint32_t width,const uint32_t height,const uint usage,const ImageTiling tiling) { if(!CheckVulkanFormat(format))return(nullptr); if(width<1||height<1)return(nullptr); @@ -107,7 +107,7 @@ VkImage Device::CreateImage2D(const VkFormat format,const uint32_t width,const u imageCreateInfo.queueFamilyIndexCount = 0; imageCreateInfo.pQueueFamilyIndices = nullptr; imageCreateInfo.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; - imageCreateInfo.tiling = tiling; + imageCreateInfo.tiling = VkImageTiling(tiling); VkImage image; @@ -117,7 +117,7 @@ VkImage Device::CreateImage2D(const VkFormat format,const uint32_t width,const u return image; } -VkImage Device::CreateImage2DArray(const VkFormat format,const uint32_t width,const uint32_t height,const uint32_t layer,const uint usage,const VkImageTiling tiling) +VkImage Device::CreateImage2DArray(const VkFormat format,const uint32_t width,const uint32_t height,const uint32_t layer,const uint usage,const ImageTiling tiling) { if(!CheckVulkanFormat(format))return(nullptr); if(width<1||height<1)return(nullptr); @@ -140,7 +140,7 @@ VkImage Device::CreateImage2DArray(const VkFormat format,const uint32_t width,co imageCreateInfo.queueFamilyIndexCount = 0; imageCreateInfo.pQueueFamilyIndices = nullptr; imageCreateInfo.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; - imageCreateInfo.tiling = tiling; + imageCreateInfo.tiling = VkImageTiling(tiling); VkImage image; @@ -150,7 +150,7 @@ VkImage Device::CreateImage2DArray(const VkFormat format,const uint32_t width,co return image; } -VkImage Device::CreateImage3D(const VkFormat format,const uint32_t width,const uint32_t height,const uint32_t depth,const uint usage,const VkImageTiling tiling) +VkImage Device::CreateImage3D(const VkFormat format,const uint32_t width,const uint32_t height,const uint32_t depth,const uint usage,const ImageTiling tiling) { if(!CheckVulkanFormat(format))return(nullptr); if(width<1||height<1)return(nullptr); @@ -173,7 +173,7 @@ VkImage Device::CreateImage3D(const VkFormat format,const uint32_t width,const u imageCreateInfo.queueFamilyIndexCount = 0; imageCreateInfo.pQueueFamilyIndices = nullptr; imageCreateInfo.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; - imageCreateInfo.tiling = tiling; + imageCreateInfo.tiling = VkImageTiling(tiling); VkImage image; @@ -183,7 +183,7 @@ VkImage Device::CreateImage3D(const VkFormat format,const uint32_t width,const u return image; } -VkImage Device::CreateCubemap(const VkFormat format,const uint32_t width,const uint32_t height,const uint usage,const VkImageTiling tiling) +VkImage Device::CreateCubemap(const VkFormat format,const uint32_t width,const uint32_t height,const uint usage,const ImageTiling tiling) { if(!CheckVulkanFormat(format))return(nullptr); if(width<1||height<1)return(nullptr); @@ -206,7 +206,7 @@ VkImage Device::CreateCubemap(const VkFormat format,const uint32_t width,const u imageCreateInfo.queueFamilyIndexCount = 0; imageCreateInfo.pQueueFamilyIndices = nullptr; imageCreateInfo.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; - imageCreateInfo.tiling = tiling; + imageCreateInfo.tiling = VkImageTiling(tiling); VkImage image; diff --git a/src/RenderDevice/Vulkan/VKDeviceSwapchain.cpp b/src/RenderDevice/Vulkan/VKDeviceSwapchain.cpp index f20e294c..f088d0e6 100644 --- a/src/RenderDevice/Vulkan/VKDeviceSwapchain.cpp +++ b/src/RenderDevice/Vulkan/VKDeviceSwapchain.cpp @@ -110,7 +110,7 @@ bool Device::CreateSwapchainDepthTexture() VK_IMAGE_ASPECT_DEPTH_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_LAYOUT_UNDEFINED, - (props.optimalTilingFeatures&VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT)?VK_IMAGE_TILING_OPTIMAL:VK_IMAGE_TILING_LINEAR); + (props.optimalTilingFeatures&VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT)?ImageTiling::Optimal:ImageTiling::Linear); return swapchain->sc_depth; } diff --git a/src/RenderDevice/Vulkan/VKDeviceTexture.cpp b/src/RenderDevice/Vulkan/VKDeviceTexture.cpp index 3a068b07..dc877127 100644 --- a/src/RenderDevice/Vulkan/VKDeviceTexture.cpp +++ b/src/RenderDevice/Vulkan/VKDeviceTexture.cpp @@ -20,7 +20,7 @@ namespace } }//namespace -Texture2D *Device::CreateTexture2D(Memory *mem,VkImage image,ImageView *image_view,VkImageLayout image_layout,VkImageTiling tiling) +Texture2D *Device::CreateTexture2D(Memory *mem,VkImage image,ImageView *image_view,VkImageLayout image_layout,ImageTiling tiling) { TextureData *tex_data=new TextureData; @@ -30,12 +30,12 @@ Texture2D *Device::CreateTexture2D(Memory *mem,VkImage image,ImageView *image_vi tex_data->image_view = image_view; tex_data->mip_levels = 0; - tex_data->tiling = tiling; + tex_data->tiling = VkImageTiling(tiling); return(new Texture2D(attr->device,tex_data)); } -Texture2D *Device::CreateTexture2D(VkFormat format,uint32_t width,uint32_t height,VkImageAspectFlagBits aspectMask,VkImage image,VkImageLayout image_layout,VkImageTiling tiling) +Texture2D *Device::CreateTexture2D(VkFormat format,uint32_t width,uint32_t height,VkImageAspectFlagBits aspectMask,VkImage image,VkImageLayout image_layout,ImageTiling tiling) { VkExtent3D extent={width,height,1}; @@ -44,22 +44,22 @@ Texture2D *Device::CreateTexture2D(VkFormat format,uint32_t width,uint32_t heigh return this->CreateTexture2D(nullptr,image,iv,image_layout,tiling); } -Texture2D *Device::CreateTexture2D(const VkFormat format,uint32_t width,uint32_t height,const VkImageAspectFlags aspectMask,const uint usage,const VkImageLayout image_layout,VkImageTiling tiling) +Texture2D *Device::CreateTexture2D(const VkFormat format,uint32_t width,uint32_t height,const VkImageAspectFlags aspectMask,const uint usage,const VkImageLayout image_layout,ImageTiling tiling) { const VkFormatProperties fp=attr->physical_device->GetFormatProperties(format); - if(tiling==VK_IMAGE_TILING_OPTIMAL) + if(tiling==ImageTiling::Optimal) { if(fp.optimalTilingFeatures&VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT) - tiling=VK_IMAGE_TILING_OPTIMAL; + tiling=ImageTiling::Optimal; else - tiling=VK_IMAGE_TILING_LINEAR; + tiling=ImageTiling::Linear; } - if(tiling==VK_IMAGE_TILING_LINEAR) + if(tiling==ImageTiling::Linear) { if(fp.linearTilingFeatures&VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT) - tiling=VK_IMAGE_TILING_LINEAR; + tiling=ImageTiling::Linear; else return(nullptr); } @@ -84,7 +84,7 @@ Texture2D *Device::CreateTexture2D(const VkFormat format,uint32_t width,uint32_t return CreateTexture2D(mem,img,iv,image_layout,tiling); } -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 VkImageTiling tiling) +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) { if(!buf)return(nullptr); @@ -97,7 +97,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 VkImageTiling tiling) +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) { Buffer *buf=CreateBuffer(VK_BUFFER_USAGE_TRANSFER_SRC_BIT,size,data);