use new AutoDeleteArray construct function.

This commit is contained in:
hyzboy 2020-09-27 21:20:17 +08:00
parent 113b6da33b
commit d65cab330e
3 changed files with 8 additions and 8 deletions

View File

@ -73,7 +73,7 @@ bool Device::CreateSwapchainColorTexture()
if(vkGetSwapchainImagesKHR(attr->device,swapchain->swap_chain,&(swapchain->swap_chain_count),nullptr)!=VK_SUCCESS) if(vkGetSwapchainImagesKHR(attr->device,swapchain->swap_chain,&(swapchain->swap_chain_count),nullptr)!=VK_SUCCESS)
return(false); return(false);
AutoDeleteArray<VkImage> sc_images=new VkImage[swapchain->swap_chain_count]; AutoDeleteArray<VkImage> sc_images(swapchain->swap_chain_count);
if(vkGetSwapchainImagesKHR(attr->device,swapchain->swap_chain,&(swapchain->swap_chain_count),sc_images)!=VK_SUCCESS) if(vkGetSwapchainImagesKHR(attr->device,swapchain->swap_chain,&(swapchain->swap_chain_count),sc_images)!=VK_SUCCESS)
return(false); return(false);

View File

@ -6,6 +6,7 @@
#include<hgl/graph/vulkan/VKBuffer.h> #include<hgl/graph/vulkan/VKBuffer.h>
#include<hgl/graph/vulkan/VKCommandBuffer.h> #include<hgl/graph/vulkan/VKCommandBuffer.h>
#include<hgl/graph/vulkan/VKMemory.h> #include<hgl/graph/vulkan/VKMemory.h>
#include<hgl/graph/vulkan/VKImageCreateInfo.h>
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
namespace namespace
{ {
@ -64,7 +65,8 @@ Texture2D *Device::CreateTexture2D(const VkFormat format,uint32_t width,uint32_t
return(nullptr); return(nullptr);
} }
VkImage img=CreateImage2D(format,width,height,usage,tiling); Image2DCreateInfo ici(usage,tiling,format,width,height);
VkImage img=CreateImage(&ici);
if(!img)return(nullptr); if(!img)return(nullptr);
@ -121,9 +123,7 @@ bool Device::ChangeTexture2D(Texture2D *tex,Buffer *buf,const VkBufferImageCopy
subresourceRange.baseArrayLayer = 0; subresourceRange.baseArrayLayer = 0;
subresourceRange.layerCount = 1; subresourceRange.layerCount = 1;
VkImageMemoryBarrier imageMemoryBarrier; ImageMemoryBarrier imageMemoryBarrier;
imageMemoryBarrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
imageMemoryBarrier.pNext = nullptr;
imageMemoryBarrier.srcAccessMask = 0; imageMemoryBarrier.srcAccessMask = 0;
imageMemoryBarrier.dstAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT; imageMemoryBarrier.dstAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT;
imageMemoryBarrier.oldLayout = VK_IMAGE_LAYOUT_UNDEFINED; imageMemoryBarrier.oldLayout = VK_IMAGE_LAYOUT_UNDEFINED;
@ -176,7 +176,7 @@ bool Device::ChangeTexture2D(Texture2D *tex,Buffer *buf,const List<ImageRegion>
const int ir_count=ir_list.GetCount(); const int ir_count=ir_list.GetCount();
int count=0; int count=0;
AutoDeleteArray<VkBufferImageCopy> buffer_image_copy=new VkBufferImageCopy[ir_count]; AutoDeleteArray<VkBufferImageCopy> buffer_image_copy(ir_count);
VkBufferImageCopy *tp=buffer_image_copy; VkBufferImageCopy *tp=buffer_image_copy;
const ImageRegion *sp=ir_list.GetData(); const ImageRegion *sp=ir_list.GetData();

View File

@ -37,8 +37,8 @@ RenderableInstance *CreateRenderableInstance(Renderable *r,MaterialInstance *mi,
if(r->GetBufferCount()<input_count) //小于材质要求的数量?那自然是不行的 if(r->GetBufferCount()<input_count) //小于材质要求的数量?那自然是不行的
return(nullptr); return(nullptr);
AutoDeleteArray<VkBuffer> buffer_list=new VkBuffer[input_count]; AutoDeleteArray<VkBuffer> buffer_list(input_count);
AutoDeleteArray<VkDeviceSize> buffer_size=new VkDeviceSize[input_count]; AutoDeleteArray<VkDeviceSize> buffer_size(input_count);
ShaderStage **ss=ssl.GetData(); ShaderStage **ss=ssl.GetData();