diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2017-08-31 13:17:39 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-08-31 13:17:39 +0200 |
commit | 82208c1e8b85abe3c5e6413220bcdf0e9f2edd38 (patch) | |
tree | a55ad6a0ec03f151c47a528457140fb7b75fba3c /drivers/gles3/shaders | |
parent | 6889d4650a1bc45d69dbfd9793564fc1557dc076 (diff) | |
parent | 92a42668f2318c737128d228c32b4b5fd6208fc1 (diff) |
Merge pull request #10417 from bojidar-bg/x-fix-tilemap-transpose
Implement texture UV transpose in the gles3 renderer
Diffstat (limited to 'drivers/gles3/shaders')
-rw-r--r-- | drivers/gles3/shaders/canvas.glsl | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/gles3/shaders/canvas.glsl b/drivers/gles3/shaders/canvas.glsl index bb645f31a0..37187a86cc 100644 --- a/drivers/gles3/shaders/canvas.glsl +++ b/drivers/gles3/shaders/canvas.glsl @@ -116,9 +116,12 @@ void main() { #ifdef USE_TEXTURE_RECT - - uv_interp = src_rect.xy + abs(src_rect.zw) * vertex; - highp vec4 outvec = vec4(dst_rect.xy + dst_rect.zw * mix(vertex,vec2(1.0,1.0)-vertex,lessThan(src_rect.zw,vec2(0.0,0.0))),0.0,1.0); + if (dst_rect.z < 0) { // Transpose is encoded as negative dst_rect.z + uv_interp = src_rect.xy + abs(src_rect.zw) * vertex.yx; + } else { + uv_interp = src_rect.xy + abs(src_rect.zw) * vertex; + } + highp vec4 outvec = vec4(dst_rect.xy + abs(dst_rect.zw) * mix(vertex,vec2(1.0,1.0)-vertex,lessThan(src_rect.zw,vec2(0.0,0.0))),0.0,1.0); #else uv_interp = uv_attrib; |