mirror of
https://github.com/love2d/love.git
synced 2026-08-16 00:02:12 +02:00
metal: fix a couple compiler warnings
This commit is contained in:
@@ -36,13 +36,14 @@ class Metal
|
||||
{
|
||||
public:
|
||||
|
||||
struct PixelFormatDesc
|
||||
struct API_AVAILABLE(macos(10.15), ios(13.0)) PixelFormatDesc
|
||||
{
|
||||
MTLPixelFormat format;
|
||||
bool swizzled = false;
|
||||
MTLTextureSwizzleChannels swizzle;
|
||||
};
|
||||
|
||||
API_AVAILABLE(macos(10.15), ios(13.0))
|
||||
static PixelFormatDesc convertPixelFormat(PixelFormat format, bool &isSRGB);
|
||||
|
||||
}; // Metal
|
||||
|
||||
@@ -926,9 +926,14 @@ id<MTLRenderPipelineState> Shader::getCachedRenderPipeline(const RenderPipelineK
|
||||
|
||||
MTLRenderPipelineColorAttachmentDescriptor *attachment = desc.colorAttachments[i];
|
||||
|
||||
bool isSRGB = false;
|
||||
auto formatdesc = Metal::convertPixelFormat(format, isSRGB);
|
||||
attachment.pixelFormat = formatdesc.format;
|
||||
if (@available(macOS 10.15, iOS 13, *))
|
||||
{
|
||||
// We already don't really support metal on older systems, this just
|
||||
// silences a compiler warning about it.
|
||||
bool isSRGB = false;
|
||||
auto formatdesc = Metal::convertPixelFormat(format, isSRGB);
|
||||
attachment.pixelFormat = formatdesc.format;
|
||||
}
|
||||
|
||||
if (key.blend.enable)
|
||||
{
|
||||
@@ -959,12 +964,17 @@ id<MTLRenderPipelineState> Shader::getCachedRenderPipeline(const RenderPipelineK
|
||||
auto dsformat = (PixelFormat) key.depthStencilFormat;
|
||||
if (isPixelFormatDepthStencil(dsformat))
|
||||
{
|
||||
bool isSRGB = false;
|
||||
auto formatdesc = Metal::convertPixelFormat(dsformat, isSRGB);
|
||||
if (isPixelFormatDepth(dsformat))
|
||||
desc.depthAttachmentPixelFormat = formatdesc.format;
|
||||
if (isPixelFormatStencil(dsformat))
|
||||
desc.stencilAttachmentPixelFormat = formatdesc.format;
|
||||
if (@available(macOS 10.15, iOS 13, *))
|
||||
{
|
||||
// We already don't really support metal on older systems, this just
|
||||
// silences a compiler warning about it.
|
||||
bool isSRGB = false;
|
||||
auto formatdesc = Metal::convertPixelFormat(dsformat, isSRGB);
|
||||
if (isPixelFormatDepth(dsformat))
|
||||
desc.depthAttachmentPixelFormat = formatdesc.format;
|
||||
if (isPixelFormatStencil(dsformat))
|
||||
desc.stencilAttachmentPixelFormat = formatdesc.format;
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
|
||||
@@ -52,17 +52,23 @@ Texture::Texture(love::graphics::Graphics *gfx, id<MTLDevice> device, const Sett
|
||||
int w = pixelWidth;
|
||||
int h = pixelHeight;
|
||||
|
||||
auto formatdesc = Metal::convertPixelFormat(format, sRGB);
|
||||
|
||||
desc.width = w;
|
||||
desc.height = h;
|
||||
desc.depth = depth;
|
||||
desc.arrayLength = layers;
|
||||
desc.mipmapLevelCount = mipmapCount;
|
||||
desc.textureType = getMTLTextureType(texType, 1);
|
||||
desc.pixelFormat = formatdesc.format;
|
||||
if (formatdesc.swizzled)
|
||||
desc.swizzle = formatdesc.swizzle;
|
||||
if (@available(macOS 10.15, iOS 13, *))
|
||||
{
|
||||
// We already don't really support metal on older systems, this just
|
||||
// silences a compiler warning about it.
|
||||
auto formatdesc = Metal::convertPixelFormat(format, sRGB);
|
||||
desc.pixelFormat = formatdesc.format;
|
||||
if (formatdesc.swizzled)
|
||||
desc.swizzle = formatdesc.swizzle;
|
||||
}
|
||||
else
|
||||
throw love::Exception("Metal backend is only supported on macOS 10.15+ and iOS 13+.");
|
||||
desc.storageMode = MTLStorageModePrivate;
|
||||
|
||||
if (readable)
|
||||
|
||||
Reference in New Issue
Block a user