1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-09 13:22:24 +03:00

0023418: Crash on the object displaying when running DRAW on remote station. OpenGL version determination was corrected

Small style changes
Comments were corrected
This commit is contained in:
aba
2012-11-30 15:40:17 +04:00
parent 08b86c1dfc
commit 86325709af

View File

@@ -397,10 +397,15 @@ void OpenGl_Context::readGlVersion()
myGlVerMinor = 0;
// available since OpenGL 3.0
GLint aMajor, aMinor;
GLint aMajor = 0, aMinor = 0;
glGetIntegerv (GL_MAJOR_VERSION, &aMajor);
glGetIntegerv (GL_MINOR_VERSION, &aMinor);
if (glGetError() == GL_NO_ERROR)
// glGetError() sometimes does not report an error here even if
// GL does not know GL_MAJOR_VERSION and GL_MINOR_VERSION constants.
// This happens on some rendereres like e.g. Cygwin MESA.
// Thus checking additionally if GL has put anything to
// the output variables.
if (glGetError() == GL_NO_ERROR && aMajor != 0 && aMinor != 0)
{
myGlVerMajor = aMajor;
myGlVerMinor = aMinor;
@@ -436,18 +441,18 @@ void OpenGl_Context::readGlVersion()
aMajorStr[aMajIter] = '\0';
// parse string for minor number
size_t aMinIter = aMajIter + 1;
aVerStr += aMajIter + 1;
size_t aMinIter = 0;
while (aVerStr[aMinIter] >= '0' && aVerStr[aMinIter] <= '9')
{
++aMinIter;
}
size_t aMinLen = aMinIter - aMajIter - 1;
if (aMinLen == 0 || aMinLen >= sizeof(aMinorStr))
if (aMinIter == 0 || aMinIter >= sizeof(aMinorStr))
{
return;
}
memcpy (aMinorStr, aVerStr, aMinLen);
aMinorStr[aMinLen] = '\0';
memcpy (aMinorStr, aVerStr, aMinIter);
aMinorStr[aMinIter] = '\0';
// read numbers
myGlVerMajor = atoi (aMajorStr);
@@ -548,239 +553,240 @@ void OpenGl_Context::init()
myGlCore20 = new OpenGl_GlCore20();
memset (myGlCore20, 0, sizeof(OpenGl_GlCore20)); // nullify whole structure
// initialize OpenGL 1.2 core functionality
if (IsGlGreaterEqual (1, 2))
{
if (!FindProcShort (myGlCore20, glBlendColor)
|| !FindProcShort (myGlCore20, glBlendEquation)
|| !FindProcShort (myGlCore20, glDrawRangeElements)
|| !FindProcShort (myGlCore20, glTexImage3D)
|| !FindProcShort (myGlCore20, glTexSubImage3D)
|| !FindProcShort (myGlCore20, glCopyTexSubImage3D))
// Check if OpenGL 1.2 core functionality is actually present
Standard_Boolean hasGlCore12 = IsGlGreaterEqual (1, 2)
&& FindProcShort (myGlCore20, glBlendColor)
&& FindProcShort (myGlCore20, glBlendEquation)
&& FindProcShort (myGlCore20, glDrawRangeElements)
&& FindProcShort (myGlCore20, glTexImage3D)
&& FindProcShort (myGlCore20, glTexSubImage3D)
&& FindProcShort (myGlCore20, glCopyTexSubImage3D);
// Check if OpenGL 1.3 core functionality is actually present
Standard_Boolean hasGlCore13 = IsGlGreaterEqual (1, 3)
&& FindProcShort (myGlCore20, glActiveTexture)
&& FindProcShort (myGlCore20, glSampleCoverage)
&& FindProcShort (myGlCore20, glCompressedTexImage3D)
&& FindProcShort (myGlCore20, glCompressedTexImage2D)
&& FindProcShort (myGlCore20, glCompressedTexImage1D)
&& FindProcShort (myGlCore20, glCompressedTexSubImage3D)
&& FindProcShort (myGlCore20, glCompressedTexSubImage2D)
&& FindProcShort (myGlCore20, glCompressedTexSubImage1D)
&& FindProcShort (myGlCore20, glGetCompressedTexImage)
// deprecated
&& FindProcShort (myGlCore20, glClientActiveTexture)
&& FindProcShort (myGlCore20, glMultiTexCoord1d)
&& FindProcShort (myGlCore20, glMultiTexCoord1dv)
&& FindProcShort (myGlCore20, glMultiTexCoord1f)
&& FindProcShort (myGlCore20, glMultiTexCoord1fv)
&& FindProcShort (myGlCore20, glMultiTexCoord1i)
&& FindProcShort (myGlCore20, glMultiTexCoord1iv)
&& FindProcShort (myGlCore20, glMultiTexCoord1s)
&& FindProcShort (myGlCore20, glMultiTexCoord1sv)
&& FindProcShort (myGlCore20, glMultiTexCoord2d)
&& FindProcShort (myGlCore20, glMultiTexCoord2dv)
&& FindProcShort (myGlCore20, glMultiTexCoord2f)
&& FindProcShort (myGlCore20, glMultiTexCoord2fv)
&& FindProcShort (myGlCore20, glMultiTexCoord2i)
&& FindProcShort (myGlCore20, glMultiTexCoord2iv)
&& FindProcShort (myGlCore20, glMultiTexCoord2s)
&& FindProcShort (myGlCore20, glMultiTexCoord2sv)
&& FindProcShort (myGlCore20, glMultiTexCoord3d)
&& FindProcShort (myGlCore20, glMultiTexCoord3dv)
&& FindProcShort (myGlCore20, glMultiTexCoord3f)
&& FindProcShort (myGlCore20, glMultiTexCoord3fv)
&& FindProcShort (myGlCore20, glMultiTexCoord3i)
&& FindProcShort (myGlCore20, glMultiTexCoord3iv)
&& FindProcShort (myGlCore20, glMultiTexCoord3s)
&& FindProcShort (myGlCore20, glMultiTexCoord3sv)
&& FindProcShort (myGlCore20, glMultiTexCoord4d)
&& FindProcShort (myGlCore20, glMultiTexCoord4dv)
&& FindProcShort (myGlCore20, glMultiTexCoord4f)
&& FindProcShort (myGlCore20, glMultiTexCoord4fv)
&& FindProcShort (myGlCore20, glMultiTexCoord4i)
&& FindProcShort (myGlCore20, glMultiTexCoord4iv)
&& FindProcShort (myGlCore20, glMultiTexCoord4s)
&& FindProcShort (myGlCore20, glMultiTexCoord4sv)
&& FindProcShort (myGlCore20, glLoadTransposeMatrixf)
&& FindProcShort (myGlCore20, glLoadTransposeMatrixd)
&& FindProcShort (myGlCore20, glMultTransposeMatrixf)
&& FindProcShort (myGlCore20, glMultTransposeMatrixd);
// Check if OpenGL 1.4 core functionality is actually present
Standard_Boolean hasGlCore14 = IsGlGreaterEqual (1, 4)
&& FindProcShort (myGlCore20, glBlendFuncSeparate)
&& FindProcShort (myGlCore20, glMultiDrawArrays)
&& FindProcShort (myGlCore20, glMultiDrawElements)
&& FindProcShort (myGlCore20, glPointParameterf)
&& FindProcShort (myGlCore20, glPointParameterfv)
&& FindProcShort (myGlCore20, glPointParameteri)
&& FindProcShort (myGlCore20, glPointParameteriv);
// Check if OpenGL 1.5 core functionality is actually present
Standard_Boolean hasGlCore15 = IsGlGreaterEqual (1, 5)
&& FindProcShort (myGlCore20, glGenQueries)
&& FindProcShort (myGlCore20, glDeleteQueries)
&& FindProcShort (myGlCore20, glIsQuery)
&& FindProcShort (myGlCore20, glBeginQuery)
&& FindProcShort (myGlCore20, glEndQuery)
&& FindProcShort (myGlCore20, glGetQueryiv)
&& FindProcShort (myGlCore20, glGetQueryObjectiv)
&& FindProcShort (myGlCore20, glGetQueryObjectuiv)
&& FindProcShort (myGlCore20, glBindBuffer)
&& FindProcShort (myGlCore20, glDeleteBuffers)
&& FindProcShort (myGlCore20, glGenBuffers)
&& FindProcShort (myGlCore20, glIsBuffer)
&& FindProcShort (myGlCore20, glBufferData)
&& FindProcShort (myGlCore20, glBufferSubData)
&& FindProcShort (myGlCore20, glGetBufferSubData)
&& FindProcShort (myGlCore20, glMapBuffer)
&& FindProcShort (myGlCore20, glUnmapBuffer)
&& FindProcShort (myGlCore20, glGetBufferParameteriv)
&& FindProcShort (myGlCore20, glGetBufferPointerv);
// Check if OpenGL 2.0 core functionality is actually present
Standard_Boolean hasGlCore20 = IsGlGreaterEqual (2, 0)
&& FindProcShort (myGlCore20, glBlendEquationSeparate)
&& FindProcShort (myGlCore20, glDrawBuffers)
&& FindProcShort (myGlCore20, glStencilOpSeparate)
&& FindProcShort (myGlCore20, glStencilFuncSeparate)
&& FindProcShort (myGlCore20, glStencilMaskSeparate)
&& FindProcShort (myGlCore20, glAttachShader)
&& FindProcShort (myGlCore20, glBindAttribLocation)
&& FindProcShort (myGlCore20, glCompileShader)
&& FindProcShort (myGlCore20, glCreateProgram)
&& FindProcShort (myGlCore20, glCreateShader)
&& FindProcShort (myGlCore20, glDeleteProgram)
&& FindProcShort (myGlCore20, glDeleteShader)
&& FindProcShort (myGlCore20, glDetachShader)
&& FindProcShort (myGlCore20, glDisableVertexAttribArray)
&& FindProcShort (myGlCore20, glEnableVertexAttribArray)
&& FindProcShort (myGlCore20, glGetActiveAttrib)
&& FindProcShort (myGlCore20, glGetActiveUniform)
&& FindProcShort (myGlCore20, glGetAttachedShaders)
&& FindProcShort (myGlCore20, glGetAttribLocation)
&& FindProcShort (myGlCore20, glGetProgramiv)
&& FindProcShort (myGlCore20, glGetProgramInfoLog)
&& FindProcShort (myGlCore20, glGetShaderiv)
&& FindProcShort (myGlCore20, glGetShaderInfoLog)
&& FindProcShort (myGlCore20, glGetShaderSource)
&& FindProcShort (myGlCore20, glGetUniformLocation)
&& FindProcShort (myGlCore20, glGetUniformfv)
&& FindProcShort (myGlCore20, glGetUniformiv)
&& FindProcShort (myGlCore20, glGetVertexAttribdv)
&& FindProcShort (myGlCore20, glGetVertexAttribfv)
&& FindProcShort (myGlCore20, glGetVertexAttribiv)
&& FindProcShort (myGlCore20, glGetVertexAttribPointerv)
&& FindProcShort (myGlCore20, glIsProgram)
&& FindProcShort (myGlCore20, glIsShader)
&& FindProcShort (myGlCore20, glLinkProgram)
&& FindProcShort (myGlCore20, glShaderSource)
&& FindProcShort (myGlCore20, glUseProgram)
&& FindProcShort (myGlCore20, glUniform1f)
&& FindProcShort (myGlCore20, glUniform2f)
&& FindProcShort (myGlCore20, glUniform3f)
&& FindProcShort (myGlCore20, glUniform4f)
&& FindProcShort (myGlCore20, glUniform1i)
&& FindProcShort (myGlCore20, glUniform2i)
&& FindProcShort (myGlCore20, glUniform3i)
&& FindProcShort (myGlCore20, glUniform4i)
&& FindProcShort (myGlCore20, glUniform1fv)
&& FindProcShort (myGlCore20, glUniform2fv)
&& FindProcShort (myGlCore20, glUniform3fv)
&& FindProcShort (myGlCore20, glUniform4fv)
&& FindProcShort (myGlCore20, glUniform1iv)
&& FindProcShort (myGlCore20, glUniform2iv)
&& FindProcShort (myGlCore20, glUniform3iv)
&& FindProcShort (myGlCore20, glUniform4iv)
&& FindProcShort (myGlCore20, glUniformMatrix2fv)
&& FindProcShort (myGlCore20, glUniformMatrix3fv)
&& FindProcShort (myGlCore20, glUniformMatrix4fv)
&& FindProcShort (myGlCore20, glValidateProgram)
&& FindProcShort (myGlCore20, glVertexAttrib1d)
&& FindProcShort (myGlCore20, glVertexAttrib1dv)
&& FindProcShort (myGlCore20, glVertexAttrib1f)
&& FindProcShort (myGlCore20, glVertexAttrib1fv)
&& FindProcShort (myGlCore20, glVertexAttrib1s)
&& FindProcShort (myGlCore20, glVertexAttrib1sv)
&& FindProcShort (myGlCore20, glVertexAttrib2d)
&& FindProcShort (myGlCore20, glVertexAttrib2dv)
&& FindProcShort (myGlCore20, glVertexAttrib2f)
&& FindProcShort (myGlCore20, glVertexAttrib2fv)
&& FindProcShort (myGlCore20, glVertexAttrib2s)
&& FindProcShort (myGlCore20, glVertexAttrib2sv)
&& FindProcShort (myGlCore20, glVertexAttrib3d)
&& FindProcShort (myGlCore20, glVertexAttrib3dv)
&& FindProcShort (myGlCore20, glVertexAttrib3f)
&& FindProcShort (myGlCore20, glVertexAttrib3fv)
&& FindProcShort (myGlCore20, glVertexAttrib3s)
&& FindProcShort (myGlCore20, glVertexAttrib3sv)
&& FindProcShort (myGlCore20, glVertexAttrib4Nbv)
&& FindProcShort (myGlCore20, glVertexAttrib4Niv)
&& FindProcShort (myGlCore20, glVertexAttrib4Nsv)
&& FindProcShort (myGlCore20, glVertexAttrib4Nub)
&& FindProcShort (myGlCore20, glVertexAttrib4Nubv)
&& FindProcShort (myGlCore20, glVertexAttrib4Nuiv)
&& FindProcShort (myGlCore20, glVertexAttrib4Nusv)
&& FindProcShort (myGlCore20, glVertexAttrib4bv)
&& FindProcShort (myGlCore20, glVertexAttrib4d)
&& FindProcShort (myGlCore20, glVertexAttrib4dv)
&& FindProcShort (myGlCore20, glVertexAttrib4f)
&& FindProcShort (myGlCore20, glVertexAttrib4fv)
&& FindProcShort (myGlCore20, glVertexAttrib4iv)
&& FindProcShort (myGlCore20, glVertexAttrib4s)
&& FindProcShort (myGlCore20, glVertexAttrib4sv)
&& FindProcShort (myGlCore20, glVertexAttrib4ubv)
&& FindProcShort (myGlCore20, glVertexAttrib4uiv)
&& FindProcShort (myGlCore20, glVertexAttrib4usv)
&& FindProcShort (myGlCore20, glVertexAttribPointer);
if (!hasGlCore12)
{
myGlVerMajor = 1;
myGlVerMinor = 1;
return;
}
}
// initialize OpenGL 1.3 core functionality
if (IsGlGreaterEqual (1, 3))
else
{
if (!FindProcShort (myGlCore20, glActiveTexture)
|| !FindProcShort (myGlCore20, glSampleCoverage)
|| !FindProcShort (myGlCore20, glCompressedTexImage3D)
|| !FindProcShort (myGlCore20, glCompressedTexImage2D)
|| !FindProcShort (myGlCore20, glCompressedTexImage1D)
|| !FindProcShort (myGlCore20, glCompressedTexSubImage3D)
|| !FindProcShort (myGlCore20, glCompressedTexSubImage2D)
|| !FindProcShort (myGlCore20, glCompressedTexSubImage1D)
|| !FindProcShort (myGlCore20, glGetCompressedTexImage)
// deprecated
|| !FindProcShort (myGlCore20, glClientActiveTexture)
|| !FindProcShort (myGlCore20, glMultiTexCoord1d)
|| !FindProcShort (myGlCore20, glMultiTexCoord1dv)
|| !FindProcShort (myGlCore20, glMultiTexCoord1f)
|| !FindProcShort (myGlCore20, glMultiTexCoord1fv)
|| !FindProcShort (myGlCore20, glMultiTexCoord1i)
|| !FindProcShort (myGlCore20, glMultiTexCoord1iv)
|| !FindProcShort (myGlCore20, glMultiTexCoord1s)
|| !FindProcShort (myGlCore20, glMultiTexCoord1sv)
|| !FindProcShort (myGlCore20, glMultiTexCoord2d)
|| !FindProcShort (myGlCore20, glMultiTexCoord2dv)
|| !FindProcShort (myGlCore20, glMultiTexCoord2f)
|| !FindProcShort (myGlCore20, glMultiTexCoord2fv)
|| !FindProcShort (myGlCore20, glMultiTexCoord2i)
|| !FindProcShort (myGlCore20, glMultiTexCoord2iv)
|| !FindProcShort (myGlCore20, glMultiTexCoord2s)
|| !FindProcShort (myGlCore20, glMultiTexCoord2sv)
|| !FindProcShort (myGlCore20, glMultiTexCoord3d)
|| !FindProcShort (myGlCore20, glMultiTexCoord3dv)
|| !FindProcShort (myGlCore20, glMultiTexCoord3f)
|| !FindProcShort (myGlCore20, glMultiTexCoord3fv)
|| !FindProcShort (myGlCore20, glMultiTexCoord3i)
|| !FindProcShort (myGlCore20, glMultiTexCoord3iv)
|| !FindProcShort (myGlCore20, glMultiTexCoord3s)
|| !FindProcShort (myGlCore20, glMultiTexCoord3sv)
|| !FindProcShort (myGlCore20, glMultiTexCoord4d)
|| !FindProcShort (myGlCore20, glMultiTexCoord4dv)
|| !FindProcShort (myGlCore20, glMultiTexCoord4f)
|| !FindProcShort (myGlCore20, glMultiTexCoord4fv)
|| !FindProcShort (myGlCore20, glMultiTexCoord4i)
|| !FindProcShort (myGlCore20, glMultiTexCoord4iv)
|| !FindProcShort (myGlCore20, glMultiTexCoord4s)
|| !FindProcShort (myGlCore20, glMultiTexCoord4sv)
|| !FindProcShort (myGlCore20, glLoadTransposeMatrixf)
|| !FindProcShort (myGlCore20, glLoadTransposeMatrixd)
|| !FindProcShort (myGlCore20, glMultTransposeMatrixf)
|| !FindProcShort (myGlCore20, glMultTransposeMatrixd))
core12 = myGlCore20;
}
if (!hasGlCore13)
{
myGlVerMajor = 1;
myGlVerMinor = 2;
core12 = myGlCore20;
return;
}
}
// initialize OpenGL 1.4 core functionality
if (IsGlGreaterEqual (1, 4))
else
{
if (!FindProcShort (myGlCore20, glBlendFuncSeparate)
|| !FindProcShort (myGlCore20, glMultiDrawArrays)
|| !FindProcShort (myGlCore20, glMultiDrawElements)
|| !FindProcShort (myGlCore20, glPointParameterf)
|| !FindProcShort (myGlCore20, glPointParameterfv)
|| !FindProcShort (myGlCore20, glPointParameteri)
|| !FindProcShort (myGlCore20, glPointParameteriv))
core13 = myGlCore20;
}
if(!hasGlCore14)
{
myGlVerMajor = 1;
myGlVerMinor = 3;
core12 = myGlCore20;
core13 = myGlCore20;
return;
}
}
// initialize OpenGL 1.5 core functionality
if (IsGlGreaterEqual (1, 5))
else
{
if (!FindProcShort (myGlCore20, glGenQueries)
|| !FindProcShort (myGlCore20, glDeleteQueries)
|| !FindProcShort (myGlCore20, glIsQuery)
|| !FindProcShort (myGlCore20, glBeginQuery)
|| !FindProcShort (myGlCore20, glEndQuery)
|| !FindProcShort (myGlCore20, glGetQueryiv)
|| !FindProcShort (myGlCore20, glGetQueryObjectiv)
|| !FindProcShort (myGlCore20, glGetQueryObjectuiv)
|| !FindProcShort (myGlCore20, glBindBuffer)
|| !FindProcShort (myGlCore20, glDeleteBuffers)
|| !FindProcShort (myGlCore20, glGenBuffers)
|| !FindProcShort (myGlCore20, glIsBuffer)
|| !FindProcShort (myGlCore20, glBufferData)
|| !FindProcShort (myGlCore20, glBufferSubData)
|| !FindProcShort (myGlCore20, glGetBufferSubData)
|| !FindProcShort (myGlCore20, glMapBuffer)
|| !FindProcShort (myGlCore20, glUnmapBuffer)
|| !FindProcShort (myGlCore20, glGetBufferParameteriv)
|| !FindProcShort (myGlCore20, glGetBufferPointerv))
core14 = myGlCore20;
}
if(!hasGlCore15)
{
myGlVerMajor = 1;
myGlVerMinor = 4;
core12 = myGlCore20;
core13 = myGlCore20;
core14 = myGlCore20;
return;
}
}
// initialize OpenGL 2.0 core functionality
if (IsGlGreaterEqual (2, 0))
else
{
if (!FindProcShort (myGlCore20, glBlendEquationSeparate)
|| !FindProcShort (myGlCore20, glDrawBuffers)
|| !FindProcShort (myGlCore20, glStencilOpSeparate)
|| !FindProcShort (myGlCore20, glStencilFuncSeparate)
|| !FindProcShort (myGlCore20, glStencilMaskSeparate)
|| !FindProcShort (myGlCore20, glAttachShader)
|| !FindProcShort (myGlCore20, glBindAttribLocation)
|| !FindProcShort (myGlCore20, glCompileShader)
|| !FindProcShort (myGlCore20, glCreateProgram)
|| !FindProcShort (myGlCore20, glCreateShader)
|| !FindProcShort (myGlCore20, glDeleteProgram)
|| !FindProcShort (myGlCore20, glDeleteShader)
|| !FindProcShort (myGlCore20, glDetachShader)
|| !FindProcShort (myGlCore20, glDisableVertexAttribArray)
|| !FindProcShort (myGlCore20, glEnableVertexAttribArray)
|| !FindProcShort (myGlCore20, glGetActiveAttrib)
|| !FindProcShort (myGlCore20, glGetActiveUniform)
|| !FindProcShort (myGlCore20, glGetAttachedShaders)
|| !FindProcShort (myGlCore20, glGetAttribLocation)
|| !FindProcShort (myGlCore20, glGetProgramiv)
|| !FindProcShort (myGlCore20, glGetProgramInfoLog)
|| !FindProcShort (myGlCore20, glGetShaderiv)
|| !FindProcShort (myGlCore20, glGetShaderInfoLog)
|| !FindProcShort (myGlCore20, glGetShaderSource)
|| !FindProcShort (myGlCore20, glGetUniformLocation)
|| !FindProcShort (myGlCore20, glGetUniformfv)
|| !FindProcShort (myGlCore20, glGetUniformiv)
|| !FindProcShort (myGlCore20, glGetVertexAttribdv)
|| !FindProcShort (myGlCore20, glGetVertexAttribfv)
|| !FindProcShort (myGlCore20, glGetVertexAttribiv)
|| !FindProcShort (myGlCore20, glGetVertexAttribPointerv)
|| !FindProcShort (myGlCore20, glIsProgram)
|| !FindProcShort (myGlCore20, glIsShader)
|| !FindProcShort (myGlCore20, glLinkProgram)
|| !FindProcShort (myGlCore20, glShaderSource)
|| !FindProcShort (myGlCore20, glUseProgram)
|| !FindProcShort (myGlCore20, glUniform1f)
|| !FindProcShort (myGlCore20, glUniform2f)
|| !FindProcShort (myGlCore20, glUniform3f)
|| !FindProcShort (myGlCore20, glUniform4f)
|| !FindProcShort (myGlCore20, glUniform1i)
|| !FindProcShort (myGlCore20, glUniform2i)
|| !FindProcShort (myGlCore20, glUniform3i)
|| !FindProcShort (myGlCore20, glUniform4i)
|| !FindProcShort (myGlCore20, glUniform1fv)
|| !FindProcShort (myGlCore20, glUniform2fv)
|| !FindProcShort (myGlCore20, glUniform3fv)
|| !FindProcShort (myGlCore20, glUniform4fv)
|| !FindProcShort (myGlCore20, glUniform1iv)
|| !FindProcShort (myGlCore20, glUniform2iv)
|| !FindProcShort (myGlCore20, glUniform3iv)
|| !FindProcShort (myGlCore20, glUniform4iv)
|| !FindProcShort (myGlCore20, glUniformMatrix2fv)
|| !FindProcShort (myGlCore20, glUniformMatrix3fv)
|| !FindProcShort (myGlCore20, glUniformMatrix4fv)
|| !FindProcShort (myGlCore20, glValidateProgram)
|| !FindProcShort (myGlCore20, glVertexAttrib1d)
|| !FindProcShort (myGlCore20, glVertexAttrib1dv)
|| !FindProcShort (myGlCore20, glVertexAttrib1f)
|| !FindProcShort (myGlCore20, glVertexAttrib1fv)
|| !FindProcShort (myGlCore20, glVertexAttrib1s)
|| !FindProcShort (myGlCore20, glVertexAttrib1sv)
|| !FindProcShort (myGlCore20, glVertexAttrib2d)
|| !FindProcShort (myGlCore20, glVertexAttrib2dv)
|| !FindProcShort (myGlCore20, glVertexAttrib2f)
|| !FindProcShort (myGlCore20, glVertexAttrib2fv)
|| !FindProcShort (myGlCore20, glVertexAttrib2s)
|| !FindProcShort (myGlCore20, glVertexAttrib2sv)
|| !FindProcShort (myGlCore20, glVertexAttrib3d)
|| !FindProcShort (myGlCore20, glVertexAttrib3dv)
|| !FindProcShort (myGlCore20, glVertexAttrib3f)
|| !FindProcShort (myGlCore20, glVertexAttrib3fv)
|| !FindProcShort (myGlCore20, glVertexAttrib3s)
|| !FindProcShort (myGlCore20, glVertexAttrib3sv)
|| !FindProcShort (myGlCore20, glVertexAttrib4Nbv)
|| !FindProcShort (myGlCore20, glVertexAttrib4Niv)
|| !FindProcShort (myGlCore20, glVertexAttrib4Nsv)
|| !FindProcShort (myGlCore20, glVertexAttrib4Nub)
|| !FindProcShort (myGlCore20, glVertexAttrib4Nubv)
|| !FindProcShort (myGlCore20, glVertexAttrib4Nuiv)
|| !FindProcShort (myGlCore20, glVertexAttrib4Nusv)
|| !FindProcShort (myGlCore20, glVertexAttrib4bv)
|| !FindProcShort (myGlCore20, glVertexAttrib4d)
|| !FindProcShort (myGlCore20, glVertexAttrib4dv)
|| !FindProcShort (myGlCore20, glVertexAttrib4f)
|| !FindProcShort (myGlCore20, glVertexAttrib4fv)
|| !FindProcShort (myGlCore20, glVertexAttrib4iv)
|| !FindProcShort (myGlCore20, glVertexAttrib4s)
|| !FindProcShort (myGlCore20, glVertexAttrib4sv)
|| !FindProcShort (myGlCore20, glVertexAttrib4ubv)
|| !FindProcShort (myGlCore20, glVertexAttrib4uiv)
|| !FindProcShort (myGlCore20, glVertexAttrib4usv)
|| !FindProcShort (myGlCore20, glVertexAttribPointer))
core15 = myGlCore20;
}
if(!hasGlCore20)
{
myGlVerMajor = 1;
myGlVerMinor = 5;
core12 = myGlCore20;
core13 = myGlCore20;
core14 = myGlCore20;
core15 = myGlCore20;
}
}
if (IsGlGreaterEqual (2, 0))
else
{
core12 = myGlCore20;
core13 = myGlCore20;
core14 = myGlCore20;
core15 = myGlCore20;
core20 = myGlCore20;
}
}