*/}}
瀏覽代碼

Shader version option

YimingWu 6 天之前
父節點
當前提交
ec1e9ff547
共有 1 個文件被更改,包括 22 次插入16 次删除
  1. 22 16
      resources/la_tns_shaders.cpp

+ 22 - 16
resources/la_tns_shaders.cpp

@@ -18,6 +18,12 @@
 
 #include "la_5.h"
 
+#ifdef LA_USE_GLES
+#define TNS_SHADER_VERSION "#version 320 es"
+#else
+#define TNS_SHADER_VERSION "#version 430"
+#endif
+
 extern "C" const char* TNS_SHADER_COLOR_COMMON=R"(
 #define M_PI 3.1415926535897932384626433832795
 float rad(float d){ return d/180.0*M_PI; }
@@ -589,7 +595,7 @@ vec4 halftone(vec4 color){
 )";
 
 
-extern "C" const char* TNS_VERTEX_SIMPLE_MATCAP = R"(#version 320 es
+extern "C" const char* TNS_VERTEX_SIMPLE_MATCAP = TNS_SHADER_VERSION R"(
 precision highp float;
 uniform mat4 mProjection;
 uniform mat4 mModel;
@@ -605,7 +611,7 @@ void main(){
     fNormal = normalize(N);
 })";
 
-extern "C" const char* TNS_FRAGMENT_SIMPLE_MATCAP = R"(#version 320 es
+extern "C" const char* TNS_FRAGMENT_SIMPLE_MATCAP = TNS_SHADER_VERSION R"(
 precision highp float;
 smooth in vec3 fNormal;
 out vec4 outColor;
@@ -622,7 +628,7 @@ void main(){
     outColor = vec4(vec3(0.84, 0.41, 0.16)*value,1);
 })";
 
-extern "C" const char* TNS_VERTEX_GRID = R"(#version 320 es
+extern "C" const char* TNS_VERTEX_GRID = TNS_SHADER_VERSION R"(
 precision highp float;
 
 uniform mat4 mProjection;
@@ -642,7 +648,7 @@ void main(){
     uv = vUV;
 })";
 
-extern "C" const char* TNS_FRAGMENT_TRANSPARNT_GRID = R"(#version 320 es
+extern "C" const char* TNS_FRAGMENT_TRANSPARNT_GRID = TNS_SHADER_VERSION R"(
 precision highp float;
 in vec4 fColor;
 in vec2 uv;
@@ -653,7 +659,7 @@ void main(){
     outColor = c;
 })";
 
-extern "C" const char* LA_IMM_VERTEX_SHADER = R"(#version 320 es
+extern "C" const char* LA_IMM_VERTEX_SHADER = TNS_SHADER_VERSION R"(
 precision highp float;
 uniform mat4 mProjection;
 uniform mat4 mModel;
@@ -677,7 +683,7 @@ void main(){
     fNormal= normalize((mModel * vec4(vNormal,0.)).xyz);
 })";
 
-extern "C" const char* LA_IMM_FRAGMENT_SHADER = R"(#version 320 es
+extern "C" const char* LA_IMM_FRAGMENT_SHADER = TNS_SHADER_VERSION R"(
 #extension GL_ARB_shading_language_420pack : enable // uniform sampler binding
 precision highp float;
 precision highp int;
@@ -864,7 +870,7 @@ void main(){
     outGPos = fGPos;
 })";
 
-extern "C" const char* LA_OBJECT_FRAGMENT_SHADER = R"(#version 320 es
+extern "C" const char* LA_OBJECT_FRAGMENT_SHADER = TNS_SHADER_VERSION R"(
 precision highp float;
 uniform int UseNormal;
 uniform float UseHalftone;
@@ -907,7 +913,7 @@ void main(){
     outColor = color; outGPos = fGPos;
 })";
 
