OpenGL Error Codes: Difference between revisions

From OpenGL Wiki
Jump to navigation Jump to search
More accurate footnote.
Link fix and formatting.
Line 1: Line 1:
In OpenGL, the function '''glGetError()''' tells you if an error has occurred in a program; for example, if you pass an invalid value to a function. When an error occurs, an error code is saved by the implementation. This error code will be the return value of '''glGetError()''' next time it is called.
In OpenGL, the function '''{{apifunc|glGetError|()}}''' tells you if an error has occurred in a program; for example, if you pass an invalid value to a function. When an error occurs, an error code is saved by the implementation. This error code will be the return value of glGetError() next time it is called.


'''Error Codes''' returned by <code>glGetError()</code>:
'''Error Codes''' returned by {{apifunc|glGetError}}:


* {{code|GL_INVALID_ENUM}}, 0x0500: Given when an enumeration parameter is not a legal enumeration for that function. This is given only for local problems; if the spec allows the enumeration in certain circumstances, and other parameters or state dictate those circumstances, then GL_INVALID_OPERATION is the result instead.
* {{enum|GL_INVALID_ENUM}}, 0x0500: Given when an enumeration parameter is not a legal enumeration for that function. This is given only for local problems; if the spec allows the enumeration in certain circumstances, and other parameters or state dictate those circumstances, then {{enum|GL_INVALID_OPERATION}} is the result instead.
* {{code|GL_INVALID_VALUE}}, 0x0501: Given when a value parameter is not a leval value for that function. This is only given for local problems; if the spec allows the value in certain circumstances, and other parameters or state dictate those circumstances, then GL_INVALID_OPERATION is the result instead.
* {{enum|GL_INVALID_VALUE}}, 0x0501: Given when a value parameter is not a legal value for that function. This is only given for local problems; if the spec allows the value in certain circumstances, and other parameters or state dictate those circumstances, then GL_INVALID_OPERATION is the result instead.
* {{code|GL_INVALID_OPERATION}}, 0x0502: Given when the set of state for a command is not legal for the parameters given to that command. It is also given for commands where combinations of parameters define what the legal parameters are.
* {{enum|GL_INVALID_OPERATION}}, 0x0502: Given when the set of state for a command is not legal for the parameters given to that command. It is also given for commands where combinations of parameters define what the legal parameters are.
* {{code|GL_OUT_OF_MEMORY}}, 0x0503: Given when performing an operation that can allocate memory, but the memory cannot be allocated. The results of OpenGL functions that return this error are undefined; it is allowable for partial operations to happen.
* {{enum|GL_OUT_OF_MEMORY}}, 0x0503: Given when performing an operation that can allocate memory, but the memory cannot be allocated. The results of OpenGL functions that return this error are undefined; it is allowable for partial operations to happen.
* {{code|GL_INVALID_FRAMEBUFFER_OPERATION}}, 0x0506: Given when doing anything that would attempt to read from or write/render to a framebuffer that is [[Framebuffer Objects#Framebuffer Completeness|not complete, as defined here]].
* {{enum|GL_INVALID_FRAMEBUFFER_OPERATION}}, 0x0506: Given when doing anything that would attempt to read from or write/render to a framebuffer that is [[Framebuffer Objects#Framebuffer Completeness|not complete, as defined here]].
* {{code|GL_STACK_OVERFLOW}}<sup>1</sup>, 0x0503: Given when a stack pushing operation cannot be done because it would overflow the limit of that stack's size.
* {{enum|GL_STACK_OVERFLOW}}<sup>1</sup>, 0x0503: Given when a stack pushing operation cannot be done because it would overflow the limit of that stack's size.
* {{code|GL_STACK_UNDERFLOW}}<sup>1</sup>, 0x0504: Given when a stack popping operation cannot be done because the stack is already at its lowest point.
* {{enum|GL_STACK_UNDERFLOW}}<sup>1</sup>, 0x0504: Given when a stack popping operation cannot be done because the stack is already at its lowest point.
* {{code|GL_TABLE_TOO_LARGE}}<sup>1</sup>, 0x8031: Part of the ARB_imaging extension.
* {{enum|GL_TABLE_TOO_LARGE}}<sup>1</sup>, 0x8031: Part of the ARB_imaging extension.


<sup>1</sup>: These error codes are [[Deprecation|deprecated]] in 3.0 and removed in 3.1 [[Core And Compatibility in Contexts|core]] and above.
<sup>1</sup>: These error codes are [[Deprecation|deprecated]] in 3.0 and removed in 3.1 [[Core And Compatibility in Contexts|core]] and above.


[[Category: General OpenGL]]
[[Category: General OpenGL]]

Revision as of 23:35, 4 May 2012

In OpenGL, the function glGetError() tells you if an error has occurred in a program; for example, if you pass an invalid value to a function. When an error occurs, an error code is saved by the implementation. This error code will be the return value of glGetError() next time it is called.

Error Codes returned by glGetError:

  • GL_INVALID_ENUM, 0x0500: Given when an enumeration parameter is not a legal enumeration for that function. This is given only for local problems; if the spec allows the enumeration in certain circumstances, and other parameters or state dictate those circumstances, then GL_INVALID_OPERATION is the result instead.
  • GL_INVALID_VALUE, 0x0501: Given when a value parameter is not a legal value for that function. This is only given for local problems; if the spec allows the value in certain circumstances, and other parameters or state dictate those circumstances, then GL_INVALID_OPERATION is the result instead.
  • GL_INVALID_OPERATION, 0x0502: Given when the set of state for a command is not legal for the parameters given to that command. It is also given for commands where combinations of parameters define what the legal parameters are.
  • GL_OUT_OF_MEMORY, 0x0503: Given when performing an operation that can allocate memory, but the memory cannot be allocated. The results of OpenGL functions that return this error are undefined; it is allowable for partial operations to happen.
  • GL_INVALID_FRAMEBUFFER_OPERATION, 0x0506: Given when doing anything that would attempt to read from or write/render to a framebuffer that is not complete, as defined here.
  • GL_STACK_OVERFLOW1, 0x0503: Given when a stack pushing operation cannot be done because it would overflow the limit of that stack's size.
  • GL_STACK_UNDERFLOW1, 0x0504: Given when a stack popping operation cannot be done because the stack is already at its lowest point.
  • GL_TABLE_TOO_LARGE1, 0x8031: Part of the ARB_imaging extension.

1: These error codes are deprecated in 3.0 and removed in 3.1 core and above.