mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2025-02-05 07:51:13 +00:00
Don't crash if shaders are unavailable
This commit is contained in:
parent
812cceb53f
commit
e45295f1ea
1 changed files with 5 additions and 3 deletions
|
@ -790,6 +790,8 @@ EXPORT void HWRAPI(LoadShaders) (void)
|
||||||
#ifdef GL_SHADERS
|
#ifdef GL_SHADERS
|
||||||
GLuint gl_vertShader, gl_fragShader;
|
GLuint gl_vertShader, gl_fragShader;
|
||||||
GLint i, result;
|
GLint i, result;
|
||||||
|
|
||||||
|
if (!pglUseProgram) return;
|
||||||
|
|
||||||
gl_customvertexshaders[0] = NULL;
|
gl_customvertexshaders[0] = NULL;
|
||||||
gl_customfragmentshaders[0] = NULL;
|
gl_customfragmentshaders[0] = NULL;
|
||||||
|
@ -902,6 +904,7 @@ EXPORT void HWRAPI(LoadShaders) (void)
|
||||||
EXPORT void HWRAPI(LoadCustomShader) (int number, char *shader, size_t size, boolean fragment)
|
EXPORT void HWRAPI(LoadCustomShader) (int number, char *shader, size_t size, boolean fragment)
|
||||||
{
|
{
|
||||||
#ifdef GL_SHADERS
|
#ifdef GL_SHADERS
|
||||||
|
if (!pglUseProgram) return;
|
||||||
if (number < 1 || number > MAXSHADERS)
|
if (number < 1 || number > MAXSHADERS)
|
||||||
I_Error("LoadCustomShader(): cannot load shader %d (max %d)", number, MAXSHADERS);
|
I_Error("LoadCustomShader(): cannot load shader %d (max %d)", number, MAXSHADERS);
|
||||||
|
|
||||||
|
@ -951,6 +954,7 @@ EXPORT void HWRAPI(UnSetShader) (void)
|
||||||
gl_shadersenabled = false;
|
gl_shadersenabled = false;
|
||||||
gl_currentshaderprogram = 0;
|
gl_currentshaderprogram = 0;
|
||||||
gl_shaderprogramchanged = true;// not sure if this is needed
|
gl_shaderprogramchanged = true;// not sure if this is needed
|
||||||
|
if (!pglUseProgram) return;
|
||||||
pglUseProgram(0);
|
pglUseProgram(0);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -1672,7 +1676,7 @@ EXPORT void HWRAPI(SetTexture) (FTextureInfo *pTexInfo)
|
||||||
static void load_shaders(FSurfaceInfo *Surface, GLRGBAFloat *poly, GLRGBAFloat *tint, GLRGBAFloat *fade)
|
static void load_shaders(FSurfaceInfo *Surface, GLRGBAFloat *poly, GLRGBAFloat *tint, GLRGBAFloat *fade)
|
||||||
{
|
{
|
||||||
#ifdef GL_SHADERS
|
#ifdef GL_SHADERS
|
||||||
if (gl_shadersenabled)
|
if (gl_shadersenabled && pglUseProgram)
|
||||||
{
|
{
|
||||||
gl_shaderprogram_t *shader = &gl_shaderprograms[gl_currentshaderprogram];
|
gl_shaderprogram_t *shader = &gl_shaderprograms[gl_currentshaderprogram];
|
||||||
if (shader->program)
|
if (shader->program)
|
||||||
|
@ -1760,9 +1764,7 @@ static void load_shaders(FSurfaceInfo *Surface, GLRGBAFloat *poly, GLRGBAFloat *
|
||||||
else
|
else
|
||||||
pglUseProgram(0);
|
pglUseProgram(0);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
#endif
|
#endif
|
||||||
pglUseProgram(0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// unfinished draw call batching
|
// unfinished draw call batching
|
||||||
|
|
Loading…
Reference in a new issue