Pārlūkot izejas kodu

GLES2: Fix regression on texture2DLod extension checks

These can't be done after any non-preprocessor token.
Rémi Verschelde 6 gadi atpakaļ
vecāks
revīzija
8c2d38152f

+ 17 - 0
drivers/gles2/shaders/canvas.glsl

@@ -1,6 +1,23 @@
 /* clang-format off */
 /* clang-format off */
 [vertex]
 [vertex]
 
 
+#ifndef USE_GLES_OVER_GL
+#ifdef GL_EXT_shader_texture_lod
+#extension GL_EXT_shader_texture_lod : enable
+#define texture2DLod(img, coord, lod) texture2DLodEXT(img, coord, lod)
+#define textureCubeLod(img, coord, lod) textureCubeLodEXT(img, coord, lod)
+#endif
+#endif // !USE_GLES_OVER_GL
+
+#ifdef GL_ARB_shader_texture_lod
+#extension GL_ARB_shader_texture_lod : enable
+#endif
+
+#if !defined(GL_EXT_shader_texture_lod) && !defined(GL_ARB_shader_texture_lod)
+#define texture2DLod(img, coord, lod) texture2D(img, coord, lod)
+#define textureCubeLod(img, coord, lod) textureCube(img, coord, lod)
+#endif
+
 #ifdef USE_GLES_OVER_GL
 #ifdef USE_GLES_OVER_GL
 #define lowp
 #define lowp
 #define mediump
 #define mediump

+ 17 - 0
drivers/gles2/shaders/scene.glsl

@@ -1,6 +1,23 @@
 /* clang-format off */
 /* clang-format off */
 [vertex]
 [vertex]
 
 
+#ifndef USE_GLES_OVER_GL
+#ifdef GL_EXT_shader_texture_lod
+#extension GL_EXT_shader_texture_lod : enable
+#define texture2DLod(img, coord, lod) texture2DLodEXT(img, coord, lod)
+#define textureCubeLod(img, coord, lod) textureCubeLodEXT(img, coord, lod)
+#endif
+#endif // !USE_GLES_OVER_GL
+
+#ifdef GL_ARB_shader_texture_lod
+#extension GL_ARB_shader_texture_lod : enable
+#endif
+
+#if !defined(GL_EXT_shader_texture_lod) && !defined(GL_ARB_shader_texture_lod)
+#define texture2DLod(img, coord, lod) texture2D(img, coord, lod)
+#define textureCubeLod(img, coord, lod) textureCube(img, coord, lod)
+#endif
+
 #ifdef USE_GLES_OVER_GL
 #ifdef USE_GLES_OVER_GL
 #define lowp
 #define lowp
 #define mediump
 #define mediump

+ 3 - 16
drivers/gles2/shaders/stdlib.glsl

@@ -1,19 +1,6 @@
-#ifndef USE_GLES_OVER_GL
-#ifdef GL_EXT_shader_texture_lod
-#extension GL_EXT_shader_texture_lod : enable
-#define texture2DLod(img, coord, lod) texture2DLodEXT(img, coord, lod)
-#define textureCubeLod(img, coord, lod) textureCubeLodEXT(img, coord, lod)
-#endif
-#endif // !USE_GLES_OVER_GL
-
-#ifdef GL_ARB_shader_texture_lod
-#extension GL_ARB_shader_texture_lod : enable
-#endif
-
-#if !defined(GL_EXT_shader_texture_lod) && !defined(GL_ARB_shader_texture_lod)
-#define texture2DLod(img, coord, lod) texture2D(img, coord, lod)
-#define textureCubeLod(img, coord, lod) textureCube(img, coord, lod)
-#endif
+// Our GLSL "stdlib"
+// texture2DLod defines *must* be done before including this,
+// but before any non-preprocessor statement.
 
 
 vec2 select2(vec2 a, vec2 b, bvec2 c) {
 vec2 select2(vec2 a, vec2 b, bvec2 c) {
 	vec2 ret;
 	vec2 ret;