add support for more formats in vulkan
This commit is contained in:
@@ -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,
|
||||
|
@@ -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;
|
||||
|
Reference in New Issue
Block a user