summaryrefslogtreecommitdiff
path: root/GL.hs
diff options
context:
space:
mode:
authorJoe Crayne <joe@jerkface.net>2019-04-08 04:57:43 -0400
committerJoe Crayne <joe@jerkface.net>2019-04-08 04:57:43 -0400
commit731bffa2d5111bd3494868287ea5b4f491ddee40 (patch)
tree47c371b5c7fc217ad75518864fddaddcb2e18fbd /GL.hs
parentcc72127ea0bd416174cdc2aca7c8cc978e106aed (diff)
Added traces to GL-wrapper.
Diffstat (limited to 'GL.hs')
-rw-r--r--GL.hs160
1 files changed, 87 insertions, 73 deletions
diff --git a/GL.hs b/GL.hs
index 64b5d0d..722a51f 100644
--- a/GL.hs
+++ b/GL.hs
@@ -48,194 +48,208 @@ module GL
48 , module GL 48 , module GL
49 ) where 49 ) where
50 50
51import Debug.Trace
51import Control.Monad.IO.Class 52import Control.Monad.IO.Class
52import qualified Graphics.GL.Core33 as C 53import qualified Graphics.GL.Core33 as C
53import Foreign.Ptr 54import Foreign.Ptr
54 55
55ind0 :: a -> a 56ind0 :: String -> a -> a
56ind0 = id 57ind0 l = trace l $ id
57 58
58ind1 :: (t1 -> t2) -> t1 -> t2 59ind1 :: Show t1 => String -> (t1 -> t2) -> t1 -> t2
59ind1 f a = f a 60ind1 l f a = trace s $ f a
60 61 where
61ind2 :: (t1 -> t2 -> t3) -> t1 -> t2 -> t3 62 s = unwords [l,show a]
62ind2 f a b = f a b 63
63 64ind2 :: ( Show t1, Show t2 ) => String -> (t1 -> t2 -> t3) -> t1 -> t2 -> t3
64ind3 :: (t1 -> t2 -> t3 -> t4) -> t1 -> t2 -> t3 -> t4 65ind2 l f a b = trace s $ f a b
65ind3 f a b c = f a b c 66 where
66 67 s = unwords [l,show a,show b]
67ind4 :: (t1 -> t2 -> t3 -> t4 -> t5) -> t1 -> t2 -> t3 -> t4 -> t5 68
68ind4 f a b c d = f a b c d 69ind3 :: ( Show t1, Show t2, Show t3
69 70 ) => String -> (t1 -> t2 -> t3 -> t4) -> t1 -> t2 -> t3 -> t4
70ind5 :: (t1 -> t2 -> t3 -> t4 -> t5 -> t6) 71ind3 l f a b c = trace s $ f a b c
72 where
73 s = unwords [l,show a,show b,show c]
74
75ind4 :: ( Show t1, Show t2, Show t3, Show t4 )
76 => String -> (t1 -> t2 -> t3 -> t4 -> t5) -> t1 -> t2 -> t3 -> t4 -> t5
77ind4 l f a b c d = trace s $ f a b c d
78 where
79 s = unwords [l,show a,show b,show c,show d]
80
81ind5 :: ( Show t1, Show t2, Show t3, Show t4, Show t5 )
82 => String -> (t1 -> t2 -> t3 -> t4 -> t5 -> t6)
71 -> t1 -> t2 -> t3 -> t4 -> t5 -> t6 83 -> t1 -> t2 -> t3 -> t4 -> t5 -> t6
72ind5 f a b c d e = f a b c d e 84ind5 l f a b c d e = trace s $ f a b c d e
85 where
86 s = unwords [l,show a,show b,show c,show d,show e]
73 87
74glCreateProgram :: MonadIO m => m C.GLuint 88glCreateProgram :: MonadIO m => m C.GLuint
75glCreateProgram = ind0 C.glCreateProgram 89glCreateProgram = ind0 "glCreateProgram" C.glCreateProgram
76 90
77glActiveTexture :: MonadIO m => 91glActiveTexture :: MonadIO m =>
78 C.GLenum -> m () 92 C.GLenum -> m ()
79glActiveTexture = ind1 C.glActiveTexture 93glActiveTexture = ind1 "glActiveTexture" C.glActiveTexture
80glBindVertexArray :: MonadIO m => 94glBindVertexArray :: MonadIO m =>
81 C.GLuint -> m () 95 C.GLuint -> m ()
82glBindVertexArray = ind1 C.glBindVertexArray 96glBindVertexArray = ind1 "glBindVertexArray" C.glBindVertexArray
83glClearDepth :: MonadIO m => 97glClearDepth :: MonadIO m =>
84 C.GLdouble -> m () 98 C.GLdouble -> m ()
85glClearDepth = ind1 C.glClearDepth 99glClearDepth = ind1 "glClearDepth" C.glClearDepth
86glClear :: MonadIO m => C.GLbitfield -> m () 100glClear :: MonadIO m => C.GLbitfield -> m ()
87glClear = ind1 C.glClear 101glClear = ind1 "glClear" C.glClear
88glClearStencil :: MonadIO m => 102glClearStencil :: MonadIO m =>
89 C.GLint -> m () 103 C.GLint -> m ()
90glClearStencil = ind1 C.glClearStencil 104glClearStencil = ind1 "glClearStencil" C.glClearStencil
91glCreateShader :: MonadIO m => 105glCreateShader :: MonadIO m =>
92 C.GLenum -> m C.GLuint 106 C.GLenum -> m C.GLuint
93glCreateShader = ind1 C.glCreateShader 107glCreateShader = ind1 "glCreateShader" C.glCreateShader
94glCullFace :: MonadIO m => C.GLenum -> m () 108glCullFace :: MonadIO m => C.GLenum -> m ()
95glCullFace = ind1 C.glCullFace 109glCullFace = ind1 "glCullFace" C.glCullFace
96glDeleteProgram :: MonadIO m => 110glDeleteProgram :: MonadIO m =>
97 C.GLuint -> m () 111 C.GLuint -> m ()
98glDeleteProgram = ind1 C.glDeleteProgram 112glDeleteProgram = ind1 "glDeleteProgram" C.glDeleteProgram
99glDeleteShader :: MonadIO m => 113glDeleteShader :: MonadIO m =>
100 C.GLuint -> m () 114 C.GLuint -> m ()
101glDeleteShader = ind1 C.glDeleteShader 115glDeleteShader = ind1 "glDeleteShader" C.glDeleteShader
102glDepthFunc :: MonadIO m => C.GLenum -> m () 116glDepthFunc :: MonadIO m => C.GLenum -> m ()
103glDepthFunc = ind1 C.glDepthFunc 117glDepthFunc = ind1 "glDepthFunc" C.glDepthFunc
104glDepthMask :: MonadIO m => 118glDepthMask :: MonadIO m =>
105 C.GLboolean -> m () 119 C.GLboolean -> m ()
106glDepthMask = ind1 C.glDepthMask 120glDepthMask = ind1 "glDepthMask" C.glDepthMask
107glDisable :: MonadIO m => C.GLenum -> m () 121glDisable :: MonadIO m => C.GLenum -> m ()
108glDisable = ind1 C.glDisable 122glDisable = ind1 "glDisable" C.glDisable
109glEnable :: MonadIO m => C.GLenum -> m () 123glEnable :: MonadIO m => C.GLenum -> m ()
110glEnable = ind1 C.glEnable 124glEnable = ind1 "glEnable" C.glEnable
111glEnableVertexAttribArray :: MonadIO m => 125glEnableVertexAttribArray :: MonadIO m =>
112 C.GLuint -> m () 126 C.GLuint -> m ()
113glEnableVertexAttribArray = ind1 C.glEnableVertexAttribArray 127glEnableVertexAttribArray = ind1 "glEnableVertexAttribArray" C.glEnableVertexAttribArray
114glFrontFace :: MonadIO m => C.GLenum -> m () 128glFrontFace :: MonadIO m => C.GLenum -> m ()
115glFrontFace = ind1 C.glFrontFace 129glFrontFace = ind1 "glFrontFace" C.glFrontFace
116glLineWidth :: MonadIO m => 130glLineWidth :: MonadIO m =>
117 C.GLfloat -> m () 131 C.GLfloat -> m ()
118glLineWidth = ind1 C.glLineWidth 132glLineWidth = ind1 "glLineWidth" C.glLineWidth
119glLinkProgram :: MonadIO m => 133glLinkProgram :: MonadIO m =>
120 C.GLuint -> m () 134 C.GLuint -> m ()
121glLinkProgram = ind1 C.glLinkProgram 135glLinkProgram = ind1 "glLinkProgram" C.glLinkProgram
122glLogicOp :: MonadIO m => C.GLenum -> m () 136glLogicOp :: MonadIO m => C.GLenum -> m ()
123glLogicOp = ind1 C.glLogicOp 137glLogicOp = ind1 "glLogicOp" C.glLogicOp
124glPointSize :: MonadIO m => 138glPointSize :: MonadIO m =>
125 C.GLfloat -> m () 139 C.GLfloat -> m ()
126glPointSize = ind1 C.glPointSize 140glPointSize = ind1 "glPointSize" C.glPointSize
127glProvokingVertex :: MonadIO m => 141glProvokingVertex :: MonadIO m =>
128 C.GLenum -> m () 142 C.GLenum -> m ()
129glProvokingVertex = ind1 C.glProvokingVertex 143glProvokingVertex = ind1 "glProvokingVertex" C.glProvokingVertex
130glUseProgram :: MonadIO m => 144glUseProgram :: MonadIO m =>
131 C.GLuint -> m () 145 C.GLuint -> m ()
132glUseProgram = ind1 C.glUseProgram 146glUseProgram = ind1 "glUseProgram" C.glUseProgram
133 147
134glAttachShader :: MonadIO m => 148glAttachShader :: MonadIO m =>
135 C.GLuint -> C.GLuint -> m () 149 C.GLuint -> C.GLuint -> m ()
136glAttachShader = ind2 C.glAttachShader 150glAttachShader = ind2 "glAttachShader" C.glAttachShader
137glBindBuffer :: MonadIO m => 151glBindBuffer :: MonadIO m =>
138 C.GLenum -> C.GLuint -> m () 152 C.GLenum -> C.GLuint -> m ()
139glBindBuffer = ind2 C.glBindBuffer 153glBindBuffer = ind2 "glBindBuffer" C.glBindBuffer
140glBindSampler :: MonadIO m => 154glBindSampler :: MonadIO m =>
141 C.GLuint -> C.GLuint -> m () 155 C.GLuint -> C.GLuint -> m ()
142glBindSampler = ind2 C.glBindSampler 156glBindSampler = ind2 "glBindSampler" C.glBindSampler
143glBindTexture :: MonadIO m => 157glBindTexture :: MonadIO m =>
144 C.GLenum -> C.GLuint -> m () 158 C.GLenum -> C.GLuint -> m ()
145glBindTexture = ind2 C.glBindTexture 159glBindTexture = ind2 "glBindTexture" C.glBindTexture
146glPolygonMode :: MonadIO m => 160glPolygonMode :: MonadIO m =>
147 C.GLenum -> C.GLenum -> m () 161 C.GLenum -> C.GLenum -> m ()
148glPolygonMode = ind2 C.glPolygonMode 162glPolygonMode = ind2 "glPolygonMode" C.glPolygonMode
149 163
150 164
151 165
152glDisableVertexAttribArray :: MonadIO m => C.GLuint -> m () 166glDisableVertexAttribArray :: MonadIO m => C.GLuint -> m ()
153glDisableVertexAttribArray = ind1 C.glDisableVertexAttribArray 167glDisableVertexAttribArray = ind1 "glDisableVertexAttribArray" C.glDisableVertexAttribArray
154 168
155glBindFramebuffer :: MonadIO m => C.GLenum -> C.GLuint -> m () 169glBindFramebuffer :: MonadIO m => C.GLenum -> C.GLuint -> m ()
156glBindFramebuffer = ind2 C.glBindFramebuffer 170glBindFramebuffer = ind2 "glBindFramebuffer" C.glBindFramebuffer
157glBlendEquationSeparate :: MonadIO m => 171glBlendEquationSeparate :: MonadIO m =>
158 C.GLenum -> C.GLenum -> m () 172 C.GLenum -> C.GLenum -> m ()
159glBlendEquationSeparate = ind2 C.glBlendEquationSeparate 173glBlendEquationSeparate = ind2 "glBlendEquationSeparate" C.glBlendEquationSeparate
160glDeleteFramebuffers :: MonadIO m => 174glDeleteFramebuffers :: MonadIO m =>
161 C.GLsizei -> Ptr C.GLuint -> m () 175 C.GLsizei -> Ptr C.GLuint -> m ()
162glDeleteFramebuffers = ind2 C.glDeleteFramebuffers 176glDeleteFramebuffers = ind2 "glDeleteFramebuffers" C.glDeleteFramebuffers
163glDeleteSamplers :: MonadIO m => 177glDeleteSamplers :: MonadIO m =>
164 C.GLsizei -> Ptr C.GLuint -> m () 178 C.GLsizei -> Ptr C.GLuint -> m ()
165glDeleteSamplers = ind2 C.glDeleteSamplers 179glDeleteSamplers = ind2 "glDeleteSamplers" C.glDeleteSamplers
166glDeleteTextures :: MonadIO m => 180glDeleteTextures :: MonadIO m =>
167 C.GLsizei -> Ptr C.GLuint -> m () 181 C.GLsizei -> Ptr C.GLuint -> m ()
168glDeleteTextures = ind2 C.glDeleteTextures 182glDeleteTextures = ind2 "glDeleteTextures" C.glDeleteTextures
169glDeleteVertexArrays :: MonadIO m => 183glDeleteVertexArrays :: MonadIO m =>
170 C.GLsizei -> Ptr C.GLuint -> m () 184 C.GLsizei -> Ptr C.GLuint -> m ()
171glDeleteVertexArrays = ind2 C.glDeleteVertexArrays 185glDeleteVertexArrays = ind2 "glDeleteVertexArrays" C.glDeleteVertexArrays
172glDrawBuffers :: MonadIO m => 186glDrawBuffers :: MonadIO m =>
173 C.GLsizei -> Ptr C.GLenum -> m () 187 C.GLsizei -> Ptr C.GLenum -> m ()
174glDrawBuffers = ind2 C.glDrawBuffers 188glDrawBuffers = ind2 "glDrawBuffers" C.glDrawBuffers
175glGenFramebuffers :: MonadIO m => 189glGenFramebuffers :: MonadIO m =>
176 C.GLsizei -> Ptr C.GLuint -> m () 190 C.GLsizei -> Ptr C.GLuint -> m ()
177glGenFramebuffers = ind2 C.glGenFramebuffers 191glGenFramebuffers = ind2 "glGenFramebuffers" C.glGenFramebuffers
178glGenVertexArrays :: MonadIO m => 192glGenVertexArrays :: MonadIO m =>
179 C.GLsizei -> Ptr C.GLuint -> m () 193 C.GLsizei -> Ptr C.GLuint -> m ()
180glGenVertexArrays = ind2 C.glGenVertexArrays 194glGenVertexArrays = ind2 "glGenVertexArrays" C.glGenVertexArrays
181glPointParameterf :: MonadIO m => C.GLenum -> C.GLfloat -> m () 195glPointParameterf :: MonadIO m => C.GLenum -> C.GLfloat -> m ()
182glPointParameterf = ind2 C.glPointParameterf 196glPointParameterf = ind2 "glPointParameterf" C.glPointParameterf
183glPolygonOffset :: MonadIO m => C.GLfloat -> C.GLfloat -> m () 197glPolygonOffset :: MonadIO m => C.GLfloat -> C.GLfloat -> m ()
184glPolygonOffset = ind2 C.glPolygonOffset 198glPolygonOffset = ind2 "glPolygonOffset" C.glPolygonOffset
185glUniform1i :: MonadIO m => C.GLint -> C.GLint -> m () 199glUniform1i :: MonadIO m => C.GLint -> C.GLint -> m ()
186glUniform1i = ind2 C.glUniform1i 200glUniform1i = ind2 "glUniform1i" C.glUniform1i
187 201
188glBindFragDataLocation :: MonadIO m => 202glBindFragDataLocation :: MonadIO m =>
189 C.GLuint -> C.GLuint -> Ptr C.GLchar -> m () 203 C.GLuint -> C.GLuint -> Ptr C.GLchar -> m ()
190glBindFragDataLocation = ind3 C.glBindFragDataLocation 204glBindFragDataLocation = ind3 "glBindFragDataLocation" C.glBindFragDataLocation
191glClearBufferfv :: MonadIO m => 205glClearBufferfv :: MonadIO m =>
192 C.GLenum -> C.GLint -> Ptr C.GLfloat -> m () 206 C.GLenum -> C.GLint -> Ptr C.GLfloat -> m ()
193glClearBufferfv = ind3 C.glClearBufferfv 207glClearBufferfv = ind3 "glClearBufferfv" C.glClearBufferfv
194glClearBufferiv :: MonadIO m => 208glClearBufferiv :: MonadIO m =>
195 C.GLenum -> C.GLint -> Ptr C.GLint -> m () 209 C.GLenum -> C.GLint -> Ptr C.GLint -> m ()
196glClearBufferiv = ind3 C.glClearBufferiv 210glClearBufferiv = ind3 "glClearBufferiv" C.glClearBufferiv
197 211
198glClearColor :: MonadIO m => 212glClearColor :: MonadIO m =>
199 C.GLfloat -> C.GLfloat -> C.GLfloat -> C.GLfloat -> m () 213 C.GLfloat -> C.GLfloat -> C.GLfloat -> C.GLfloat -> m ()
200glClearColor = ind4 C.glClearColor 214glClearColor = ind4 "glClearColor" C.glClearColor
201glColorMask :: MonadIO m => 215glColorMask :: MonadIO m =>
202 C.GLboolean -> C.GLboolean -> C.GLboolean -> C.GLboolean -> m () 216 C.GLboolean -> C.GLboolean -> C.GLboolean -> C.GLboolean -> m ()
203glColorMask = ind4 C.glColorMask 217glColorMask = ind4 "glColorMask" C.glColorMask
204glFramebufferTexture :: MonadIO m => 218glFramebufferTexture :: MonadIO m =>
205 C.GLenum -> C.GLenum -> C.GLuint -> C.GLint -> m () 219 C.GLenum -> C.GLenum -> C.GLuint -> C.GLint -> m ()
206glFramebufferTexture = ind4 C.glFramebufferTexture 220glFramebufferTexture = ind4 "glFramebufferTexture" C.glFramebufferTexture
207glViewport :: MonadIO m => 221glViewport :: MonadIO m =>
208 C.GLint -> C.GLint -> C.GLsizei -> C.GLsizei -> m () 222 C.GLint -> C.GLint -> C.GLsizei -> C.GLsizei -> m ()
209glViewport = ind4 C.glViewport 223glViewport = ind4 "glViewport" C.glViewport
210glBlendColor :: MonadIO m => 224glBlendColor :: MonadIO m =>
211 C.GLfloat -> C.GLfloat -> C.GLfloat -> C.GLfloat -> m () 225 C.GLfloat -> C.GLfloat -> C.GLfloat -> C.GLfloat -> m ()
212glBlendColor = ind4 C.glBlendColor 226glBlendColor = ind4 "glBlendColor" C.glBlendColor
213 227
214glVertexAttribPointer :: MonadIO m => 228glVertexAttribPointer :: MonadIO m =>
215 C.GLuint 229 C.GLuint
216 -> C.GLint -> C.GLenum -> C.GLboolean -> C.GLsizei -> Ptr a -> m () 230 -> C.GLint -> C.GLenum -> C.GLboolean -> C.GLsizei -> Ptr a -> m ()
217glVertexAttribPointer = ind0 C.glVertexAttribPointer 231glVertexAttribPointer = ind0 "glVertexAttribPointer" C.glVertexAttribPointer
218 232
219glDrawArrays :: MonadIO m => 233glDrawArrays :: MonadIO m =>
220 C.GLenum -> C.GLint -> C.GLsizei -> m () 234 C.GLenum -> C.GLint -> C.GLsizei -> m ()
221glDrawArrays = ind3 C.glDrawArrays 235glDrawArrays = ind3 "glDrawArrays" C.glDrawArrays
222 236
223glBlendFuncSeparate :: MonadIO m => 237glBlendFuncSeparate :: MonadIO m =>
224 C.GLenum -> C.GLenum -> C.GLenum -> C.GLenum -> m () 238 C.GLenum -> C.GLenum -> C.GLenum -> C.GLenum -> m ()
225glBlendFuncSeparate = ind4 C.glBlendFuncSeparate 239glBlendFuncSeparate = ind4 "glBlendFuncSeparate" C.glBlendFuncSeparate
226glDrawElements :: MonadIO m => 240glDrawElements :: MonadIO m =>
227 C.GLenum -> C.GLsizei -> C.GLenum -> Ptr a -> m () 241 C.GLenum -> C.GLsizei -> C.GLenum -> Ptr a -> m ()
228glDrawElements = ind4 C.glDrawElements 242glDrawElements = ind4 "glDrawElements" C.glDrawElements
229 243
230glVertexAttribIPointer :: MonadIO m => 244glVertexAttribIPointer :: MonadIO m =>
231 C.GLuint -> C.GLint -> C.GLenum -> C.GLsizei -> Ptr a -> m () 245 C.GLuint -> C.GLint -> C.GLenum -> C.GLsizei -> Ptr a -> m ()
232glVertexAttribIPointer = ind5 C.glVertexAttribIPointer 246glVertexAttribIPointer = ind5 "glVertexAttribIPointer" C.glVertexAttribIPointer
233glFramebufferTexture1D :: MonadIO m => 247glFramebufferTexture1D :: MonadIO m =>
234 C.GLenum -> C.GLenum -> C.GLenum -> C.GLuint -> C.GLint -> m () 248 C.GLenum -> C.GLenum -> C.GLenum -> C.GLuint -> C.GLint -> m ()
235glFramebufferTexture1D = ind5 C.glFramebufferTexture1D 249glFramebufferTexture1D = ind5 "glFramebufferTexture1D" C.glFramebufferTexture1D
236glFramebufferTexture2D :: MonadIO m => 250glFramebufferTexture2D :: MonadIO m =>
237 C.GLenum -> C.GLenum -> C.GLenum -> C.GLuint -> C.GLint -> m () 251 C.GLenum -> C.GLenum -> C.GLenum -> C.GLuint -> C.GLint -> m ()
238glFramebufferTexture2D = ind5 C.glFramebufferTexture2D 252glFramebufferTexture2D = ind5 "glFramebufferTexture2D" C.glFramebufferTexture2D
239glFramebufferTextureLayer :: MonadIO m => 253glFramebufferTextureLayer :: MonadIO m =>
240 C.GLenum -> C.GLenum -> C.GLuint -> C.GLint -> C.GLint -> m () 254 C.GLenum -> C.GLenum -> C.GLuint -> C.GLint -> C.GLint -> m ()
241glFramebufferTextureLayer = ind5 C.glFramebufferTextureLayer 255glFramebufferTextureLayer = ind5 "glFramebufferTextureLayer" C.glFramebufferTextureLayer