/* compile with gcc idx_shad_lang.c -lglfw -lGL -o idx_shad_lang */ #include #include #include typedef const GLubyte *(APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index); PFNGLGETSTRINGIPROC getStringi = NULL; int main(void) { GLFWwindow* window = NULL; GLint numLanguages = 0, i; if (!glfwInit()) exit(EXIT_FAILURE); glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); window = glfwCreateWindow(640, 480, "Example", NULL, NULL); if (!window) { glfwTerminate(); exit(EXIT_FAILURE); } glfwMakeContextCurrent(window); printf("Shading language version: %s\n", glGetString(GL_SHADING_LANGUAGE_VERSION)); glGetIntegerv(GL_NUM_SHADING_LANGUAGE_VERSIONS, &numLanguages); printf("%d total languages\n", numLanguages); getStringi = (PFNGLGETSTRINGIPROC)glfwGetProcAddress("glGetStringi"); for(i = 0; i < numLanguages && getStringi; i++) printf("language %d: %s\n", i, getStringi(GL_SHADING_LANGUAGE_VERSION, i)); }