Export symbols; document the public interface.
This commit is contained in:
parent
c93a329c0c
commit
53716cae85
1 changed files with 20 additions and 9 deletions
|
|
@ -269,37 +269,48 @@ type
|
||||||
gleOutOfMem = (0x0505, "out of memory")
|
gleOutOfMem = (0x0505, "out of memory")
|
||||||
gleInvalidFramebufferOperation = (0x0506, "invalid framebuffer operation")
|
gleInvalidFramebufferOperation = (0x0506, "invalid framebuffer operation")
|
||||||
gleTableTooLarge = (0x8031, "table too large")
|
gleTableTooLarge = (0x8031, "table too large")
|
||||||
gleUnknown = (0x384623812, "unknown")
|
|
||||||
|
|
||||||
proc glGetError*: TGLenum {.stdcall, importc, ogl.}
|
proc glGetError*: TGLenum {.stdcall, importc, ogl.}
|
||||||
proc getGlError*: TGlError = glGetError().TGlError
|
proc getGlError*: TGlError = glGetError().TGlError
|
||||||
|
## Like `glGetError` but returns an enumerator instead.
|
||||||
|
|
||||||
type
|
type
|
||||||
E_GL* = object of E_Base
|
E_GL* = object of E_Base
|
||||||
code*: TGlError
|
## An exception for OpenGL errors.
|
||||||
|
code*: TGlError ## The error code. This might be invalid for two reasons:
|
||||||
|
## an outdated list of errors or a bad driver.
|
||||||
|
|
||||||
proc checkGlError =
|
proc checkGlError* =
|
||||||
|
## Raise `E_GL` if the last call to an OpenGL function generated an error.
|
||||||
|
## You might want to call this once every frame for example if automatic
|
||||||
|
## error checking has been disabled.
|
||||||
let error = getGlError()
|
let error = getGlError()
|
||||||
if error == gleNoError:
|
if error == gleNoError:
|
||||||
return
|
return
|
||||||
|
|
||||||
var
|
var
|
||||||
exc = new(E_GL)
|
exc = new(E_GL)
|
||||||
exc.code = gleUnknown
|
|
||||||
exc.msg = "OpenGL error: unknown"
|
|
||||||
for e in TGlError:
|
for e in TGlError:
|
||||||
if e == error and e != gleUnknown:
|
if e == error:
|
||||||
exc.msg = "OpenGL error: " & $e
|
exc.msg = "OpenGL error: " & $e
|
||||||
exc.code = e
|
raise exc
|
||||||
break
|
|
||||||
|
|
||||||
|
exc.code = error
|
||||||
|
exc.msg = "OpenGL error: unknown (" & $error & ")"
|
||||||
raise exc
|
raise exc
|
||||||
|
|
||||||
const NoGlAutoErrorCheck = defined(noGlAutoErrorCheck)
|
const
|
||||||
|
NoGlAutoErrorCheck* = defined(noGlAutoErrorCheck) #\
|
||||||
|
## This determines whether an exception should be raised if an OpenGL call
|
||||||
|
## generates an error. No additional code will be generated when
|
||||||
|
## `noGlAutoErrorCheck` has been defined.
|
||||||
|
|
||||||
var glAutoErrorCheck = true
|
var glAutoErrorCheck = true
|
||||||
|
|
||||||
proc enableGlAutoErrorCheck*(yes: bool) =
|
proc enableGlAutoErrorCheck*(yes: bool) =
|
||||||
|
## This determines whether an exception should be raised if an OpenGL call
|
||||||
|
## generates an error. This has no effect when
|
||||||
|
## ``NoGlAutoErrorCheck == true``.
|
||||||
glAutoErrorCheck = yes
|
glAutoErrorCheck = yes
|
||||||
|
|
||||||
macro wrapErrorChecking(f: stmt): stmt =
|
macro wrapErrorChecking(f: stmt): stmt =
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue