From ac4c97d33ad6103216dac96f98fdae159f1b9067 Mon Sep 17 00:00:00 2001 From: "HuYingzhuo(hugo/hyzboy)" Date: Mon, 25 Sep 2023 12:42:48 +0800 Subject: [PATCH] renamed to CopyBufferToImage from CommitTexture --- inc/hgl/graph/VKDevice.h | 26 ++++++++++++++++++- .../Vulkan/Texture/VKDeviceTexture.cpp | 2 +- .../Vulkan/Texture/VKDeviceTexture2D.cpp | 8 +++--- .../Vulkan/Texture/VKDeviceTextureCube.cpp | 4 +-- 4 files changed, 32 insertions(+), 8 deletions(-) diff --git a/inc/hgl/graph/VKDevice.h b/inc/hgl/graph/VKDevice.h index f8fc2b8e..8e8124f1 100644 --- a/inc/hgl/graph/VKDevice.h +++ b/inc/hgl/graph/VKDevice.h @@ -24,6 +24,30 @@ class TileFont; class FontSource; class GPUArrayBuffer; +struct Image2DSubresourceRange:public VkImageSubresourceRange +{ + Image2DSubresourceRange(Texture2D *tex) + { + this->aspectMask =tex->GetAspect(); + this->baseMipLevel =0; + this->levelCount =tex->GetMipLevel(); + this->baseArrayLayer=0; + this->layerCount =1; + } +};//struct Image2DSubresourceRange:public VkImageSubresourceRange + +struct ImageCubeSubresourceRange:public VkImageSubresourceRange +{ + ImageCubeSubresourceRange(TextureCube *tex) + { + this->aspectMask =tex->GetAspect(); + this->baseMipLevel =0; + this->levelCount =tex->GetMipLevel(); + this->baseArrayLayer=0; + this->layerCount =6; + } +};//struct ImageCubeSubresourceRange:public VkImageSubresourceRange + class GPUDevice { GPUDeviceAttribute *attr; @@ -151,7 +175,7 @@ public: //Image private: //texture - bool CommitTexture (Texture *,DeviceBuffer *buf,const VkBufferImageCopy *,const int count,const uint32_t layer_count,VkPipelineStageFlags);//=VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT); + bool CopyBufferToImage (Texture *,DeviceBuffer *buf,const VkBufferImageCopy *,const int count,const uint32_t layer_count,VkPipelineStageFlags);//=VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT); bool CommitTexture2D (Texture2D *,DeviceBuffer *buf,VkPipelineStageFlags stage); bool CommitTexture2DMipmaps (Texture2D *,DeviceBuffer *buf,const VkExtent3D &,uint32_t); diff --git a/src/SceneGraph/Vulkan/Texture/VKDeviceTexture.cpp b/src/SceneGraph/Vulkan/Texture/VKDeviceTexture.cpp index 86f5c53b..6f4769be 100644 --- a/src/SceneGraph/Vulkan/Texture/VKDeviceTexture.cpp +++ b/src/SceneGraph/Vulkan/Texture/VKDeviceTexture.cpp @@ -24,7 +24,7 @@ void GPUDevice::Clear(TextureCreateInfo *tci) delete tci; } -bool GPUDevice::CommitTexture(Texture *tex,DeviceBuffer *buf,const VkBufferImageCopy *buffer_image_copy,const int count,const uint32_t layer_count,VkPipelineStageFlags destinationStage) +bool GPUDevice::CopyBufferToImage(Texture *tex,DeviceBuffer *buf,const VkBufferImageCopy *buffer_image_copy,const int count,const uint32_t layer_count,VkPipelineStageFlags destinationStage) { if(!tex||!buf) return(false); diff --git a/src/SceneGraph/Vulkan/Texture/VKDeviceTexture2D.cpp b/src/SceneGraph/Vulkan/Texture/VKDeviceTexture2D.cpp index 915f48de..1860d5c0 100644 --- a/src/SceneGraph/Vulkan/Texture/VKDeviceTexture2D.cpp +++ b/src/SceneGraph/Vulkan/Texture/VKDeviceTexture2D.cpp @@ -94,7 +94,7 @@ bool GPUDevice::CommitTexture2D(Texture2D *tex,DeviceBuffer *buf,VkPipelineStage BufferImageCopy buffer_image_copy(tex); - return CommitTexture(tex,buf,&buffer_image_copy,1,1,destinationStage); + return CopyBufferToImage(tex,buf,&buffer_image_copy,1,1,destinationStage); } bool GPUDevice::CommitTexture2DMipmaps(Texture2D *tex,DeviceBuffer *buf,const VkExtent3D &extent,uint32_t total_bytes) @@ -140,7 +140,7 @@ bool GPUDevice::CommitTexture2DMipmaps(Texture2D *tex,DeviceBuffer *buf,const Vk if(height>1){height>>=1;total_bytes>>=1;} } - return CommitTexture(tex,buf,buffer_image_copy,miplevel,1,VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT); + return CopyBufferToImage(tex,buf,buffer_image_copy,miplevel,1,VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT); } bool GPUDevice::ChangeTexture2D(Texture2D *tex,DeviceBuffer *buf,const List &ir_list,VkPipelineStageFlags destinationStage) @@ -177,7 +177,7 @@ bool GPUDevice::ChangeTexture2D(Texture2D *tex,DeviceBuffer *buf,const ListBegin(); - bool result=CommitTexture(tex,buf,buffer_image_copy,ir_count,1,destinationStage); + bool result=CopyBufferToImage(tex,buf,buffer_image_copy,ir_count,1,destinationStage); texture_cmd_buf->End(); SubmitTexture(*texture_cmd_buf); return result; @@ -195,7 +195,7 @@ bool GPUDevice::ChangeTexture2D(Texture2D *tex,DeviceBuffer *buf,const RectScope BufferImageCopy buffer_image_copy(tex,scope); texture_cmd_buf->Begin(); - bool result=CommitTexture(tex,buf,&buffer_image_copy,1,1,destinationStage); + bool result=CopyBufferToImage(tex,buf,&buffer_image_copy,1,1,destinationStage); texture_cmd_buf->End(); SubmitTexture(*texture_cmd_buf); return result; diff --git a/src/SceneGraph/Vulkan/Texture/VKDeviceTextureCube.cpp b/src/SceneGraph/Vulkan/Texture/VKDeviceTextureCube.cpp index 655d20b7..fcb86405 100644 --- a/src/SceneGraph/Vulkan/Texture/VKDeviceTextureCube.cpp +++ b/src/SceneGraph/Vulkan/Texture/VKDeviceTextureCube.cpp @@ -90,7 +90,7 @@ bool GPUDevice::CommitTextureCube(TextureCube *tex,DeviceBuffer *buf,const uint3 BufferImageCopy buffer_image_copy(tex); - return CommitTexture(tex,buf,&buffer_image_copy,1,6,destinationStage); + return CopyBufferToImage(tex,buf,&buffer_image_copy,1,6,destinationStage); } bool GPUDevice::CommitTextureCubeMipmaps(TextureCube *tex,DeviceBuffer *buf,const VkExtent3D &extent,uint32_t total_bytes) @@ -140,7 +140,7 @@ bool GPUDevice::CommitTextureCubeMipmaps(TextureCube *tex,DeviceBuffer *buf,cons if(height>1){height>>=1;total_bytes>>=1;} } - return CommitTexture(tex,buf,buffer_image_copy,miplevel,6,VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT); + return CopyBufferToImage(tex,buf,buffer_image_copy,miplevel,6,VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT); } //bool GPUDevice::ChangeTexture2D(Texture2D *tex,DeviceBuffer *buf,const List &ir_list,VkPipelineStageFlags destinationStage)