(bind-func gl_print_error
(lambda (msg:i8*)
(let ((err (glGetError)))
(cond
((= err GL_INVALID_ENUM)
(printf "%s: Invalid Enum\n" msg))
((= err GL_INVALID_VALUE)
(printf "%s: Invalid Value\n" msg))
((= err GL_INVALID_OPERATION)
(printf "%s: Invalid Operation\n" msg))
((= err GL_OUT_OF_MEMORY)
(printf "%s: Out Of Memory\n" msg))
((= err GL_INVALID_FRAMEBUFFER_OPERATION)
(printf "%s: Invalid Framebuffer Operation\n" msg))
((= err GL_NO_ERROR)
1:i32)
(else
(printf "%s\n" msg)))
void)))