mirror of
https://github.com/love2d/love.git
synced 2026-08-19 04:06:17 +02:00
metal: integer texture format support.
This commit is contained in:
@@ -1653,6 +1653,28 @@ bool Graphics::isPixelFormatSupported(PixelFormat format, PixelFormatUsageFlags
|
|||||||
flags |= all;
|
flags |= all;
|
||||||
break;
|
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_RGBA4_UNORM:
|
||||||
case PIXELFORMAT_RGB5A1_UNORM:
|
case PIXELFORMAT_RGB5A1_UNORM:
|
||||||
case PIXELFORMAT_RGB565_UNORM:
|
case PIXELFORMAT_RGB565_UNORM:
|
||||||
|
|||||||
@@ -87,6 +87,61 @@ Metal::PixelFormatDesc Metal::convertPixelFormat(PixelFormat format, bool &isSRG
|
|||||||
mtlformat = MTLPixelFormatRGBA32Float;
|
mtlformat = MTLPixelFormatRGBA32Float;
|
||||||
break;
|
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:
|
case PIXELFORMAT_LA8_UNORM:
|
||||||
// TODO: fall back to RGBA8 when swizzle isn't available. Pixel format
|
// TODO: fall back to RGBA8 when swizzle isn't available. Pixel format
|
||||||
// size calculation will need to be adjusted as well
|
// size calculation will need to be adjusted as well
|
||||||
|
|||||||
Reference in New Issue
Block a user