some more state caching for gl3

This commit is contained in:
aap
2020-05-15 00:00:13 +02:00
parent 3b385c44ae
commit 90ce0f90be
9 changed files with 245 additions and 124 deletions

View File

@@ -2,25 +2,21 @@
layout(std140) uniform State
{
vec2 u_alphaRef;
float u_fogStart;
float u_fogEnd;
float u_fogRange;
float u_fogDisable;
vec4 u_fogData;
vec4 u_fogColor;
};
#else
//uniform int u_alphaTest;
//uniform float u_alphaRef;
uniform vec2 u_alphaRef;
uniform float u_fogStart;
uniform float u_fogEnd;
uniform float u_fogRange;
uniform float u_fogDisable;
uniform vec4 u_fogData;
uniform vec4 u_fogColor;
#endif
#define u_fogStart (u_fogData.x)
#define u_fogEnd (u_fogData.y)
#define u_fogRange (u_fogData.z)
#define u_fogDisable (u_fogData.w)
void DoAlphaTest(float a)
{
if(a < u_alphaRef.x || a >= u_alphaRef.y)

View File

@@ -7,23 +7,20 @@
layout(std140) uniform State
{
vec2 u_alphaRef;
float u_fogStart;
float u_fogEnd;
float u_fogRange;
float u_fogDisable;
vec4 u_fogData;
vec4 u_fogColor;
};
#else
uniform vec2 u_alphaRef;
uniform float u_fogStart;
uniform float u_fogEnd;
uniform float u_fogRange;
uniform float u_fogDisable;
uniform vec4 u_fogData;
uniform vec4 u_fogColor;
#endif
#define u_fogStart (u_fogData.x)
#define u_fogEnd (u_fogData.y)
#define u_fogRange (u_fogData.z)
#define u_fogDisable (u_fogData.w)
#ifdef USE_UBOS
layout(std140) uniform Scene
{

View File

@@ -3,25 +3,21 @@ const char *header_frag_src =
"layout(std140) uniform State\n"
"{\n"
" vec2 u_alphaRef;\n"
" float u_fogStart;\n"
" float u_fogEnd;\n"
" float u_fogRange;\n"
" float u_fogDisable;\n"
" vec4 u_fogData;\n"
" vec4 u_fogColor;\n"
"};\n"
"#else\n"
"//uniform int u_alphaTest;\n"
"//uniform float u_alphaRef;\n"
"uniform vec2 u_alphaRef;\n"
"uniform float u_fogStart;\n"
"uniform float u_fogEnd;\n"
"uniform float u_fogRange;\n"
"uniform float u_fogDisable;\n"
"uniform vec4 u_fogData;\n"
"uniform vec4 u_fogColor;\n"
"#endif\n"
"#define u_fogStart (u_fogData.x)\n"
"#define u_fogEnd (u_fogData.y)\n"
"#define u_fogRange (u_fogData.z)\n"
"#define u_fogDisable (u_fogData.w)\n"
"void DoAlphaTest(float a)\n"
"{\n"
" if(a < u_alphaRef.x || a >= u_alphaRef.y)\n"

View File

@@ -8,23 +8,20 @@ const char *header_vert_src =
"layout(std140) uniform State\n"
"{\n"
" vec2 u_alphaRef;\n"
" float u_fogStart;\n"
" float u_fogEnd;\n"
" float u_fogRange;\n"
" float u_fogDisable;\n"
" vec4 u_fogData;\n"
" vec4 u_fogColor;\n"
"};\n"
"#else\n"
"uniform vec2 u_alphaRef;\n"
"uniform float u_fogStart;\n"
"uniform float u_fogEnd;\n"
"uniform float u_fogRange;\n"
"uniform float u_fogDisable;\n"
"uniform vec4 u_fogData;\n"
"uniform vec4 u_fogColor;\n"
"#endif\n"
"#define u_fogStart (u_fogData.x)\n"
"#define u_fogEnd (u_fogData.y)\n"
"#define u_fogRange (u_fogData.z)\n"
"#define u_fogDisable (u_fogData.w)\n"
"#ifdef USE_UBOS\n"
"layout(std140) uniform Scene\n"
"{\n"