Разбор gl.xml - несоответствия? - PullRequest
0 голосов
/ 24 августа 2018

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?(Я хотел бы использовать группы как отдельные перечисления, так как это добавит безопасность типов) Некоторые Группы завершены, другие смешаны, это упущение или я что-то упустил?Если группы противоречивы, какой цели они служат?

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

Однако не все константы определены в GetPName

Недавно столкнулся с такой же проблемой. Итак, пиар уже слился. https://github.com/KhronosGroup/OpenGL-Registry/pull/209

Как мне справиться с этим при разборе xml?

Проверьте со спецификацией и добавьте свой PR, который исправляет это https://github.com/KhronosGroup/OpenGL-Registry

0 голосов
/ 24 августа 2018

Группы в файле XML - это то, что я бы назвал «ненормативной» информацией.Это попытка кодифицировать материал, охватывающий почти 400 спецификаций расширений и дюжину или около того основных спецификаций + OpenGL ES.Но в целом, вы не можете верить, что они верны.

Если вы знаете о неполной группе, вы можете попытаться завершить ее и отправить в соответствующее репозиторий GitHub в виде патча.Но кроме этого, или путем создания ваших собственных групп счетчиков, хранящихся в дополнительном файле, вы ничего не можете сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...