GPU/HW: Only apply vertex offset at 1x resolution scale
This commit is contained in:
parent
ea25b58dd3
commit
13e2b28f50
|
@ -399,9 +399,14 @@ std::string GPU_HW_ShaderGen::GenerateBatchVertexShader(bool textured)
|
||||||
|
|
||||||
ss << R"(
|
ss << R"(
|
||||||
{
|
{
|
||||||
|
// Offset the vertex position by 0.5 to ensure correct interpolation of texture coordinates
|
||||||
|
// at 1x resolution scale. This doesn't work at >1x, we adjust the texture coordinates before
|
||||||
|
// uploading there instead.
|
||||||
|
float vertex_offset = (RESOLUTION_SCALE == 1) ? 0.5 : 0.0;
|
||||||
|
|
||||||
// 0..+1023 -> -1..1
|
// 0..+1023 -> -1..1
|
||||||
float pos_x = ((float(a_pos.x) + 0.5) / 512.0) - 1.0;
|
float pos_x = ((float(a_pos.x) + vertex_offset) / 512.0) - 1.0;
|
||||||
float pos_y = ((float(a_pos.y) + 0.5) / -256.0) + 1.0;
|
float pos_y = ((float(a_pos.y) + vertex_offset) / -256.0) + 1.0;
|
||||||
|
|
||||||
// OpenGL seems to be off by one pixel in the Y direction due to lower-left origin.
|
// OpenGL seems to be off by one pixel in the Y direction due to lower-left origin.
|
||||||
#if API_OPENGL || API_OPENGL_ES
|
#if API_OPENGL || API_OPENGL_ES
|
||||||
|
|
Loading…
Reference in New Issue