-extern "C" const char* LA_FLOOR_VERTEX_SHADER = R"(#version 320 es
+extern "C" const char* LA_FLOOR_VERTEX_SHADER = TNS_SHADER_VERSION R"(
 precision highp float;
 uniform mat4 mProjection;
 uniform mat4 mModel;
@@ -922,7 +928,7 @@ void main(){
 	fColor=vColor;
 })";
 
-extern "C" const char* LA_FLOOR_FRAGMENT_SHADER = R"(#version 320 es
+extern "C" const char* LA_FLOOR_FRAGMENT_SHADER = TNS_SHADER_VERSION R"(
 precision highp float;
 uniform vec3 uViewPos;
 uniform float uFar;
@@ -934,7 +940,7 @@ void main(){
 	outColor=vec4(fColor.rgb,fColor.a*fac);
 })";
 
-extern "C" const char* LA_RAY_VERTEX_SHADER = R"(#version 320 es
+extern "C" const char* LA_RAY_VERTEX_SHADER = TNS_SHADER_VERSION R"(
 precision highp float;
 in vec3 vUV;
 in vec4 vVertex;
@@ -988,7 +994,7 @@ vec4 fxaa(in sampler2D tex, vec2 uv, vec2 texsize) {
     return vec4(texture(tex, offuv).rgb,colm4.a);  
 })";
 
-extern "C" const char* LA_RAY_FRAGMENT_SHADER = R"(#version 320 es
+extern "C" const char* LA_RAY_FRAGMENT_SHADER = TNS_SHADER_VERSION R"(
 precision highp float;
 uniform vec3 uViewDir;
 uniform vec3 uViewPos;
@@ -1010,7 +1016,7 @@ void main(){
     outColor = mul*color+buffer_color;
 })";
 
-extern "C" const char* LA_SCENE_VERTEX_SHADER = R"(#version 320 es
+extern "C" const char* LA_SCENE_VERTEX_SHADER = TNS_SHADER_VERSION R"(
 precision highp float;
 uniform mat4 mProjection;
 uniform mat4 mModel;
@@ -1032,7 +1038,7 @@ void main(){
     fGPos= mShadow * mModel * vVertex;\
 })";
 
-extern "C" const char* LA_SCENE_FRAGMENT_SHADER = R"(#version 320 es
+extern "C" const char* LA_SCENE_FRAGMENT_SHADER = TNS_SHADER_VERSION R"(
 precision highp float;
 uniform highp sampler2D TexColor;
 uniform highp sampler2DMS TexColorMS;\
@@ -1068,7 +1074,7 @@ void main(){
     outColor=GetShadow(fGPos)*fColor;
 })";
 
-extern "C" const char* LA_CASCADE_SHADOW_VERTEX_SHADER = R"(#version 320 es
+extern "C" const char* LA_CASCADE_SHADOW_VERTEX_SHADER = TNS_SHADER_VERSION R"(
 precision highp float;
 in vec4 vVertex;
 uniform mat4 mModel;
@@ -1080,7 +1086,7 @@ void main(){
 extern "C" const char* LA_CASCADE_SHADOW_FRAGMENT_SHADER = "#version 320 es\n \
 precision highp float;\nvoid main(){gl_FragDepth = gl_FragCoord.z;}";
 
-extern "C" const char* LA_SELECTION_VERTEX_SHADER = R"(#version 320 es
+extern "C" const char* LA_SELECTION_VERTEX_SHADER = TNS_SHADER_VERSION R"(
 precision highp float;
 in vec4 vVertex;
 in vec3 vColor;
@@ -1096,7 +1102,7 @@ void main(){
     fIdColor = vColor;
 })";
 
-extern "C" const char* LA_SELECTION_FRAGMENT_SHADER = R"(#version 320 es
+extern "C" const char* LA_SELECTION_FRAGMENT_SHADER = TNS_SHADER_VERSION R"(
 precision highp float;
 flat in vec3 fIdColor;
 out vec4 outColor;