OpenGL gl.xml определяет следующую команду (пример):
<command>
<proto>void <name>glGetIntegerv</name></proto>
<param group="GetPName"><ptype>GLenum</ptype> <name>pname</name></param>
<param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>data</name></param>
<glx type="single" opcode="117"/>
</command>
В то время как первый параметр pname
типа GLenum
взят из группы GetPName
.
<group name="GetPName">
<enum name="GL_ACCUM_ALPHA_BITS"/>
<enum name="GL_ACCUM_BLUE_BITS"/>
<enum name="GL_ACCUM_CLEAR_VALUE"/>
...
</group>
Однако не все константы определены в GetPName
(по состоянию на Khronos ), они существуют в global GL-Enum
(перечисление констант без связанной группы).
Как мне справиться с этим при разборе xml?(Я хотел бы использовать группы как отдельные перечисления, так как это добавит безопасность типов) Некоторые Группы завершены, другие смешаны, это упущение или я что-то упустил?Если группы противоречивы, какой цели они служат?