mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-03-26 04:30:55 +00:00
Merge branch 'shaders-optimizations' into 'sal-oglshaderport'
Shader optimizations See merge request STJr/SRB2!893
This commit is contained in:
commit
7c583b4c16
1 changed files with 12 additions and 10 deletions
|
@ -583,6 +583,7 @@ static PFNglGetUniformLocation pglGetUniformLocation;
|
|||
static char *gl_customvertexshaders[MAXSHADERS];
|
||||
static char *gl_customfragmentshaders[MAXSHADERS];
|
||||
static GLuint gl_currentshaderprogram = 0;
|
||||
static boolean gl_shaderprogramchanged = true;
|
||||
|
||||
// 13062019
|
||||
typedef enum
|
||||
|
@ -1058,8 +1059,12 @@ EXPORT void HWRAPI(SetShader) (int shader)
|
|||
#ifdef GL_SHADERS
|
||||
if (gl_allowshaders)
|
||||
{
|
||||
if ((GLuint)shader != gl_currentshaderprogram)
|
||||
{
|
||||
gl_currentshaderprogram = shader;
|
||||
gl_shaderprogramchanged = true;
|
||||
}
|
||||
gl_shadersenabled = true;
|
||||
gl_currentshaderprogram = shader;
|
||||
return;
|
||||
}
|
||||
#else
|
||||
|
@ -1073,6 +1078,7 @@ EXPORT void HWRAPI(UnSetShader) (void)
|
|||
#ifdef GL_SHADERS
|
||||
gl_shadersenabled = false;
|
||||
gl_currentshaderprogram = 0;
|
||||
pglUseProgram(0);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -1867,7 +1873,11 @@ static void *Shader_Load(FSurfaceInfo *Surface, GLRGBAFloat *poly, GLRGBAFloat *
|
|||
gl_shaderprogram_t *shader = &gl_shaderprograms[gl_currentshaderprogram];
|
||||
if (shader->program)
|
||||
{
|
||||
pglUseProgram(gl_shaderprograms[gl_currentshaderprogram].program);
|
||||
if (gl_shaderprogramchanged)
|
||||
{
|
||||
pglUseProgram(gl_shaderprograms[gl_currentshaderprogram].program);
|
||||
gl_shaderprogramchanged = false;
|
||||
}
|
||||
Shader_SetUniforms(Surface, poly, tint, fade);
|
||||
return shader;
|
||||
}
|
||||
|
@ -2054,10 +2064,6 @@ EXPORT void HWRAPI(DrawPolygon) (FSurfaceInfo *pSurf, FOutVector *pOutVerts, FUI
|
|||
|
||||
if (PolyFlags & PF_ForceWrapY)
|
||||
Clamp2D(GL_TEXTURE_WRAP_T);
|
||||
|
||||
#ifdef GL_SHADERS
|
||||
pglUseProgram(0);
|
||||
#endif
|
||||
}
|
||||
|
||||
typedef struct vbo_vertex_s
|
||||
|
@ -2850,10 +2856,6 @@ static void DrawModelEx(model_t *model, INT32 frameIndex, INT32 duration, INT32
|
|||
pglShadeModel(GL_FLAT);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef GL_SHADERS
|
||||
pglUseProgram(0);
|
||||
#endif
|
||||
}
|
||||
|
||||
// -----------------+
|
||||
|
|
Loading…
Reference in a new issue