Skip to content

Instantly share code, notes, and snippets.

@cestrand
Created December 16, 2020 12:17
Show Gist options
  • Save cestrand/620b1ee379681ece4a15162fc38c7425 to your computer and use it in GitHub Desktop.
Save cestrand/620b1ee379681ece4a15162fc38c7425 to your computer and use it in GitHub Desktop.
Print supported OpenGL API's to standard output up to OpenGL 4.6.
/**
* Print supported OpenGL API's to standard output up to OpenGL 4.6.
*
* @author Marcin Kolenda
*/
import org.lwjgl.glfw.GLFW
import org.lwjgl.opengl.GL
import org.lwjgl.opengl.GLCapabilities
import org.lwjgl.system.MemoryUtil
fun availGlVersions(capabilities: GLCapabilities) = mapOf(
"OpenGL11" to capabilities.OpenGL11,
"OpenGL12" to capabilities.OpenGL12,
"OpenGL13" to capabilities.OpenGL13,
"OpenGL14" to capabilities.OpenGL14,
"OpenGL15" to capabilities.OpenGL15,
"OpenGL20" to capabilities.OpenGL20,
"OpenGL21" to capabilities.OpenGL21,
"OpenGL30" to capabilities.OpenGL30,
"OpenGL31" to capabilities.OpenGL31,
"OpenGL32" to capabilities.OpenGL32,
"OpenGL33" to capabilities.OpenGL33,
"OpenGL40" to capabilities.OpenGL40,
"OpenGL41" to capabilities.OpenGL41,
"OpenGL42" to capabilities.OpenGL42,
"OpenGL43" to capabilities.OpenGL43,
"OpenGL44" to capabilities.OpenGL44,
"OpenGL45" to capabilities.OpenGL45,
"OpenGL46" to capabilities.OpenGL46,
)
fun printVersionAvailability(capabilities: GLCapabilities){
for((version, versionAvailable) in availGlVersions(capabilities)) {
println("${version} is ${versionAvailable}")
}
}
fun main() {
GLFW.glfwInit()
GLFW.glfwWindowHint(GLFW.GLFW_VISIBLE, GLFW.GLFW_FALSE) // the window will stay hidden after creation
val window = GLFW.glfwCreateWindow(1, 1, "", MemoryUtil.NULL, MemoryUtil.NULL)
GLFW.glfwMakeContextCurrent(window)
val capabilities = GL.createCapabilities()
printVersionAvailability(capabilities)
GLFW.glfwTerminate()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment