@@ -99,7 +99,7 @@ static struct {
9999#define MAX (a , b ) (a > b ? a : b)
100100
101101static WGPU_TEXTURE_FORMAT convertFormat (gpu_texture_format format , bool srgb );
102- static uint32_t getRowSize (gpu_texture_format format , uint32_t width );
102+ static uint32_t getRowSize (WGPU_TEXTURE_FORMAT format , uint32_t width );
103103
104104// Buffer
105105
@@ -1480,9 +1480,9 @@ static WGPU_TEXTURE_FORMAT convertFormat(gpu_texture_format format, bool srgb) {
14801480 [GPU_FORMAT_RG8 ] = { WGPU_TEXTURE_FORMAT_RG8UNORM , WGPU_TEXTURE_FORMAT_RG8UNORM },
14811481 [GPU_FORMAT_RGBA8 ] = { WGPU_TEXTURE_FORMAT_RGBA8UNORM , WGPU_TEXTURE_FORMAT_RGBA8UNORM_SRGB },
14821482 [GPU_FORMAT_BGRA8 ] = { WGPU_TEXTURE_FORMAT_BGRA8UNORM , WGPU_TEXTURE_FORMAT_BGRA8UNORM_SRGB },
1483- [GPU_FORMAT_R16 ] = { WGPU_TEXTURE_FORMAT_INVALID , WGPU_TEXTURE_FORMAT_INVALID },
1484- [GPU_FORMAT_RG16 ] = { WGPU_TEXTURE_FORMAT_INVALID , WGPU_TEXTURE_FORMAT_INVALID },
1485- [GPU_FORMAT_RGBA16 ] = { WGPU_TEXTURE_FORMAT_INVALID , WGPU_TEXTURE_FORMAT_INVALID },
1483+ [GPU_FORMAT_R16 ] = { WGPU_TEXTURE_FORMAT_R16UNORM , WGPU_TEXTURE_FORMAT_R16UNORM },
1484+ [GPU_FORMAT_RG16 ] = { WGPU_TEXTURE_FORMAT_RG16UNORM , WGPU_TEXTURE_FORMAT_RG16UNORM },
1485+ [GPU_FORMAT_RGBA16 ] = { WGPU_TEXTURE_FORMAT_RGBA16UNORM , WGPU_TEXTURE_FORMAT_RGBA16UNORM },
14861486 [GPU_FORMAT_R16F ] = { WGPU_TEXTURE_FORMAT_R16FLOAT , WGPU_TEXTURE_FORMAT_R16FLOAT },
14871487 [GPU_FORMAT_RG16F ] = { WGPU_TEXTURE_FORMAT_RG16FLOAT , WGPU_TEXTURE_FORMAT_RG16FLOAT },
14881488 [GPU_FORMAT_RGBA16F ] = { WGPU_TEXTURE_FORMAT_RGBA16FLOAT , WGPU_TEXTURE_FORMAT_RGBA16FLOAT },
@@ -1527,54 +1527,72 @@ static WGPU_TEXTURE_FORMAT convertFormat(gpu_texture_format format, bool srgb) {
15271527 return formats [format ][srgb ];
15281528}
15291529
1530- static uint32_t getRowSize (gpu_texture_format format , uint32_t width ) {
1530+ static uint32_t getRowSize (WGPU_TEXTURE_FORMAT format , uint32_t width ) {
15311531 switch (format ) {
1532- case GPU_FORMAT_R8 : return width ; break ;
1533- case GPU_FORMAT_RG8 :
1534- case GPU_FORMAT_R16 :
1535- case GPU_FORMAT_R16F :
1536- case GPU_FORMAT_RGB565 :
1537- case GPU_FORMAT_RGB5A1 :
1538- case GPU_FORMAT_D16 : return width * 2 ; break ;
1539- case GPU_FORMAT_RGBA8 :
1540- case GPU_FORMAT_BGRA8 :
1541- case GPU_FORMAT_RG16 :
1542- case GPU_FORMAT_RG16F :
1543- case GPU_FORMAT_R32F :
1544- case GPU_FORMAT_RG11B10F :
1545- case GPU_FORMAT_RGB10A2 :
1546- case GPU_FORMAT_D24 :
1547- case GPU_FORMAT_D24S8 :
1548- case GPU_FORMAT_D32F : return width * 4 ; break ;
1549- case GPU_FORMAT_D32FS8 : return width * 5 ; break ;
1550- case GPU_FORMAT_RGBA16 :
1551- case GPU_FORMAT_RGBA16F :
1552- case GPU_FORMAT_RG32F : return width * 8 ; break ;
1553- case GPU_FORMAT_RGBA32F : return width * 16 ; break ;
1554- case GPU_FORMAT_BC1 : return ((width + 3 ) / 4 ) * 8 ; break ;
1555- case GPU_FORMAT_BC2 : return ((width + 3 ) / 4 ) * 16 ; break ;
1556- case GPU_FORMAT_BC3 : return ((width + 3 ) / 4 ) * 16 ; break ;
1557- case GPU_FORMAT_BC4U : return ((width + 3 ) / 4 ) * 8 ; break ;
1558- case GPU_FORMAT_BC4S : return ((width + 3 ) / 4 ) * 8 ; break ;
1559- case GPU_FORMAT_BC5U : return ((width + 3 ) / 4 ) * 16 ; break ;
1560- case GPU_FORMAT_BC5S : return ((width + 3 ) / 4 ) * 16 ; break ;
1561- case GPU_FORMAT_BC6UF : return ((width + 3 ) / 4 ) * 16 ; break ;
1562- case GPU_FORMAT_BC6SF : return ((width + 3 ) / 4 ) * 16 ; break ;
1563- case GPU_FORMAT_BC7 : return ((width + 3 ) / 4 ) * 16 ; break ;
1564- case GPU_FORMAT_ASTC_4x4 : return ((width + 3 ) / 4 ) * 16 ; break ;
1565- case GPU_FORMAT_ASTC_5x4 : return ((width + 4 ) / 5 ) * 16 ; break ;
1566- case GPU_FORMAT_ASTC_5x5 : return ((width + 4 ) / 5 ) * 16 ; break ;
1567- case GPU_FORMAT_ASTC_6x5 : return ((width + 5 ) / 6 ) * 16 ; break ;
1568- case GPU_FORMAT_ASTC_6x6 : return ((width + 5 ) / 6 ) * 16 ; break ;
1569- case GPU_FORMAT_ASTC_8x5 : return ((width + 7 ) / 8 ) * 16 ; break ;
1570- case GPU_FORMAT_ASTC_8x6 : return ((width + 7 ) / 8 ) * 16 ; break ;
1571- case GPU_FORMAT_ASTC_8x8 : return ((width + 7 ) / 8 ) * 16 ; break ;
1572- case GPU_FORMAT_ASTC_10x5 : return ((width + 9 ) / 10 ) * 16 ; break ;
1573- case GPU_FORMAT_ASTC_10x6 : return ((width + 9 ) / 10 ) * 16 ; break ;
1574- case GPU_FORMAT_ASTC_10x8 : return ((width + 9 ) / 10 ) * 16 ; break ;
1575- case GPU_FORMAT_ASTC_10x10 : return ((width + 9 ) / 10 ) * 16 ; break ;
1576- case GPU_FORMAT_ASTC_12x10 : return ((width + 11 ) / 12 ) * 16 ; break ;
1577- case GPU_FORMAT_ASTC_12x12 : return ((width + 11 ) / 12 ) * 16 ; break ;
1532+ case WGPU_TEXTURE_FORMAT_R8UNORM :
1533+ return width ;
1534+ case WGPU_TEXTURE_FORMAT_RG8UNORM :
1535+ case WGPU_TEXTURE_FORMAT_R16UNORM :
1536+ case WGPU_TEXTURE_FORMAT_R16FLOAT :
1537+ case WGPU_TEXTURE_FORMAT_DEPTH16UNORM :
1538+ return width * 2 ;
1539+ case WGPU_TEXTURE_FORMAT_RGBA8UNORM :
1540+ case WGPU_TEXTURE_FORMAT_RGBA8UNORM_SRGB :
1541+ case WGPU_TEXTURE_FORMAT_BGRA8UNORM :
1542+ case WGPU_TEXTURE_FORMAT_BGRA8UNORM_SRGB :
1543+ case WGPU_TEXTURE_FORMAT_RG16UNORM :
1544+ case WGPU_TEXTURE_FORMAT_RG16FLOAT :
1545+ case WGPU_TEXTURE_FORMAT_R32FLOAT :
1546+ case WGPU_TEXTURE_FORMAT_RG11B10UFLOAT :
1547+ case WGPU_TEXTURE_FORMAT_RGB10A2UNORM :
1548+ case WGPU_TEXTURE_FORMAT_DEPTH24PLUS :
1549+ case WGPU_TEXTURE_FORMAT_DEPTH24PLUS_STENCIL8 :
1550+ case WGPU_TEXTURE_FORMAT_DEPTH32FLOAT :
1551+ return width * 4 ;
1552+ case WGPU_TEXTURE_FORMAT_DEPTH32FLOAT_STENCIL8 :
1553+ return width * 5 ;
1554+ case WGPU_TEXTURE_FORMAT_RGBA16UNORM :
1555+ case WGPU_TEXTURE_FORMAT_RGBA16FLOAT :
1556+ case WGPU_TEXTURE_FORMAT_RG32FLOAT :
1557+ return width * 8 ;
1558+ case WGPU_TEXTURE_FORMAT_RGBA32FLOAT :
1559+ return width * 16 ;
1560+ case WGPU_TEXTURE_FORMAT_BC1_RGBA_UNORM : case WGPU_TEXTURE_FORMAT_BC1_RGBA_UNORM_SRGB :
1561+ case WGPU_TEXTURE_FORMAT_BC2_RGBA_UNORM : case WGPU_TEXTURE_FORMAT_BC2_RGBA_UNORM_SRGB :
1562+ case WGPU_TEXTURE_FORMAT_BC3_RGBA_UNORM : case WGPU_TEXTURE_FORMAT_BC3_RGBA_UNORM_SRGB :
1563+ case WGPU_TEXTURE_FORMAT_BC4_R_UNORM : case WGPU_TEXTURE_FORMAT_BC4_R_SNORM :
1564+ case WGPU_TEXTURE_FORMAT_BC5_RG_UNORM : case WGPU_TEXTURE_FORMAT_BC5_RG_SNORM :
1565+ case WGPU_TEXTURE_FORMAT_BC6H_RGB_UFLOAT : case WGPU_TEXTURE_FORMAT_BC6H_RGB_FLOAT :
1566+ case WGPU_TEXTURE_FORMAT_BC7_RGBA_UNORM : case WGPU_TEXTURE_FORMAT_BC7_RGBA_UNORM_SRGB :
1567+ return ((width + 3 ) / 4 ) * 16 ;
1568+ case WGPU_TEXTURE_FORMAT_ASTC_4X4_UNORM : case WGPU_TEXTURE_FORMAT_ASTC_4X4_UNORM_SRGB :
1569+ return ((width + 3 ) / 4 ) * 16 ;
1570+ case WGPU_TEXTURE_FORMAT_ASTC_5X4_UNORM : case WGPU_TEXTURE_FORMAT_ASTC_5X4_UNORM_SRGB :
1571+ return ((width + 4 ) / 5 ) * 16 ;
1572+ case WGPU_TEXTURE_FORMAT_ASTC_5X5_UNORM : case WGPU_TEXTURE_FORMAT_ASTC_5X5_UNORM_SRGB :
1573+ return ((width + 4 ) / 5 ) * 16 ;
1574+ case WGPU_TEXTURE_FORMAT_ASTC_6X5_UNORM : case WGPU_TEXTURE_FORMAT_ASTC_6X5_UNORM_SRGB :
1575+ return ((width + 5 ) / 6 ) * 16 ;
1576+ case WGPU_TEXTURE_FORMAT_ASTC_6X6_UNORM : case WGPU_TEXTURE_FORMAT_ASTC_6X6_UNORM_SRGB :
1577+ return ((width + 5 ) / 6 ) * 16 ;
1578+ case WGPU_TEXTURE_FORMAT_ASTC_8X5_UNORM : case WGPU_TEXTURE_FORMAT_ASTC_8X5_UNORM_SRGB :
1579+ return ((width + 7 ) / 8 ) * 16 ;
1580+ case WGPU_TEXTURE_FORMAT_ASTC_8X6_UNORM : case WGPU_TEXTURE_FORMAT_ASTC_8X6_UNORM_SRGB :
1581+ return ((width + 7 ) / 8 ) * 16 ;
1582+ case WGPU_TEXTURE_FORMAT_ASTC_8X8_UNORM : case WGPU_TEXTURE_FORMAT_ASTC_8X8_UNORM_SRGB :
1583+ return ((width + 7 ) / 8 ) * 16 ;
1584+ case WGPU_TEXTURE_FORMAT_ASTC_10X5_UNORM : case WGPU_TEXTURE_FORMAT_ASTC_10X5_UNORM_SRGB :
1585+ return ((width + 9 ) / 10 ) * 16 ;
1586+ case WGPU_TEXTURE_FORMAT_ASTC_10X6_UNORM : case WGPU_TEXTURE_FORMAT_ASTC_10X6_UNORM_SRGB :
1587+ return ((width + 9 ) / 10 ) * 16 ;
1588+ case WGPU_TEXTURE_FORMAT_ASTC_10X8_UNORM : case WGPU_TEXTURE_FORMAT_ASTC_10X8_UNORM_SRGB :
1589+ return ((width + 9 ) / 10 ) * 16 ;
1590+ case WGPU_TEXTURE_FORMAT_ASTC_10X10_UNORM : case WGPU_TEXTURE_FORMAT_ASTC_10X10_UNORM_SRGB :
1591+ return ((width + 9 ) / 10 ) * 16 ;
1592+ case WGPU_TEXTURE_FORMAT_ASTC_12X10_UNORM : case WGPU_TEXTURE_FORMAT_ASTC_12X10_UNORM_SRGB :
1593+ return ((width + 11 ) / 12 ) * 16 ;
1594+ case WGPU_TEXTURE_FORMAT_ASTC_12X12_UNORM : case WGPU_TEXTURE_FORMAT_ASTC_12X12_UNORM_SRGB :
1595+ return ((width + 11 ) / 12 ) * 16 ;
15781596 default : return 0 ;
15791597 }
15801598}
0 commit comments