Browse Source

metal: Apple Silicon macs also support rgba4 / rgb5a1 / rgb565.

Alex Szpakowski 3 years ago
parent
commit
f4a85f42df
2 changed files with 8 additions and 12 deletions
  1. 6 9
      src/modules/graphics/metal/Metal.mm
  2. 2 3
      src/modules/graphics/metal/Texture.mm

+ 6 - 9
src/modules/graphics/metal/Metal.mm

@@ -156,19 +156,16 @@ Metal::PixelFormatDesc Metal::convertPixelFormat(id<MTLDevice> device, PixelForm
 		break;
 
 	case PIXELFORMAT_RGBA4_UNORM:
-#ifdef LOVE_IOS
-		mtlformat = MTLPixelFormatABGR4Unorm;
-#endif
+		if (@available(macOS 11.0, iOS 8.0, *))
+			mtlformat = MTLPixelFormatABGR4Unorm;
 		break;
 	case PIXELFORMAT_RGB5A1_UNORM:
-#ifdef LOVE_IOS
-		mtlformat = MTLPixelFormatA1BGR5Unorm;
-#endif
+		if (@available(macOS 11.0, iOS 8.0, *))
+			mtlformat = MTLPixelFormatA1BGR5Unorm;
 		break;
 	case PIXELFORMAT_RGB565_UNORM:
-#ifdef LOVE_IOS
-		mtlformat = MTLPixelFormatB5G6R5Unorm;
-#endif
+		if (@available(macOS 11.0, iOS 8.0, *))
+			mtlformat = MTLPixelFormatB5G6R5Unorm;
 		break;
 	case PIXELFORMAT_RGB10A2_UNORM:
 		mtlformat = MTLPixelFormatRGB10A2Unorm;

+ 2 - 3
src/modules/graphics/metal/Texture.mm

@@ -235,14 +235,13 @@ void Texture::uploadByteData(PixelFormat pixelformat, const void *data, size_t s
 
 	switch (pixelformat)
 	{
-#ifdef LOVE_IOS
 	case PIXELFORMAT_PVR1_RGB2_UNORM:
 	case PIXELFORMAT_PVR1_RGB4_UNORM:
 	case PIXELFORMAT_PVR1_RGBA2_UNORM:
 	case PIXELFORMAT_PVR1_RGBA4_UNORM:
-		options |= MTLBlitOptionRowLinearPVRTC;
+		if (@available(macOS 11.0, iOS 9.0, *))
+			options |= MTLBlitOptionRowLinearPVRTC;
 		break;
-#endif
 	default:
 		break;
 	}