-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
/
fn.go
94 lines (85 loc) · 1.44 KB
/
fn.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
// 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
glfnBindBuffer
glfnBindTexture
glfnBindVertexArray
glfnBlendColor
glfnBlendFunc
glfnBufferData
glfnClear
glfnClearColor
glfnCompileShader
glfnCreateProgram
glfnCreateShader
glfnDeleteBuffer
glfnDeleteTexture
glfnDisable
glfnDrawArrays
glfnEnable
glfnEnableVertexAttribArray
glfnFlush
glfnGenBuffer
glfnGenTexture
glfnGenVertexArray
glfnGetAttribLocation
glfnGetError
glfnGetProgramInfoLog
glfnGetProgramiv
glfnGetShaderInfoLog
glfnGetShaderSource
glfnGetShaderiv
glfnGetTexParameteriv
glfnGetUniformLocation
glfnLinkProgram
glfnReadPixels
glfnScissor
glfnShaderSource
glfnTexImage2D
glfnTexParameteri
glfnUniform1f
glfnUniform4f
glfnUniform4fv
glfnUseProgram
glfnVertexAttribPointer
glfnViewport
)
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
}