-
Notifications
You must be signed in to change notification settings - Fork 9
Open
Labels
Description
Here is what I think should be the correct way of handling those. The steps are being excercised for the example of "glBufferStorage" and its flags GLbitfield parameter:
- for all
/registry/enumselements that have a type="bitmask" attribute, the generator has to build a separate group with the enum values defined in that element (hint: the "group" attribute cannot be used for anything since it is hardly ever referenced anywhere) - for each
/registry/feature/require(exampleGL_VERSION_4_4) and/registry/extensions/extension/require(exampleGL_ARB_buffer_storage) elements, we first have to search whether there is a<command>defined in it (exampleglBufferStorage) that takes at least oneGLbitfieldparameter. This information is found in the corresponding/registry/commands/commandelement. - If we found at least one such command, we have to match all
enumelements in/registry/feature/require(exampleGL_VERSION_4_4) and/registry/extensions/extension/require(exampleGL_ARB_buffer_storage) with all previously createdbitmaskgroups to see which of the enums are bitfield enums. For each enum found in a groupAthat groupAis then considered a candidate group when looking up the name(s) of aGLbitfieldargument by its value for a called command defined by this extension or core GL version.