mirror of
https://github.com/love2d/love.git
synced 2026-08-16 08:11:02 +02:00
metal: integer texture format support.
This commit is contained in:
@@ -1653,6 +1653,28 @@ bool Graphics::isPixelFormatSupported(PixelFormat format, PixelFormatUsageFlags
|
||||
flags |= all;
|
||||
break;
|
||||
|
||||
case PIXELFORMAT_R8_INT:
|
||||
case PIXELFORMAT_R8_UINT:
|
||||
case PIXELFORMAT_RG8_INT:
|
||||
case PIXELFORMAT_RG8_UINT:
|
||||
case PIXELFORMAT_RGBA8_INT:
|
||||
case PIXELFORMAT_RGBA8_UINT:
|
||||
case PIXELFORMAT_R16_INT:
|
||||
case PIXELFORMAT_R16_UINT:
|
||||
case PIXELFORMAT_RG16_INT:
|
||||
case PIXELFORMAT_RG16_UINT:
|
||||
case PIXELFORMAT_RGBA16_INT:
|
||||
case PIXELFORMAT_RGBA16_UINT:
|
||||
case PIXELFORMAT_R32_INT:
|
||||
case PIXELFORMAT_R32_UINT:
|
||||
case PIXELFORMAT_RG32_INT:
|
||||
case PIXELFORMAT_RG32_UINT:
|
||||
case PIXELFORMAT_RGBA32_INT:
|
||||
case PIXELFORMAT_RGBA32_UINT:
|
||||
// If MSAA support for int formats is added this should be split up.
|
||||
flags |= rt | computewrite;
|
||||
break;
|
||||
|
||||
case PIXELFORMAT_RGBA4_UNORM:
|
||||
case PIXELFORMAT_RGB5A1_UNORM:
|
||||
case PIXELFORMAT_RGB565_UNORM:
|
||||
|
||||
@@ -87,6 +87,61 @@ Metal::PixelFormatDesc Metal::convertPixelFormat(PixelFormat format, bool &isSRG
|
||||
mtlformat = MTLPixelFormatRGBA32Float;
|
||||
break;
|
||||
|
||||
case PIXELFORMAT_R8_INT:
|
||||
mtlformat = MTLPixelFormatR8Sint;
|
||||
break;
|
||||
case PIXELFORMAT_R8_UINT:
|
||||
mtlformat = MTLPixelFormatR8Uint;
|
||||
break;
|
||||
case PIXELFORMAT_RG8_INT:
|
||||
mtlformat = MTLPixelFormatRG8Sint;
|
||||
break;
|
||||
case PIXELFORMAT_RG8_UINT:
|
||||
mtlformat = MTLPixelFormatRG8Uint;
|
||||
break;
|
||||
case PIXELFORMAT_RGBA8_INT:
|
||||
mtlformat = MTLPixelFormatRGBA8Sint;
|
||||
break;
|
||||
case PIXELFORMAT_RGBA8_UINT:
|
||||
mtlformat = MTLPixelFormatRGBA8Uint;
|
||||
break;
|
||||
case PIXELFORMAT_R16_INT:
|
||||
mtlformat = MTLPixelFormatR16Sint;
|
||||
break;
|
||||
case PIXELFORMAT_R16_UINT:
|
||||
mtlformat = MTLPixelFormatR16Uint;
|
||||
break;
|
||||
case PIXELFORMAT_RG16_INT:
|
||||
mtlformat = MTLPixelFormatRG16Sint;
|
||||
break;
|
||||
case PIXELFORMAT_RG16_UINT:
|
||||
mtlformat = MTLPixelFormatRG16Uint;
|
||||
break;
|
||||
case PIXELFORMAT_RGBA16_INT:
|
||||
mtlformat = MTLPixelFormatRGBA16Sint;
|
||||
break;
|
||||
case PIXELFORMAT_RGBA16_UINT:
|
||||
mtlformat = MTLPixelFormatRGBA16Uint;
|
||||
break;
|
||||
case PIXELFORMAT_R32_INT:
|
||||
mtlformat = MTLPixelFormatR32Sint;
|
||||
break;
|
||||
case PIXELFORMAT_R32_UINT:
|
||||
mtlformat = MTLPixelFormatR32Uint;
|
||||
break;
|
||||
case PIXELFORMAT_RG32_INT:
|
||||
mtlformat = MTLPixelFormatRG32Sint;
|
||||
break;
|
||||
case PIXELFORMAT_RG32_UINT:
|
||||
mtlformat = MTLPixelFormatRG32Uint;
|
||||
break;
|
||||
case PIXELFORMAT_RGBA32_INT:
|
||||
mtlformat = MTLPixelFormatRGBA32Sint;
|
||||
break;
|
||||
case PIXELFORMAT_RGBA32_UINT:
|
||||
mtlformat = MTLPixelFormatRGBA32Uint;
|
||||
break;
|
||||
|
||||
case PIXELFORMAT_LA8_UNORM:
|
||||
// TODO: fall back to RGBA8 when swizzle isn't available. Pixel format
|
||||
// size calculation will need to be adjusted as well
|
||||
|
||||
Reference in New Issue
Block a user