1'''OpenGL extension VERSION.GL_3_0
2
3This module customises the behaviour of the
4OpenGL.raw.GL.VERSION.GL_3_0 to provide a more
5Python-friendly API
6
7The official definition of this extension is available here:
8http://www.opengl.org/registry/specs/VERSION/GL_3_0.txt
9'''
10from OpenGL import platform, constant, arrays
11from OpenGL import extensions, wrapper
12import ctypes
13from OpenGL.raw.GL import _types, _glgets
14from OpenGL.raw.GL.VERSION.GL_3_0 import *
15from OpenGL.raw.GL.VERSION.GL_3_0 import _EXTENSION_NAME
16
17def glInitGl30VERSION():
18    '''Return boolean indicating whether this extension is available'''
19    from OpenGL import extensions
20    return extensions.hasGLExtension( _EXTENSION_NAME )
21
22glGetBooleani_v=wrapper.wrapper(glGetBooleani_v).setOutput(
23    'data',size=_glgets._glget_size_mapping,pnameArg='target',orPassIn=True
24)
25glGetIntegeri_v=wrapper.wrapper(glGetIntegeri_v).setOutput(
26    'data',size=_glgets._glget_size_mapping,pnameArg='target',orPassIn=True
27)
28# INPUT glTransformFeedbackVaryings.varyings size not checked against count
29glTransformFeedbackVaryings=wrapper.wrapper(glTransformFeedbackVaryings).setInputArraySize(
30    'varyings', None
31)
32glGetTransformFeedbackVarying=wrapper.wrapper(glGetTransformFeedbackVarying).setOutput(
33    'length',size=(1,),orPassIn=True
34).setOutput(
35    'type',size=(1,),orPassIn=True
36).setOutput(
37    'name',size=lambda x:(x,),pnameArg='bufSize',orPassIn=True
38).setOutput(
39    'size',size=(1,),orPassIn=True
40)
41# INPUT glVertexAttribIPointer.pointer size not checked against 'size,type,stride'
42glVertexAttribIPointer=wrapper.wrapper(glVertexAttribIPointer).setInputArraySize(
43    'pointer', None
44)
45glGetVertexAttribIiv=wrapper.wrapper(glGetVertexAttribIiv).setOutput(
46    'params',size=(1,),orPassIn=True
47)
48glGetVertexAttribIuiv=wrapper.wrapper(glGetVertexAttribIuiv).setOutput(
49    'params',size=(1,),orPassIn=True
50)
51glVertexAttribI1iv=wrapper.wrapper(glVertexAttribI1iv).setInputArraySize(
52    'v', 1
53)
54glVertexAttribI2iv=wrapper.wrapper(glVertexAttribI2iv).setInputArraySize(
55    'v', 2
56)
57glVertexAttribI3iv=wrapper.wrapper(glVertexAttribI3iv).setInputArraySize(
58    'v', 3
59)
60glVertexAttribI4iv=wrapper.wrapper(glVertexAttribI4iv).setInputArraySize(
61    'v', 4
62)
63glVertexAttribI1uiv=wrapper.wrapper(glVertexAttribI1uiv).setInputArraySize(
64    'v', 1
65)
66glVertexAttribI2uiv=wrapper.wrapper(glVertexAttribI2uiv).setInputArraySize(
67    'v', 2
68)
69glVertexAttribI3uiv=wrapper.wrapper(glVertexAttribI3uiv).setInputArraySize(
70    'v', 3
71)
72glVertexAttribI4uiv=wrapper.wrapper(glVertexAttribI4uiv).setInputArraySize(
73    'v', 4
74)
75glVertexAttribI4bv=wrapper.wrapper(glVertexAttribI4bv).setInputArraySize(
76    'v', 4
77)
78glVertexAttribI4sv=wrapper.wrapper(glVertexAttribI4sv).setInputArraySize(
79    'v', 4
80)
81glVertexAttribI4ubv=wrapper.wrapper(glVertexAttribI4ubv).setInputArraySize(
82    'v', 4
83)
84glVertexAttribI4usv=wrapper.wrapper(glVertexAttribI4usv).setInputArraySize(
85    'v', 4
86)
87# OUTPUT glGetUniformuiv.params COMPSIZE(program,location)
88# INPUT glBindFragDataLocation.name size not checked against 'name'
89glBindFragDataLocation=wrapper.wrapper(glBindFragDataLocation).setInputArraySize(
90    'name', None
91)
92# INPUT glGetFragDataLocation.name size not checked against 'name'
93glGetFragDataLocation=wrapper.wrapper(glGetFragDataLocation).setInputArraySize(
94    'name', None
95)
96# INPUT glUniform1uiv.value size not checked against count
97glUniform1uiv=wrapper.wrapper(glUniform1uiv).setInputArraySize(
98    'value', None
99)
100# INPUT glUniform2uiv.value size not checked against None
101glUniform2uiv=wrapper.wrapper(glUniform2uiv).setInputArraySize(
102    'value', None
103)
104# INPUT glUniform3uiv.value size not checked against None
105glUniform3uiv=wrapper.wrapper(glUniform3uiv).setInputArraySize(
106    'value', None
107)
108# INPUT glUniform4uiv.value size not checked against None
109glUniform4uiv=wrapper.wrapper(glUniform4uiv).setInputArraySize(
110    'value', None
111)
112# INPUT glTexParameterIiv.params size not checked against 'pname'
113glTexParameterIiv=wrapper.wrapper(glTexParameterIiv).setInputArraySize(
114    'params', None
115)
116# INPUT glTexParameterIuiv.params size not checked against 'pname'
117glTexParameterIuiv=wrapper.wrapper(glTexParameterIuiv).setInputArraySize(
118    'params', None
119)
120glGetTexParameterIiv=wrapper.wrapper(glGetTexParameterIiv).setOutput(
121    'params',size=_glgets._glget_size_mapping,pnameArg='pname',orPassIn=True
122)
123glGetTexParameterIuiv=wrapper.wrapper(glGetTexParameterIuiv).setOutput(
124    'params',size=_glgets._glget_size_mapping,pnameArg='pname',orPassIn=True
125)
126# INPUT glClearBufferiv.value size not checked against 'buffer'
127glClearBufferiv=wrapper.wrapper(glClearBufferiv).setInputArraySize(
128    'value', None
129)
130# INPUT glClearBufferuiv.value size not checked against 'buffer'
131glClearBufferuiv=wrapper.wrapper(glClearBufferuiv).setInputArraySize(
132    'value', None
133)
134# INPUT glClearBufferfv.value size not checked against 'buffer'
135glClearBufferfv=wrapper.wrapper(glClearBufferfv).setInputArraySize(
136    'value', None
137)
138# INPUT glDeleteRenderbuffers.renderbuffers size not checked against n
139glDeleteRenderbuffers=wrapper.wrapper(glDeleteRenderbuffers).setInputArraySize(
140    'renderbuffers', None
141)
142glGenRenderbuffers=wrapper.wrapper(glGenRenderbuffers).setOutput(
143    'renderbuffers',size=lambda x:(x,),pnameArg='n',orPassIn=True
144)
145glGetRenderbufferParameteriv=wrapper.wrapper(glGetRenderbufferParameteriv).setOutput(
146    'params',size=_glgets._glget_size_mapping,pnameArg='pname',orPassIn=True
147)
148# INPUT glDeleteFramebuffers.framebuffers size not checked against n
149glDeleteFramebuffers=wrapper.wrapper(glDeleteFramebuffers).setInputArraySize(
150    'framebuffers', None
151)
152glGenFramebuffers=wrapper.wrapper(glGenFramebuffers).setOutput(
153    'framebuffers',size=lambda x:(x,),pnameArg='n',orPassIn=True
154)
155glGetFramebufferAttachmentParameteriv=wrapper.wrapper(glGetFramebufferAttachmentParameteriv).setOutput(
156    'params',size=_glgets._glget_size_mapping,pnameArg='pname',orPassIn=True
157)
158# INPUT glDeleteVertexArrays.arrays size not checked against n
159glDeleteVertexArrays=wrapper.wrapper(glDeleteVertexArrays).setInputArraySize(
160    'arrays', None
161)
162glGenVertexArrays=wrapper.wrapper(glGenVertexArrays).setOutput(
163    'arrays',size=lambda x:(x,),pnameArg='n',orPassIn=True
164)
165### END AUTOGENERATED SECTION
166from ctypes import c_char_p
167glGetStringi.restype = c_char_p
168
169from OpenGL.GL.ARB.vertex_array_object import *
170from OpenGL.GL.ARB.texture_buffer_object import *
171from OpenGL.GL.ARB.framebuffer_object import *
172from OpenGL.GL.ARB.map_buffer_range import *
173
174glGenVertexArrays = wrapper.wrapper(glGenVertexArrays).setOutput(
175    'arrays', lambda n: (n,), 'n', arrayType = arrays.GLuintArray,
176    orPassIn=True,
177)
178