add support for more formats in vulkan

This commit is contained in:
Gregory Wells
2025-08-18 20:11:41 -04:00
parent c99a4cdb31
commit 8658c7646f
2 changed files with 10 additions and 2 deletions

View File

@@ -144,8 +144,15 @@ void VkCopyBufferToImage(VkGryphnBuffer buffer, VkGryphnImage image, gnExtent3D
gnReturnCode createTexture(gnTexture texture, gnDevice device, const gnTextureInfo info) {
texture->texture = malloc(sizeof(struct gnPlatformTexture_t));
size_t imageSize = info.extent.width * info.extent.height;
if (info.format == GN_FORMAT_BGRA8_SRGB) { imageSize *= 4; }
if (info.format == GN_FORMAT_RGBA8_SRGB) { imageSize *= 4; }
switch (info.format) {
case GN_FORMAT_NONE: imageSize *= 0; break;
case GN_FORMAT_BGRA8_SRGB: imageSize *= 4; break;
case GN_FORMAT_BGRA8: imageSize *= 4; break;
case GN_FORMAT_RGBA8: imageSize *= 4; break;
case GN_FORMAT_RGBA8_SRGB: imageSize *= 4; break;
case GN_FORMAT_D32S8_UINT: imageSize *= 5; break;
case GN_FORMAT_D24S8_UINT: imageSize *= 4; break;
};
texture->texture->size = imageSize;
VkImageCreateInfo imageInfo = {
.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,

View File

@@ -109,6 +109,7 @@ VkFormat vkGryphnFormatToVulkanFormat(gnImageFormat format) {
case GN_FORMAT_NONE: return VK_FORMAT_UNDEFINED;
case GN_FORMAT_BGRA8_SRGB: return VK_FORMAT_B8G8R8A8_SRGB;
case GN_FORMAT_BGRA8: return VK_FORMAT_B8G8R8A8_UNORM;
case GN_FORMAT_RGBA8: return VK_FORMAT_R8G8B8A8_UNORM;
case GN_FORMAT_RGBA8_SRGB: return VK_FORMAT_R8G8B8A8_SRGB;
case GN_FORMAT_D32S8_UINT: return VK_FORMAT_D32_SFLOAT_S8_UINT;
case GN_FORMAT_D24S8_UINT: return VK_FORMAT_D24_UNORM_S8_UINT;