bool do_query_gl(void) { if(!does_have_ARB_gpu_shader_fp64()) { return false; } unsigned missing_gl_symbols = 0; OGLPLUS_CONFIG_ASSERT_GL_FUNC(glUniform1d); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glUniform2d); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glUniform3d); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glUniform4d); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glUniform1dv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glUniform2dv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glUniform3dv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glUniform4dv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glUniformMatrix2dv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glUniformMatrix2x3dv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glUniformMatrix2x4dv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glUniformMatrix3x2dv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glUniformMatrix3dv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glUniformMatrix3x4dv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glUniformMatrix4x2dv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glUniformMatrix4x3dv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glUniformMatrix4dv); #if GL_EXT_direct_state_access OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform1dEXT); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform2dEXT); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform3dEXT); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform4dEXT); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform1dvEXT); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform2dvEXT); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform3dvEXT); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform4dvEXT); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniformMatrix2dvEXT); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniformMatrix2x3dvEXT); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniformMatrix2x4dvEXT); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniformMatrix3x2dvEXT); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniformMatrix3dvEXT); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniformMatrix3x4dvEXT); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniformMatrix4x2dvEXT); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniformMatrix4x3dvEXT); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniformMatrix4dvEXT); #endif return missing_gl_symbols == 0; }
bool do_query_gl(void) { if(!does_have_ARB_separate_shader_objects()) { return false; } unsigned missing_gl_symbols = 0; OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform1i); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform2i); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform3i); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform4i); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform1ui); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform2ui); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform3ui); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform4ui); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform1f); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform2f); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform3f); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform4f); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform1d); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform2d); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform3d); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform4d); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform1iv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform2iv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform3iv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform4iv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform1uiv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform2uiv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform3uiv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform4uiv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform1fv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform2fv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform3fv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform4fv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform1dv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform2dv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform3dv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniform4dv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniformMatrix2fv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniformMatrix2x3fv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniformMatrix2x4fv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniformMatrix3x2fv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniformMatrix3fv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniformMatrix3x4fv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniformMatrix4x2fv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniformMatrix4x3fv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniformMatrix4fv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniformMatrix2dv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniformMatrix2x3dv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniformMatrix2x4dv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniformMatrix3x2dv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniformMatrix3dv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniformMatrix3x4dv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniformMatrix4x2dv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniformMatrix4x3dv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramUniformMatrix4dv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glUseProgramStages); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glActiveShaderProgram); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glCreateShaderProgramv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glGenProgramPipelines); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glDeleteProgramPipelines); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glIsProgramPipeline); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glBindProgramPipeline); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glProgramParameteri); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glGetProgramPipelineiv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glGetProgramPipelineInfoLog); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glValidateProgramPipeline); return missing_gl_symbols == 0; }
bool do_query_gl(void) { if(!does_have_ARB_compatibility()) { return false; } unsigned missing_gl_symbols = 0; OGLPLUS_CONFIG_ASSERT_GL_FUNC(glBegin); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glEnd); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glVertex2s); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glVertex3s); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glVertex4s); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glVertex2sv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glVertex3sv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glVertex4sv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glVertex2i); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glVertex3i); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glVertex4i); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glVertex2iv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glVertex3iv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glVertex4iv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glVertex2f); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glVertex3f); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glVertex4f); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glVertex2fv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glVertex3fv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glVertex4fv); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glMatrixMode); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glPushMatrix); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glPopMatrix); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glLoadMatrixf); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glLoadMatrixd); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glTranslatef); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glTranslated); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glRotatef); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glRotated); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glScalef); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glScaled); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glEnableClientState); OGLPLUS_CONFIG_ASSERT_GL_FUNC(glDisableClientState); // TODO: return missing_gl_symbols == 0; }