KhronosGroup / OpenGL-API

OpenGL and OpenGL ES API Issue Tracker
34 stars 5 forks source link

Missing groups mentioned in commands #3

Closed luca-piccioni closed 7 years ago

luca-piccioni commented 7 years ago

Groups are very useful for creating API bindings enumerations. However, there are cases that OpenGL command arguments have the relative group attribute, but no corresponding group XML element exist. An example is StencilFaceDirection, associated to the face argument of commands like glStencilOpSeparate: the StencilFaceDirectiongroup is undefined.

Indeed adding the definition should solve the issue. The same issue is found for DrawElementsType, BufferTargetARB, BufferUsageARB, BufferAccessARB; here I put the definitions necessary for getting a complete command definition:

<group name="StencilFaceDirection">
  <enum name="GL_FRONT"/>
  <enum name="GL_BACK"/>
  <enum name="GL_FRONT_AND_BACK"/>
</group>

<group name="DrawElementsType">
  <enum name="GL_UNSIGNED_BYTE"/>
  <enum name="GL_UNSIGNED_SHORT"/>
  <enum name="GL_UNSIGNED_INT"/>
</group>

<group name="BufferTargetARB">
  <enum name="GL_ARRAY_BUFFER"/>
  <enum name="GL_ATOMIC_COUNTER_BUFFER" />
  <enum name="GL_COPY_READ_BUFFER" />
  <enum name="GL_COPY_WRITE_BUFFER" />
  <enum name="GL_DISPATCH_INDIRECT_BUFFER" />
  <enum name="GL_DRAW_INDIRECT_BUFFER" />
  <enum name="GL_ELEMENT_ARRAY_BUFFER" />
  <enum name="GL_PIXEL_PACK_BUFFER" />
  <enum name="GL_PIXEL_UNPACK_BUFFER" />
  <enum name="GL_QUERY_BUFFER" />
  <enum name="GL_SHADER_STORAGE_BUFFER" />
  <enum name="GL_TEXTURE_BUFFER" />
  <enum name="GL_TRANSFORM_FEEDBACK_BUFFER" />
  <enum name="GL_UNIFORM_BUFFER" />
</group>

<group name="BufferUsageARB">
  <enum name="GL_STREAM_DRAW"/>
  <enum name="GL_STREAM_READ"/>
  <enum name="GL_STREAM_COPY"/>
  <enum name="GL_STATIC_DRAW"/>
  <enum name="GL_STATIC_READ"/>
  <enum name="GL_STATIC_COPY"/>
  <enum name="GL_DYNAMIC_DRAW"/>
  <enum name="GL_DYNAMIC_READ"/>
  <enum name="GL_DYNAMIC_COPY"/>
</group>

<group name="BufferAccessARB">
  <enum name="GL_READ_ONLY"/>
  <enum name="GL_WRITE_ONLY"/>
  <enum name="GL_READ_WRITE"/>
</group>