mirror of
https://github.com/love2d/love.git
synced 2026-08-17 11:00:31 +02:00
metal: don't try to enable blending with integer canvases.
This commit is contained in:
@@ -1001,7 +1001,7 @@ void Graphics::applyRenderState(id<MTLRenderCommandEncoder> encoder, const Verte
|
||||
key.blend = state.blend;
|
||||
key.colorChannelMask = state.colorMask;
|
||||
|
||||
pipeline = shader->getCachedRenderPipeline(key);
|
||||
pipeline = shader->getCachedRenderPipeline(this, key);
|
||||
}
|
||||
|
||||
[encoder setRenderPipelineState:pipeline];
|
||||
|
||||
@@ -114,7 +114,7 @@ public:
|
||||
ptrdiff_t getHandle() const override { return 0; }
|
||||
void setVideoTextures(love::graphics::Texture *ytexture, love::graphics::Texture *cbtexture, love::graphics::Texture *crtexture) override;
|
||||
|
||||
id<MTLRenderPipelineState> getCachedRenderPipeline(const RenderPipelineKey &key);
|
||||
id<MTLRenderPipelineState> getCachedRenderPipeline(Graphics *gfx, const RenderPipelineKey &key);
|
||||
id<MTLComputePipelineState> getComputePipeline() const { return computePipeline; }
|
||||
|
||||
static int getUniformBufferBinding();
|
||||
|
||||
@@ -855,7 +855,7 @@ void Shader::setVideoTextures(love::graphics::Texture *ytexture, love::graphics:
|
||||
}
|
||||
}
|
||||
|
||||
id<MTLRenderPipelineState> Shader::getCachedRenderPipeline(const RenderPipelineKey &key)
|
||||
id<MTLRenderPipelineState> Shader::getCachedRenderPipeline(graphics::Graphics *gfx, const RenderPipelineKey &key)
|
||||
{
|
||||
auto it = cachedRenderPipelines.find(key);
|
||||
|
||||
@@ -882,7 +882,7 @@ id<MTLRenderPipelineState> Shader::getCachedRenderPipeline(const RenderPipelineK
|
||||
auto formatdesc = Metal::convertPixelFormat(device, format);
|
||||
attachment.pixelFormat = formatdesc.format;
|
||||
|
||||
if (key.blend.enable)
|
||||
if (key.blend.enable && gfx->isPixelFormatSupported(format, PIXELFORMATUSAGEFLAGS_BLEND))
|
||||
{
|
||||
attachment.blendingEnabled = YES;
|
||||
attachment.sourceRGBBlendFactor = getMTLBlendFactor(key.blend.srcFactorRGB);
|
||||
|
||||
Reference in New Issue
Block a user