github.com/gotranspile/cxgo@v0.3.8-0.20240118201721-29871598a6a2/libs/opengl.go (about) 1 package libs 2 3 import "github.com/gotranspile/cxgo/types" 4 5 const ( 6 glH = "GL/gl.h" 7 ) 8 9 func init() { 10 RegisterLibrary(glH, func(env *Env) *Library { 11 int32T := types.IntT(4) 12 uint32T := types.UintT(4) 13 intT := env.Go().Int() 14 uint32PtrT := env.PtrT(types.UintT(4)) 15 uPtrT := env.Go().UnsafePtr() 16 float32T := env.PtrT(types.FloatT(4)) 17 return &Library{ 18 Imports: map[string]string{ 19 "gl": "github.com/go-gl/gl/v3.3-core/gl", // last supported version on macos 20 }, 21 Idents: map[string]*types.Ident{ 22 //functions 23 "glGenBuffers": types.NewIdentGo("glGenBuffers", "gl.GenBuffers", env.FuncTT(nil, int32T, uint32PtrT)), 24 "glBindBuffer": types.NewIdentGo("glBindBuffer", "gl.BindBuffer", env.FuncTT(nil, uint32T, uint32T)), 25 "glBufferData": types.NewIdentGo("glBufferData", "gl.BufferData", env.FuncTT(nil, uint32T, intT, uPtrT, uint32T)), 26 "glCreateShader": types.NewIdentGo("glCreateShader", "gl.CreateShader", env.FuncTT(uint32T, uint32T)), 27 "glShaderSource": types.NewIdentGo("glShaderSource", "gl.ShaderSource", env.FuncTT(nil, uint32T, int32T, env.PtrT(env.C().String()), env.PtrT(int32T))), 28 "glCompileShader": types.NewIdentGo("glCompileShader", "gl.CompileShader", env.FuncTT(nil, uint32T)), 29 "glCreateProgram": types.NewIdentGo("glCreateProgram", "gl.CreateProgram", env.FuncTT(uint32T)), 30 "glAttachShader": types.NewIdentGo("glAttachShader", "gl.AttachShader", env.FuncTT(nil, uint32T, uint32T)), 31 "glLinkProgram": types.NewIdentGo("glLinkProgram", "gl.LinkProgram", env.FuncTT(nil, uint32T)), 32 "glGetUniformLocation": types.NewIdentGo("glGetUniformLocation", "gl.GetUniformLocation", env.FuncTT(int32T, uint32T, env.C().String())), 33 "glGetAttribLocation": types.NewIdentGo("glGetAttribLocation", "gl.GetAttribLocation", env.FuncTT(int32T, uint32T, env.C().String())), 34 "glEnableVertexAttribArray": types.NewIdentGo("glEnableVertexAttribArray", "gl.EnableVertexAttribArray", env.FuncTT(nil, uint32T)), 35 "glVertexAttribPointer": types.NewIdentGo("glVertexAttribPointer", "gl.VertexAttribPointerWithOffset", env.FuncTT(nil, uint32T, int32T, uint32T, env.Go().Bool(), int32T, env.Go().Uintptr())), 36 "glViewport": types.NewIdentGo("glViewport", "gl.Viewport", env.FuncTT(nil, int32T, int32T, int32T, int32T)), 37 "glClear": types.NewIdentGo("glClear", "gl.Clear", env.FuncTT(nil, uint32T)), 38 "glUseProgram": types.NewIdentGo("glUseProgram", "gl.UseProgram", env.FuncTT(nil, uint32T)), 39 "glUniformMatrix4fv": types.NewIdentGo("glUniformMatrix4fv", "gl.UniformMatrix4fv", env.FuncTT(nil, int32T, int32T, env.Go().Bool(), float32T)), 40 "glDrawArrays": types.NewIdentGo("glDrawArrays", "gl.DrawArrays", env.FuncTT(nil, uint32T, int32T, int32T)), 41 // constants 42 "GL_FALSE": types.NewIdentGo("GL_FALSE", "gl.FALSE", env.Go().Int()), 43 "GL_TRUE": types.NewIdentGo("GL_TRUE", "gl.TRUE", env.Go().Int()), 44 "GL_TEXTURE_2D": types.NewIdentGo("GL_TEXTURE_2D", "gl.TEXTURE_2D", env.Go().Int()), 45 "GL_UNPACK_ROW_LENGTH": types.NewIdentGo("GL_UNPACK_ROW_LENGTH", "gl.UNPACK_ROW_LENGTH", env.Go().Int()), 46 "GL_BGRA": types.NewIdentGo("GL_BGRA", "gl.BGRA", env.Go().Int()), 47 "GL_RGBA": types.NewIdentGo("GL_RGBA", "gl.RGBA", env.Go().Int()), 48 "GL_TEXTURE_WRAP_S": types.NewIdentGo("GL_TEXTURE_WRAP_S", "gl.TEXTURE_WRAP_S", env.Go().Int()), 49 "GL_TEXTURE_WRAP_T": types.NewIdentGo("GL_TEXTURE_WRAP_T", "gl.TEXTURE_WRAP_T", env.Go().Int()), 50 "GL_TEXTURE_MIN_FILTER": types.NewIdentGo("GL_TEXTURE_MIN_FILTER", "gl.TEXTURE_MIN_FILTER", env.Go().Int()), 51 "GL_FRAMEBUFFER": types.NewIdentGo("GL_FRAMEBUFFER", "gl.FRAMEBUFFER", env.Go().Int()), 52 "GL_COLOR_BUFFER_BIT": types.NewIdentGo("GL_COLOR_BUFFER_BIT", "gl.COLOR_BUFFER_BIT", env.Go().Int()), 53 "GL_UNSIGNED_SHORT_1_5_5_5_REV": types.NewIdentGo("GL_UNSIGNED_SHORT_1_5_5_5_REV", "gl.UNSIGNED_SHORT_1_5_5_5_REV", env.Go().Int()), 54 "GL_UNSIGNED_SHORT_5_5_5_1": types.NewIdentGo("GL_UNSIGNED_SHORT_5_5_5_1", "gl.UNSIGNED_SHORT_5_5_5_1", env.Go().Int()), 55 "GL_LINEAR": types.NewIdentGo("GL_LINEAR", "gl.LINEAR", env.Go().Int()), 56 "GL_ARRAY_BUFFER": types.NewIdentGo("GL_ARRAY_BUFFER", "gl.ARRAY_BUFFER", env.Go().Int()), 57 "GL_FLOAT": types.NewIdentGo("GL_FLOAT", "gl.FLOAT", env.Go().Int()), 58 "GL_TRIANGLE_STRIP": types.NewIdentGo("GL_TRIANGLE_STRIP", "gl.TRIANGLE_STRIP", env.Go().Int()), 59 "GL_CLAMP_TO_EDGE": types.NewIdentGo("GL_CLAMP_TO_EDGE", "gl.CLAMP_TO_EDGE", env.Go().Int()), 60 "GL_TEXTURE0": types.NewIdentGo("GL_TEXTURE0", "gl.TEXTURE0", env.Go().Int()), 61 "GL_VERTEX_SHADER": types.NewIdentGo("GL_VERTEX_SHADER", "gl.VERTEX_SHADER", env.Go().Int()), 62 "GL_COMPILE_STATUS": types.NewIdentGo("GL_COMPILE_STATUS", "gl.COMPILE_STATUS", env.Go().Int()), 63 "GL_FRAGMENT_SHADER": types.NewIdentGo("GL_FRAGMENT_SHADER", "gl.FRAGMENT_SHADER", env.Go().Int()), 64 "GL_LINK_STATUS": types.NewIdentGo("GL_LINK_STATUS", "gl.LINK_STATUS", env.Go().Int()), 65 "GL_STATIC_DRAW": types.NewIdentGo("GL_STATIC_DRAW", "gl.STATIC_DRAW", env.Go().Int()), 66 "GL_TRIANGLES": types.NewIdentGo("GL_TRIANGLES", "gl.TRIANGLES", env.Go().Int()), 67 }, 68 } 69 }) 70 }