Forráskód Böngészése

GPU: Allow size queries on depth formats

cosmonaut 6 hónapja
szülő
commit
00bb81de76
2 módosított fájl, 16 hozzáadás és 0 törlés
  1. 6 0
      src/gpu/SDL_gpu.c
  2. 10 0
      src/gpu/SDL_sysgpu.h

+ 6 - 0
src/gpu/SDL_gpu.c

@@ -619,6 +619,7 @@ Uint32 SDL_GPUTextureFormatTexelBlockSize(
     case SDL_GPU_TEXTUREFORMAT_R16_UNORM:
     case SDL_GPU_TEXTUREFORMAT_R16_SNORM:
     case SDL_GPU_TEXTUREFORMAT_R16_UINT:
+    case SDL_GPU_TEXTUREFORMAT_D16_UNORM:
         return 2;
     case SDL_GPU_TEXTUREFORMAT_R8G8B8A8_UNORM:
     case SDL_GPU_TEXTUREFORMAT_B8G8R8A8_UNORM:
@@ -633,7 +634,12 @@ Uint32 SDL_GPUTextureFormatTexelBlockSize(
     case SDL_GPU_TEXTUREFORMAT_R16G16_UINT:
     case SDL_GPU_TEXTUREFORMAT_R16G16_UNORM:
     case SDL_GPU_TEXTUREFORMAT_R16G16_SNORM:
+    case SDL_GPU_TEXTUREFORMAT_D24_UNORM:
+    case SDL_GPU_TEXTUREFORMAT_D32_FLOAT:
+    case SDL_GPU_TEXTUREFORMAT_D24_UNORM_S8_UINT:
         return 4;
+    case SDL_GPU_TEXTUREFORMAT_D32_FLOAT_S8_UINT:
+        return 5;
     case SDL_GPU_TEXTUREFORMAT_R16G16B16A16_FLOAT:
     case SDL_GPU_TEXTUREFORMAT_R16G16B16A16_UNORM:
     case SDL_GPU_TEXTUREFORMAT_R16G16B16A16_SNORM:

+ 10 - 0
src/gpu/SDL_sysgpu.h

@@ -180,6 +180,11 @@ static inline Sint32 Texture_GetBlockWidth(
     case SDL_GPU_TEXTUREFORMAT_R16G16B16A16_INT:
     case SDL_GPU_TEXTUREFORMAT_R8G8B8A8_UNORM_SRGB:
     case SDL_GPU_TEXTUREFORMAT_B8G8R8A8_UNORM_SRGB:
+    case SDL_GPU_TEXTUREFORMAT_D16_UNORM:
+    case SDL_GPU_TEXTUREFORMAT_D24_UNORM:
+    case SDL_GPU_TEXTUREFORMAT_D32_FLOAT:
+    case SDL_GPU_TEXTUREFORMAT_D24_UNORM_S8_UINT:
+    case SDL_GPU_TEXTUREFORMAT_D32_FLOAT_S8_UINT:
         return 1;
     default:
         SDL_assert_release(!"Unrecognized TextureFormat!");
@@ -289,6 +294,11 @@ static inline Sint32 Texture_GetBlockHeight(
     case SDL_GPU_TEXTUREFORMAT_R16G16B16A16_INT:
     case SDL_GPU_TEXTUREFORMAT_R8G8B8A8_UNORM_SRGB:
     case SDL_GPU_TEXTUREFORMAT_B8G8R8A8_UNORM_SRGB:
+    case SDL_GPU_TEXTUREFORMAT_D16_UNORM:
+    case SDL_GPU_TEXTUREFORMAT_D24_UNORM:
+    case SDL_GPU_TEXTUREFORMAT_D32_FLOAT:
+    case SDL_GPU_TEXTUREFORMAT_D24_UNORM_S8_UINT:
+    case SDL_GPU_TEXTUREFORMAT_D32_FLOAT_S8_UINT:
         return 1;
     default:
         SDL_assert_release(!"Unrecognized TextureFormat!");