mirror of
https://github.com/love2d/love.git
synced 2026-08-17 11:00:31 +02:00
metal: fix love_ScreenSize shader variable when rendering to a non-default mipmap level of a Canvas.
This commit is contained in:
@@ -921,8 +921,8 @@ void Graphics::applyRenderState(id<MTLRenderCommandEncoder> encoder, const Verte
|
|||||||
const auto &rt = state.renderTargets.getFirstTarget();
|
const auto &rt = state.renderTargets.getFirstTarget();
|
||||||
if (rt.texture.get())
|
if (rt.texture.get())
|
||||||
{
|
{
|
||||||
rtw = rt.texture->getPixelWidth();
|
rtw = rt.texture->getPixelWidth(rt.mipmap);
|
||||||
rth = rt.texture->getPixelHeight();
|
rth = rt.texture->getPixelHeight(rt.mipmap);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1134,11 +1134,11 @@ void Graphics::applyShaderUniforms(id<MTLRenderCommandEncoder> renderEncoder, lo
|
|||||||
builtins->normalMatrix[1].w = getPointSize();
|
builtins->normalMatrix[1].w = getPointSize();
|
||||||
|
|
||||||
builtins->screenSizeParams = Vector4(getPixelWidth(), getPixelHeight(), 1.0f, 0.0f);
|
builtins->screenSizeParams = Vector4(getPixelWidth(), getPixelHeight(), 1.0f, 0.0f);
|
||||||
auto rt = states.back().renderTargets.getFirstTarget().texture.get();
|
auto rt = states.back().renderTargets.getFirstTarget();
|
||||||
if (rt != nullptr)
|
if (rt.texture.get())
|
||||||
{
|
{
|
||||||
builtins->screenSizeParams.x = rt->getPixelWidth();
|
builtins->screenSizeParams.x = rt.texture->getPixelWidth(rt.mipmap);
|
||||||
builtins->screenSizeParams.y = rt->getPixelHeight();
|
builtins->screenSizeParams.y = rt.texture->getPixelHeight(rt.mipmap);
|
||||||
}
|
}
|
||||||
|
|
||||||
builtins->constantColor = getColor();
|
builtins->constantColor = getColor();
|
||||||
|
|||||||
Reference in New Issue
Block a user