summaryrefslogtreecommitdiff
path: root/drivers/gles3/shaders
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2017-08-31 13:17:39 +0200
committerGitHub <noreply@github.com>2017-08-31 13:17:39 +0200
commit82208c1e8b85abe3c5e6413220bcdf0e9f2edd38 (patch)
treea55ad6a0ec03f151c47a528457140fb7b75fba3c /drivers/gles3/shaders
parent6889d4650a1bc45d69dbfd9793564fc1557dc076 (diff)
parent92a42668f2318c737128d228c32b4b5fd6208fc1 (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.glsl9
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;