浏览代码

GLES2: Fix regression on texture2DLod extension checks

These can't be done after any non-preprocessor token.
Rémi Verschelde 6 年之前
父节点
当前提交
8c2d38152f
共有 3 个文件被更改,包括 37 次插入16 次删除
  1. 17 0
      drivers/gles2/shaders/canvas.glsl
  2. 17 0
      drivers/gles2/shaders/scene.glsl
  3. 3 16
      drivers/gles2/shaders/stdlib.glsl

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

@@ -1,6 +1,23 @@
 /* clang-format off */
 [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
 #define lowp
 #define mediump

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

@@ -1,6 +1,23 @@
 /* clang-format off */
 [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
 #define lowp
 #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 ret;