<?xml version="1.0"?>
<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd">

<!-- Note: no GLX protocol info yet. -->


<OpenGLAPI>

<category name="GL_ARB_debug_output" number="104">

    <!-- glEnable/Disable/IsEnabled -->
    <enum name="DEBUG_OUTPUT_SYNCHRONOUS_ARB"              value="0x8242"/>

    <!-- glGetIntegerv -->
    <enum name="MAX_DEBUG_MESSAGE_LENGTH_ARB"    count="1" value="0x9143">
        <size name="Get" mode="get"/>
    </enum>
    <enum name="MAX_DEBUG_LOGGED_MESSAGES_ARB"   count="1" value="0x9144">
        <size name="Get" mode="get"/>
    </enum>
    <enum name="DEBUG_LOGGED_MESSAGES_ARB"       count="1" value="0x9145">
        <size name="Get" mode="get"/>
    </enum>
    <enum name="DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB" count="1" value="0x8243">
        <size name="Get" mode="get"/>
    </enum>

    <!-- glGetPointerv -->
    <enum name="DEBUG_CALLBACK_FUNCTION_ARB"     count="1" value="0x8244">
        <size name="GetPointerv" mode="get"/>
    </enum>
    <enum name="DEBUG_CALLBACK_USER_PARAM_ARB"   count="1" value="0x8245">
        <size name="GetPointerv" mode="get"/>
    </enum>

    <enum name="DEBUG_SOURCE_API_ARB"                      value="0x8246"/>
    <enum name="DEBUG_SOURCE_WINDOW_SYSTEM_ARB"            value="0x8247"/>
    <enum name="DEBUG_SOURCE_SHADER_COMPILER_ARB"          value="0x8248"/>
    <enum name="DEBUG_SOURCE_THIRD_PARTY_ARB"              value="0x8249"/>
    <enum name="DEBUG_SOURCE_APPLICATION_ARB"              value="0x824A"/>
    <enum name="DEBUG_SOURCE_OTHER_ARB"                    value="0x824B"/>

    <enum name="DEBUG_TYPE_ERROR_ARB"                      value="0x824C"/>
    <enum name="DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB"        value="0x824D"/>
    <enum name="DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB"         value="0x824E"/>
    <enum name="DEBUG_TYPE_PORTABILITY_ARB"                value="0x824F"/>
    <enum name="DEBUG_TYPE_PERFORMANCE_ARB"                value="0x8250"/>
    <enum name="DEBUG_TYPE_OTHER_ARB"                      value="0x8251"/>

    <enum name="DEBUG_SEVERITY_HIGH_ARB"                   value="0x9146"/>
    <enum name="DEBUG_SEVERITY_MEDIUM_ARB"                 value="0x9147"/>
    <enum name="DEBUG_SEVERITY_LOW_ARB"                    value="0x9148"/>


    <function name="DebugMessageControlARB" alias="DebugMessageControl">
        <param name="source" type="GLenum"/>
        <param name="type" type="GLenum"/>
        <param name="severity" type="GLenum"/>
        <param name="count" type="GLsizei" counter="true"/>
        <param name="ids" type="const GLuint *" count="count"/>
        <param name="enabled" type="GLboolean"/>
    </function>

    <function name="DebugMessageInsertARB" alias="DebugMessageInsert">
        <param name="source" type="GLenum"/>
        <param name="type" type="GLenum"/>
        <param name="id" type="GLuint"/>
        <param name="severity" type="GLenum"/>
        <param name="length" type="GLsizei"/>
        <param name="buf" type="const GLcharARB *"/>
    </function>

    <function name="DebugMessageCallbackARB" alias="DebugMessageCallback">
        <param name="callback" type="GLDEBUGPROCARB"/>
        <param name="userParam" type="const GLvoid *"/>
    </function>

    <function name="GetDebugMessageLogARB" alias="GetDebugMessageLog">
        <return type="GLuint"/>
        <param name="count" type="GLuint"/>
        <param name="bufsize" type="GLsizei"/>
        <param name="sources" type="GLenum *" output="true"/>
        <param name="types" type="GLenum *" output="true"/>
        <param name="ids" type="GLuint *" output="true"/>
        <param name="severities" type="GLenum *" output="true"/>
        <param name="lengths" type="GLsizei *" output="true"/>
        <param name="messageLog" type="GLcharARB *" output="true"/>
    </function>

</category>


</OpenGLAPI>
