vulkan: fix love_ScreenSize shader variable when a canvas is active.

This commit is contained in:
Sasha Szpakowski
2024-03-22 23:08:34 -03:00
parent 339c1acde8
commit 9aaeabd6a5
+11 -2
View File
@@ -1430,8 +1430,17 @@ graphics::Shader::BuiltinUniformData Graphics::getCurrentBuiltinUniformData()
// Same with point size.
data.normalMatrix[1].w = getPointSize();
data.screenSizeParams.x = static_cast<float>(swapChainExtent.width);
data.screenSizeParams.y = static_cast<float>(swapChainExtent.height);
const auto &rt = states.back().renderTargets.getFirstTarget();
if (rt.texture != nullptr)
{
data.screenSizeParams.x = rt.texture->getPixelWidth(rt.mipmap);
data.screenSizeParams.y = rt.texture->getPixelHeight(rt.mipmap);
}
else
{
data.screenSizeParams.x = getPixelWidth();
data.screenSizeParams.y = getPixelHeight();
}
data.screenSizeParams.z = 1.0f;
data.screenSizeParams.w = 0.0f;