211 lines
3.7 KiB
Go
211 lines
3.7 KiB
Go
|
// Copyright 2015 The Go Authors. All rights reserved.
|
||
|
// Use of this source code is governed by a BSD-style
|
||
|
// license that can be found in the LICENSE file.
|
||
|
|
||
|
package gl
|
||
|
|
||
|
import "unsafe"
|
||
|
|
||
|
type call struct {
|
||
|
args fnargs
|
||
|
parg unsafe.Pointer
|
||
|
blocking bool
|
||
|
}
|
||
|
|
||
|
type fnargs struct {
|
||
|
fn glfn
|
||
|
|
||
|
a0 uintptr
|
||
|
a1 uintptr
|
||
|
a2 uintptr
|
||
|
a3 uintptr
|
||
|
a4 uintptr
|
||
|
a5 uintptr
|
||
|
a6 uintptr
|
||
|
a7 uintptr
|
||
|
a8 uintptr
|
||
|
a9 uintptr
|
||
|
}
|
||
|
|
||
|
type glfn int
|
||
|
|
||
|
const (
|
||
|
glfnUNDEFINED glfn = iota
|
||
|
glfnActiveTexture
|
||
|
glfnAttachShader
|
||
|
glfnBindAttribLocation
|
||
|
glfnBindBuffer
|
||
|
glfnBindFramebuffer
|
||
|
glfnBindRenderbuffer
|
||
|
glfnBindTexture
|
||
|
glfnBindVertexArray
|
||
|
glfnBlendColor
|
||
|
glfnBlendEquation
|
||
|
glfnBlendEquationSeparate
|
||
|
glfnBlendFunc
|
||
|
glfnBlendFuncSeparate
|
||
|
glfnBufferData
|
||
|
glfnBufferSubData
|
||
|
glfnCheckFramebufferStatus
|
||
|
glfnClear
|
||
|
glfnClearColor
|
||
|
glfnClearDepthf
|
||
|
glfnClearStencil
|
||
|
glfnColorMask
|
||
|
glfnCompileShader
|
||
|
glfnCompressedTexImage2D
|
||
|
glfnCompressedTexSubImage2D
|
||
|
glfnCopyTexImage2D
|
||
|
glfnCopyTexSubImage2D
|
||
|
glfnCreateProgram
|
||
|
glfnCreateShader
|
||
|
glfnCullFace
|
||
|
glfnDeleteBuffer
|
||
|
glfnDeleteFramebuffer
|
||
|
glfnDeleteProgram
|
||
|
glfnDeleteRenderbuffer
|
||
|
glfnDeleteShader
|
||
|
glfnDeleteTexture
|
||
|
glfnDeleteVertexArray
|
||
|
glfnDepthFunc
|
||
|
glfnDepthRangef
|
||
|
glfnDepthMask
|
||
|
glfnDetachShader
|
||
|
glfnDisable
|
||
|
glfnDisableVertexAttribArray
|
||
|
glfnDrawArrays
|
||
|
glfnDrawElements
|
||
|
glfnEnable
|
||
|
glfnEnableVertexAttribArray
|
||
|
glfnFinish
|
||
|
glfnFlush
|
||
|
glfnFramebufferRenderbuffer
|
||
|
glfnFramebufferTexture2D
|
||
|
glfnFrontFace
|
||
|
glfnGenBuffer
|
||
|
glfnGenFramebuffer
|
||
|
glfnGenRenderbuffer
|
||
|
glfnGenTexture
|
||
|
glfnGenVertexArray
|
||
|
glfnGenerateMipmap
|
||
|
glfnGetActiveAttrib
|
||
|
glfnGetActiveUniform
|
||
|
glfnGetAttachedShaders
|
||
|
glfnGetAttribLocation
|
||
|
glfnGetBooleanv
|
||
|
glfnGetBufferParameteri
|
||
|
glfnGetError
|
||
|
glfnGetFloatv
|
||
|
glfnGetFramebufferAttachmentParameteriv
|
||
|
glfnGetIntegerv
|
||
|
glfnGetProgramInfoLog
|
||
|
glfnGetProgramiv
|
||
|
glfnGetRenderbufferParameteriv
|
||
|
glfnGetShaderInfoLog
|
||
|
glfnGetShaderPrecisionFormat
|
||
|
glfnGetShaderSource
|
||
|
glfnGetShaderiv
|
||
|
glfnGetString
|
||
|
glfnGetTexParameterfv
|
||
|
glfnGetTexParameteriv
|
||
|
glfnGetUniformLocation
|
||
|
glfnGetUniformfv
|
||
|
glfnGetUniformiv
|
||
|
glfnGetVertexAttribfv
|
||
|
glfnGetVertexAttribiv
|
||
|
glfnHint
|
||
|
glfnIsBuffer
|
||
|
glfnIsEnabled
|
||
|
glfnIsFramebuffer
|
||
|
glfnIsProgram
|
||
|
glfnIsRenderbuffer
|
||
|
glfnIsShader
|
||
|
glfnIsTexture
|
||
|
glfnLineWidth
|
||
|
glfnLinkProgram
|
||
|
glfnPixelStorei
|
||
|
glfnPolygonOffset
|
||
|
glfnReadPixels
|
||
|
glfnReleaseShaderCompiler
|
||
|
glfnRenderbufferStorage
|
||
|
glfnSampleCoverage
|
||
|
glfnScissor
|
||
|
glfnShaderSource
|
||
|
glfnStencilFunc
|
||
|
glfnStencilFuncSeparate
|
||
|
glfnStencilMask
|
||
|
glfnStencilMaskSeparate
|
||
|
glfnStencilOp
|
||
|
glfnStencilOpSeparate
|
||
|
glfnTexImage2D
|
||
|
glfnTexParameterf
|
||
|
glfnTexParameterfv
|
||
|
glfnTexParameteri
|
||
|
glfnTexParameteriv
|
||
|
glfnTexSubImage2D
|
||
|
glfnUniform1f
|
||
|
glfnUniform1fv
|
||
|
glfnUniform1i
|
||
|
glfnUniform1iv
|
||
|
glfnUniform2f
|
||
|
glfnUniform2fv
|
||
|
glfnUniform2i
|
||
|
glfnUniform2iv
|
||
|
glfnUniform3f
|
||
|
glfnUniform3fv
|
||
|
glfnUniform3i
|
||
|
glfnUniform3iv
|
||
|
glfnUniform4f
|
||
|
glfnUniform4fv
|
||
|
glfnUniform4i
|
||
|
glfnUniform4iv
|
||
|
glfnUniformMatrix2fv
|
||
|
glfnUniformMatrix3fv
|
||
|
glfnUniformMatrix4fv
|
||
|
glfnUseProgram
|
||
|
glfnValidateProgram
|
||
|
glfnVertexAttrib1f
|
||
|
glfnVertexAttrib1fv
|
||
|
glfnVertexAttrib2f
|
||
|
glfnVertexAttrib2fv
|
||
|
glfnVertexAttrib3f
|
||
|
glfnVertexAttrib3fv
|
||
|
glfnVertexAttrib4f
|
||
|
glfnVertexAttrib4fv
|
||
|
glfnVertexAttribPointer
|
||
|
glfnViewport
|
||
|
|
||
|
// ES 3.0 functions
|
||
|
glfnUniformMatrix2x3fv
|
||
|
glfnUniformMatrix3x2fv
|
||
|
glfnUniformMatrix2x4fv
|
||
|
glfnUniformMatrix4x2fv
|
||
|
glfnUniformMatrix3x4fv
|
||
|
glfnUniformMatrix4x3fv
|
||
|
glfnBlitFramebuffer
|
||
|
glfnUniform1ui
|
||
|
glfnUniform2ui
|
||
|
glfnUniform3ui
|
||
|
glfnUniform4ui
|
||
|
glfnUniform1uiv
|
||
|
glfnUniform2uiv
|
||
|
glfnUniform3uiv
|
||
|
glfnUniform4uiv
|
||
|
)
|
||
|
|
||
|
func goString(buf []byte) string {
|
||
|
for i, b := range buf {
|
||
|
if b == 0 {
|
||
|
return string(buf[:i])
|
||
|
}
|
||
|
}
|
||
|
panic("buf is not NUL-terminated")
|
||
|
}
|
||
|
|
||
|
func glBoolean(b bool) uintptr {
|
||
|
if b {
|
||
|
return TRUE
|
||
|
}
|
||
|
return FALSE
|
||
|
}
|