From 977fa6e0429a9e9702ab47865fabc640a49b996c Mon Sep 17 00:00:00 2001 From: XProger Date: Mon, 25 Jan 2021 18:04:06 +0300 Subject: [PATCH] fix shadow sampling for GL3 --- src/gapi/gl.h | 7 ++++--- src/shaders/compose.glsl | 6 +----- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/gapi/gl.h b/src/gapi/gl.h index e48a944..befbd5f 100644 --- a/src/gapi/gl.h +++ b/src/gapi/gl.h @@ -1381,7 +1381,6 @@ namespace GAPI { if (!GLES3) { strcat(extHeader, "#extension GL_EXT_shadow_samplers : enable\n"); } - strcat(extHeader, "#define USE_GL_EXT_shadow_samplers\n"); } #ifdef _GAPI_GLES @@ -1405,7 +1404,7 @@ namespace GAPI { "#define texture2D texture\n" "#define texture3D texture\n" "#define textureCube texture\n" - "#define shadow2DEXT texture\n" + "#define FETCH_SHADOW2D(a,b) texture(a,b)\n" "out vec4 fragColor;\n"); } else { // vertex @@ -1419,6 +1418,7 @@ namespace GAPI { strcat(GLSL_HEADER_FRAG, "precision lowp int;\n" "precision highp float;\n" "#define FRAGMENT\n" + "#define FETCH_SHADOW2D(a,b) shadow2DEXT(a,b)\n" "#define fragColor gl_FragColor\n"); } @@ -1440,7 +1440,7 @@ namespace GAPI { "#define texture2D texture\n" "#define texture3D texture\n" "#define textureCube texture\n" - "#define shadow2D texture\n" + "#define FETCH_SHADOW2D(a,b) texture(a,b)\n" "out vec4 fragColor;\n"); } else { // vertex @@ -1450,6 +1450,7 @@ namespace GAPI { strcat(GLSL_HEADER_FRAG, "#version 110\n"); strcat(GLSL_HEADER_FRAG, extHeader); strcat(GLSL_HEADER_FRAG, "#define FRAGMENT\n" + "#define FETCH_SHADOW2D(a,b) shadow2D(a,b).x\n" "#define fragColor gl_FragColor\n"); } #endif diff --git a/src/shaders/compose.glsl b/src/shaders/compose.glsl index 4a47b76..76fd0cd 100644 --- a/src/shaders/compose.glsl +++ b/src/shaders/compose.glsl @@ -262,11 +262,7 @@ varying vec4 vTexCoord; // xy - atlas coords, zw - trapezoidal correction #ifdef OPT_SHADOW #ifdef SHADOW_SAMPLER uniform sampler2DShadow sShadow; - #ifdef USE_GL_EXT_shadow_samplers - #define SHADOW(V) (shadow2DEXT(sShadow, V)) - #else - #define SHADOW(V) (shadow2D(sShadow, V).x) - #endif + #define SHADOW(p) (FETCH_SHADOW2D(sShadow, p)) #else uniform sampler2D sShadow;