summaryrefslogtreecommitdiff
path: root/GL.hs
diff options
context:
space:
mode:
authorJoe Crayne <joe@jerkface.net>2019-04-08 04:49:42 -0400
committerJoe Crayne <joe@jerkface.net>2019-04-08 04:49:42 -0400
commitcc72127ea0bd416174cdc2aca7c8cc978e106aed (patch)
treedcc87e3b1c5c253175c0c20fef098f4e6ecb1be6 /GL.hs
parentb52fd6c61ec7bec3ff4eea80e7a24bff53a30425 (diff)
GL instrumented debug wrapper.
Diffstat (limited to 'GL.hs')
-rw-r--r--GL.hs241
1 files changed, 241 insertions, 0 deletions
diff --git a/GL.hs b/GL.hs
new file mode 100644
index 0000000..64b5d0d
--- /dev/null
+++ b/GL.hs
@@ -0,0 +1,241 @@
1{-# LANGUAGE PatternSynonyms #-}
2module GL
3 ( C.GLboolean
4 , C.GLenum
5 , C.GLint
6 , C.GLuint
7 , pattern C.GL_ARRAY_BUFFER
8 , pattern C.GL_BACK
9 , pattern C.GL_BACK_LEFT
10 , pattern C.GL_BLEND
11 , pattern C.GL_COLOR
12 , pattern C.GL_COLOR_ATTACHMENT0
13 , pattern C.GL_COLOR_BUFFER_BIT
14 , pattern C.GL_COLOR_LOGIC_OP
15 , pattern C.GL_CULL_FACE
16 , pattern C.GL_DEPTH_ATTACHMENT
17 , pattern C.GL_DEPTH_BUFFER_BIT
18 , pattern C.GL_DEPTH_TEST
19 , pattern C.GL_DRAW_FRAMEBUFFER
20 , pattern C.GL_ELEMENT_ARRAY_BUFFER
21 , pattern C.GL_FALSE
22 , pattern C.GL_FILL
23 , pattern C.GL_FIRST_VERTEX_CONVENTION
24 , pattern C.GL_FRAGMENT_SHADER
25 , pattern C.GL_FRONT
26 , pattern C.GL_FRONT_AND_BACK
27 , pattern C.GL_GEOMETRY_SHADER
28 , pattern C.GL_LAST_VERTEX_CONVENTION
29 , pattern C.GL_LINE
30 , pattern C.GL_LOWER_LEFT
31 , pattern C.GL_NONE
32 , pattern C.GL_POINT
33 , pattern C.GL_POINT_FADE_THRESHOLD_SIZE
34 , pattern C.GL_POINT_SPRITE_COORD_ORIGIN
35 , pattern C.GL_POLYGON_OFFSET_FILL
36 , pattern C.GL_POLYGON_OFFSET_LINE
37 , pattern C.GL_POLYGON_OFFSET_POINT
38 , pattern C.GL_PROGRAM_POINT_SIZE
39 , pattern C.GL_STENCIL_BUFFER_BIT
40 , pattern C.GL_STENCIL_TEST
41 , pattern C.GL_TEXTURE0
42 , pattern C.GL_TRUE
43 , pattern C.GL_UPPER_LEFT
44 , pattern C.GL_VERTEX_SHADER
45 , pattern C.GL_LINK_STATUS
46 , pattern C.GL_CW
47 , pattern C.GL_CCW
48 , module GL
49 ) where
50
51import Control.Monad.IO.Class
52import qualified Graphics.GL.Core33 as C
53import Foreign.Ptr
54
55ind0 :: a -> a
56ind0 = id
57
58ind1 :: (t1 -> t2) -> t1 -> t2
59ind1 f a = f a
60
61ind2 :: (t1 -> t2 -> t3) -> t1 -> t2 -> t3
62ind2 f a b = f a b
63
64ind3 :: (t1 -> t2 -> t3 -> t4) -> t1 -> t2 -> t3 -> t4
65ind3 f a b c = f a b c
66
67ind4 :: (t1 -> t2 -> t3 -> t4 -> t5) -> t1 -> t2 -> t3 -> t4 -> t5
68ind4 f a b c d = f a b c d
69
70ind5 :: (t1 -> t2 -> t3 -> t4 -> t5 -> t6)
71 -> t1 -> t2 -> t3 -> t4 -> t5 -> t6
72ind5 f a b c d e = f a b c d e
73
74glCreateProgram :: MonadIO m => m C.GLuint
75glCreateProgram = ind0 C.glCreateProgram
76
77glActiveTexture :: MonadIO m =>
78 C.GLenum -> m ()
79glActiveTexture = ind1 C.glActiveTexture
80glBindVertexArray :: MonadIO m =>
81 C.GLuint -> m ()
82glBindVertexArray = ind1 C.glBindVertexArray
83glClearDepth :: MonadIO m =>
84 C.GLdouble -> m ()
85glClearDepth = ind1 C.glClearDepth
86glClear :: MonadIO m => C.GLbitfield -> m ()
87glClear = ind1 C.glClear
88glClearStencil :: MonadIO m =>
89 C.GLint -> m ()
90glClearStencil = ind1 C.glClearStencil
91glCreateShader :: MonadIO m =>
92 C.GLenum -> m C.GLuint
93glCreateShader = ind1 C.glCreateShader
94glCullFace :: MonadIO m => C.GLenum -> m ()
95glCullFace = ind1 C.glCullFace
96glDeleteProgram :: MonadIO m =>
97 C.GLuint -> m ()
98glDeleteProgram = ind1 C.glDeleteProgram
99glDeleteShader :: MonadIO m =>
100 C.GLuint -> m ()
101glDeleteShader = ind1 C.glDeleteShader
102glDepthFunc :: MonadIO m => C.GLenum -> m ()
103glDepthFunc = ind1 C.glDepthFunc
104glDepthMask :: MonadIO m =>
105 C.GLboolean -> m ()
106glDepthMask = ind1 C.glDepthMask
107glDisable :: MonadIO m => C.GLenum -> m ()
108glDisable = ind1 C.glDisable
109glEnable :: MonadIO m => C.GLenum -> m ()
110glEnable = ind1 C.glEnable
111glEnableVertexAttribArray :: MonadIO m =>
112 C.GLuint -> m ()
113glEnableVertexAttribArray = ind1 C.glEnableVertexAttribArray
114glFrontFace :: MonadIO m => C.GLenum -> m ()
115glFrontFace = ind1 C.glFrontFace
116glLineWidth :: MonadIO m =>
117 C.GLfloat -> m ()
118glLineWidth = ind1 C.glLineWidth
119glLinkProgram :: MonadIO m =>
120 C.GLuint -> m ()
121glLinkProgram = ind1 C.glLinkProgram
122glLogicOp :: MonadIO m => C.GLenum -> m ()
123glLogicOp = ind1 C.glLogicOp
124glPointSize :: MonadIO m =>
125 C.GLfloat -> m ()
126glPointSize = ind1 C.glPointSize
127glProvokingVertex :: MonadIO m =>
128 C.GLenum -> m ()
129glProvokingVertex = ind1 C.glProvokingVertex
130glUseProgram :: MonadIO m =>
131 C.GLuint -> m ()
132glUseProgram = ind1 C.glUseProgram
133
134glAttachShader :: MonadIO m =>
135 C.GLuint -> C.GLuint -> m ()
136glAttachShader = ind2 C.glAttachShader
137glBindBuffer :: MonadIO m =>
138 C.GLenum -> C.GLuint -> m ()
139glBindBuffer = ind2 C.glBindBuffer
140glBindSampler :: MonadIO m =>
141 C.GLuint -> C.GLuint -> m ()
142glBindSampler = ind2 C.glBindSampler
143glBindTexture :: MonadIO m =>
144 C.GLenum -> C.GLuint -> m ()
145glBindTexture = ind2 C.glBindTexture
146glPolygonMode :: MonadIO m =>
147 C.GLenum -> C.GLenum -> m ()
148glPolygonMode = ind2 C.glPolygonMode
149
150
151
152glDisableVertexAttribArray :: MonadIO m => C.GLuint -> m ()
153glDisableVertexAttribArray = ind1 C.glDisableVertexAttribArray
154
155glBindFramebuffer :: MonadIO m => C.GLenum -> C.GLuint -> m ()
156glBindFramebuffer = ind2 C.glBindFramebuffer
157glBlendEquationSeparate :: MonadIO m =>
158 C.GLenum -> C.GLenum -> m ()
159glBlendEquationSeparate = ind2 C.glBlendEquationSeparate
160glDeleteFramebuffers :: MonadIO m =>
161 C.GLsizei -> Ptr C.GLuint -> m ()
162glDeleteFramebuffers = ind2 C.glDeleteFramebuffers
163glDeleteSamplers :: MonadIO m =>
164 C.GLsizei -> Ptr C.GLuint -> m ()
165glDeleteSamplers = ind2 C.glDeleteSamplers
166glDeleteTextures :: MonadIO m =>
167 C.GLsizei -> Ptr C.GLuint -> m ()
168glDeleteTextures = ind2 C.glDeleteTextures
169glDeleteVertexArrays :: MonadIO m =>
170 C.GLsizei -> Ptr C.GLuint -> m ()
171glDeleteVertexArrays = ind2 C.glDeleteVertexArrays
172glDrawBuffers :: MonadIO m =>
173 C.GLsizei -> Ptr C.GLenum -> m ()
174glDrawBuffers = ind2 C.glDrawBuffers
175glGenFramebuffers :: MonadIO m =>
176 C.GLsizei -> Ptr C.GLuint -> m ()
177glGenFramebuffers = ind2 C.glGenFramebuffers
178glGenVertexArrays :: MonadIO m =>
179 C.GLsizei -> Ptr C.GLuint -> m ()
180glGenVertexArrays = ind2 C.glGenVertexArrays
181glPointParameterf :: MonadIO m => C.GLenum -> C.GLfloat -> m ()
182glPointParameterf = ind2 C.glPointParameterf
183glPolygonOffset :: MonadIO m => C.GLfloat -> C.GLfloat -> m ()
184glPolygonOffset = ind2 C.glPolygonOffset
185glUniform1i :: MonadIO m => C.GLint -> C.GLint -> m ()
186glUniform1i = ind2 C.glUniform1i
187
188glBindFragDataLocation :: MonadIO m =>
189 C.GLuint -> C.GLuint -> Ptr C.GLchar -> m ()
190glBindFragDataLocation = ind3 C.glBindFragDataLocation
191glClearBufferfv :: MonadIO m =>
192 C.GLenum -> C.GLint -> Ptr C.GLfloat -> m ()
193glClearBufferfv = ind3 C.glClearBufferfv
194glClearBufferiv :: MonadIO m =>
195 C.GLenum -> C.GLint -> Ptr C.GLint -> m ()
196glClearBufferiv = ind3 C.glClearBufferiv
197
198glClearColor :: MonadIO m =>
199 C.GLfloat -> C.GLfloat -> C.GLfloat -> C.GLfloat -> m ()
200glClearColor = ind4 C.glClearColor
201glColorMask :: MonadIO m =>
202 C.GLboolean -> C.GLboolean -> C.GLboolean -> C.GLboolean -> m ()
203glColorMask = ind4 C.glColorMask
204glFramebufferTexture :: MonadIO m =>
205 C.GLenum -> C.GLenum -> C.GLuint -> C.GLint -> m ()
206glFramebufferTexture = ind4 C.glFramebufferTexture
207glViewport :: MonadIO m =>
208 C.GLint -> C.GLint -> C.GLsizei -> C.GLsizei -> m ()
209glViewport = ind4 C.glViewport
210glBlendColor :: MonadIO m =>
211 C.GLfloat -> C.GLfloat -> C.GLfloat -> C.GLfloat -> m ()
212glBlendColor = ind4 C.glBlendColor
213
214glVertexAttribPointer :: MonadIO m =>
215 C.GLuint
216 -> C.GLint -> C.GLenum -> C.GLboolean -> C.GLsizei -> Ptr a -> m ()
217glVertexAttribPointer = ind0 C.glVertexAttribPointer
218
219glDrawArrays :: MonadIO m =>
220 C.GLenum -> C.GLint -> C.GLsizei -> m ()
221glDrawArrays = ind3 C.glDrawArrays
222
223glBlendFuncSeparate :: MonadIO m =>
224 C.GLenum -> C.GLenum -> C.GLenum -> C.GLenum -> m ()
225glBlendFuncSeparate = ind4 C.glBlendFuncSeparate
226glDrawElements :: MonadIO m =>
227 C.GLenum -> C.GLsizei -> C.GLenum -> Ptr a -> m ()
228glDrawElements = ind4 C.glDrawElements
229
230glVertexAttribIPointer :: MonadIO m =>
231 C.GLuint -> C.GLint -> C.GLenum -> C.GLsizei -> Ptr a -> m ()
232glVertexAttribIPointer = ind5 C.glVertexAttribIPointer
233glFramebufferTexture1D :: MonadIO m =>
234 C.GLenum -> C.GLenum -> C.GLenum -> C.GLuint -> C.GLint -> m ()
235glFramebufferTexture1D = ind5 C.glFramebufferTexture1D
236glFramebufferTexture2D :: MonadIO m =>
237 C.GLenum -> C.GLenum -> C.GLenum -> C.GLuint -> C.GLint -> m ()
238glFramebufferTexture2D = ind5 C.glFramebufferTexture2D
239glFramebufferTextureLayer :: MonadIO m =>
240 C.GLenum -> C.GLenum -> C.GLuint -> C.GLint -> C.GLint -> m ()
241glFramebufferTextureLayer = ind5 C.glFramebufferTextureLayer