mirror of https://github.com/snes9xgit/snes9x.git
win32: only reload shader if filename changes
This commit is contained in:
parent
1dc7eec15d
commit
47dce09600
|
@ -40,6 +40,7 @@ COpenGL::COpenGL(void)
|
||||||
frameCount = 0;
|
frameCount = 0;
|
||||||
cgShader = NULL;
|
cgShader = NULL;
|
||||||
glslShader = NULL;
|
glslShader = NULL;
|
||||||
|
*currentShaderFile = _T('\0');
|
||||||
}
|
}
|
||||||
|
|
||||||
COpenGL::~COpenGL(void)
|
COpenGL::~COpenGL(void)
|
||||||
|
@ -523,19 +524,31 @@ bool COpenGL::LoadShaderFunctions()
|
||||||
|
|
||||||
bool COpenGL::SetShaders(const TCHAR *file)
|
bool COpenGL::SetShaders(const TCHAR *file)
|
||||||
{
|
{
|
||||||
|
if (file && lstrcmp(file, currentShaderFile) == 0)
|
||||||
|
return true;
|
||||||
|
|
||||||
SetShadersCG(NULL);
|
SetShadersCG(NULL);
|
||||||
SetShadersGLSL(NULL);
|
SetShadersGLSL(NULL);
|
||||||
SetShadersGLSL_OLD(NULL);
|
SetShadersGLSL_OLD(NULL);
|
||||||
shader_type = OGL_SHADER_NONE;
|
shader_type = OGL_SHADER_NONE;
|
||||||
if (file != NULL && (
|
|
||||||
(lstrlen(file) > 3 && _tcsncicmp(&file[lstrlen(file) - 3], TEXT(".cg"), 3) == 0) ||
|
if (file) {
|
||||||
(lstrlen(file) > 4 && _tcsncicmp(&file[lstrlen(file) - 4], TEXT(".cgp"), 4) == 0))) {
|
lstrcpy(currentShaderFile, file);
|
||||||
|
if ((lstrlen(file) > 3 && _tcsncicmp(&file[lstrlen(file) - 3], TEXT(".cg"), 3) == 0) ||
|
||||||
|
(lstrlen(file) > 4 && _tcsncicmp(&file[lstrlen(file) - 4], TEXT(".cgp"), 4) == 0)) {
|
||||||
return SetShadersCG(file);
|
return SetShadersCG(file);
|
||||||
} else if((lstrlen(file) > 7 && _tcsncicmp(&file[lstrlen(file) - 7], TEXT(".shader"), 7) == 0)) {
|
}
|
||||||
|
else if ((lstrlen(file) > 7 && _tcsncicmp(&file[lstrlen(file) - 7], TEXT(".shader"), 7) == 0)) {
|
||||||
return SetShadersGLSL_OLD(file);
|
return SetShadersGLSL_OLD(file);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
return SetShadersGLSL(file);
|
return SetShadersGLSL(file);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
*currentShaderFile = _T('\0');
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void COpenGL::checkForCgError(const char *situation)
|
void COpenGL::checkForCgError(const char *situation)
|
||||||
|
|
|
@ -29,6 +29,7 @@ private:
|
||||||
GLfloat vertices[8];
|
GLfloat vertices[8];
|
||||||
GLfloat texcoords[8];
|
GLfloat texcoords[8];
|
||||||
unsigned char * noPboBuffer;
|
unsigned char * noPboBuffer;
|
||||||
|
TCHAR currentShaderFile[MAX_PATH];
|
||||||
|
|
||||||
int frameCount;
|
int frameCount;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue