Walter on PyOpenGL Users pointed me at the chromium "regal" tool, which has a table of constant definitions for output parameter sizings. I have a similar mechanism inside PyOpenGL's source code, so I parsed the table out of regal and used it to spot and plug gaps in the PyOpenGL table. The regal stuff is all-one-table for any COMPSIZE() value, while PyOpenGL has traditionally had many tables, one for each output-parameter... seems that could be simplified now to just use the one table, though there are definitely some corner-cases to be addressed (cases where e.g. another API call is required to get the proper output size). There also seem to be cases where COMPSIZE() is either wrong or weird (basically looking like it's keyed off the wrong parameter).
Anyway, the comparison is automated now, so I can pull updates into PyOpenGL's tables. I still can't get the khronos xml registry downloaded, however, so I'm blocked from updating the extensions/features for now.
[Update] and now I've largely automated the output parameter marking so that almost everything that the old .spec file said was an output parameter is now marked as such. Doesn't yet handle multiple outputs/function or cases where the COMPSIZE is complex, but should handle the static, dynamic, dynamic-with-multiple and table lookup cases.
Pingbacks are closed.