From 76217adc40fb198ab71425b10e78bae087fae257 Mon Sep 17 00:00:00 2001 From: cosmonaut Date: Thu, 24 Feb 2022 13:48:52 -0800 Subject: [PATCH] simplify VULKAN_INTERNAL_CreateTexture --- src/Refresh_Driver_Vulkan.c | 48 ++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 28 deletions(-) diff --git a/src/Refresh_Driver_Vulkan.c b/src/Refresh_Driver_Vulkan.c index ccfcfbe..1431907 100644 --- a/src/Refresh_Driver_Vulkan.c +++ b/src/Refresh_Driver_Vulkan.c @@ -5705,8 +5705,7 @@ static Refresh_ShaderModule* VULKAN_CreateShaderModule( return (Refresh_ShaderModule*) shaderModule; } -/* texture should be an alloc'd but uninitialized VulkanTexture */ -static uint8_t VULKAN_INTERNAL_CreateTexture( +static VulkanTexture* VULKAN_INTERNAL_CreateTexture( VulkanRenderer *renderer, uint32_t width, uint32_t height, @@ -5717,8 +5716,7 @@ static uint8_t VULKAN_INTERNAL_CreateTexture( VkFormat format, VkImageAspectFlags aspectMask, VkImageType imageType, - VkImageUsageFlags imageUsageFlags, - VulkanTexture *texture + VkImageUsageFlags imageUsageFlags ) { VkResult vulkanResult; VkImageCreateInfo imageCreateInfo; @@ -5732,6 +5730,8 @@ static uint8_t VULKAN_INTERNAL_CreateTexture( ((imageUsageFlags & VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT) != 0); VkComponentMapping swizzle = IDENTITY_SWIZZLE; + VulkanTexture *texture = SDL_malloc(sizeof(VulkanTexture)); + texture->isCube = 0; texture->is3D = 0; @@ -5891,7 +5891,7 @@ static uint8_t VULKAN_INTERNAL_CreateTexture( texture->queueFamilyIndex = renderer->queueFamilyIndices.graphicsFamily; texture->usageFlags = imageUsageFlags; - return 1; + return texture; } static Refresh_Texture* VULKAN_CreateTexture( @@ -5899,7 +5899,6 @@ static Refresh_Texture* VULKAN_CreateTexture( Refresh_TextureCreateInfo *textureCreateInfo ) { VulkanRenderer *renderer = (VulkanRenderer*) driverData; - VulkanTexture *result; VkImageUsageFlags imageUsageFlags = ( VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT @@ -5936,9 +5935,7 @@ static Refresh_Texture* VULKAN_CreateTexture( imageAspectFlags = VK_IMAGE_ASPECT_COLOR_BIT; } - result = (VulkanTexture*) SDL_malloc(sizeof(VulkanTexture)); - - VULKAN_INTERNAL_CreateTexture( + return (Refresh_Texture*) VULKAN_INTERNAL_CreateTexture( renderer, textureCreateInfo->width, textureCreateInfo->height, @@ -5949,11 +5946,8 @@ static Refresh_Texture* VULKAN_CreateTexture( format, imageAspectFlags, VK_IMAGE_TYPE_2D, - imageUsageFlags, - result + imageUsageFlags ); - - return (Refresh_Texture*) result; } static Refresh_RenderTarget* VULKAN_CreateRenderTarget( @@ -5992,22 +5986,20 @@ static Refresh_RenderTarget* VULKAN_CreateRenderTarget( if (multisampleCount > REFRESH_SAMPLECOUNT_1) { renderTarget->multisampleTexture = - (VulkanTexture*) SDL_malloc(sizeof(VulkanTexture)); + VULKAN_INTERNAL_CreateTexture( + renderer, + renderTarget->texture->dimensions.width, + renderTarget->texture->dimensions.height, + 1, + 0, + RefreshToVK_SampleCount[multisampleCount], + 1, + renderTarget->texture->format, + aspectFlags, + VK_IMAGE_TYPE_2D, + VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT + ); - VULKAN_INTERNAL_CreateTexture( - renderer, - renderTarget->texture->dimensions.width, - renderTarget->texture->dimensions.height, - 1, - 0, - RefreshToVK_SampleCount[multisampleCount], - 1, - renderTarget->texture->format, - aspectFlags, - VK_IMAGE_TYPE_2D, - VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT, - renderTarget->multisampleTexture - ); renderTarget->multisampleCount = multisampleCount; }