Generates the files: - glapi.c - functions to load the OpenGL pointers from dll/shared object glapiLoad() glapiVersion() glapiProc() ... - declarations of all the pointers which will be loaded as "static" - definitions of OpenGL functions which will be called by Go. These functions call the POINTERS loaded previously. Have the names of the original OpenGL functions declared in "glcorearb.h" void glCullFace(GLenum mode) { pglCullFace(mode); // Optional error check } - glapi.h - declarations of loader functions Only - glqueue.c - gl.go - Declaration of all OpenGL defines as constants - Go function which call the loader api: ApiLoad() ApiVersion() ... - Go functions which calls the respective OpenGL functions func CulFace(mode) { C.glCullFace(mode) } //void glDeleteTextures (GLsizei n, const GLuint *textures) { func DeleteTexturesQ(textures []uint) { p := ParamDeleteTextures{} p.textures = textures queue = append(queue, Func{C.glDeleteTextures, p}) }