Commit graph

22 commits

Author SHA1 Message Date
Stefanos A 11070bb52a Added support for obsolete attribute
Functions marked with the obsolete attribute will now add [Obsolete] to
the generated output.
2013-11-14 13:46:42 +01:00
thefiddler d126d25215 Add helper overload generation
Functions returning a value or array via an 'out' parameter will now get a convenience overload that returns the result via a return statement. In the case of arrays, only single-valued arrays will be supported. For example:

void GetIntegerv(enum pname, out int value)

will be get an overload of

int GetIntegerv(enum pname)

This will reduce the amount of helper overloads that must be maintained manually in GLHelpers.cs.
2013-11-10 08:28:58 +01:00
Stefanos A 6921509680 Added "reuse" directive for enums
Sometimes an enum may reuse the tokens of another enum verbatim
(possibly adding a few extra tokens.) The reuse directive simplifies
the handling of this case:
<enum name="Foo">
  <reuse enum="Bar" />
</enum>
2013-11-04 22:26:06 +01:00
Stefanos A 922fb935a1 Take api version into account
XmlSpecReader will now respect version attributes and will avoid
inserting foreign tokens into the generated bindings.
2013-11-03 20:32:10 +01:00
Stefanos A. 9789225e0c Allow overloads of the same function
It is now possible to define multiple overloads of the same function,
each with different parameters. This is extremely useful for
maintaining backwards compatibility in the face of the changes between
GL 4.3 and 4.4.
2013-11-03 16:09:11 +01:00
Stefanos A. a29e132172 Trim elements when reading them
Sometimes elements in overrides.xml contain extra spaces due to typos,
which are quite difficult to track down. The XmlSpecReader can now
cope with that.
2013-11-03 12:17:09 +01:00
Stefanos A 56768a803a Added support for distinguishing between api versions
The registry reuses the "gles2" apiname for both OpenGL ES 2.0 and 3.0.
The generator will now use the apiversion attribute to distinguish
between the two APIs.
2013-11-03 01:24:02 +01:00
Stefanos A. f00c2e0527 Avoid singleton Settings. Allow v1 signatures
A Settings object is now passed directly as a parameter, in order to
support different configurations in the same process. The XmlSpecReader
can now distinguish between, and support both, pre-GL4.4 and post-GL4.4
specs.
2013-11-01 09:01:35 +01:00
Stefanos A. 784d60b556 Corrected apiname xpath lookup 2013-10-29 09:32:28 +01:00
Stefanos A 7f9041417e Add apiname parameter to ISpecReader
This allows us to reuse the same ISpecReader implementation to parse
different APIs (GL and GLES).
2013-10-28 14:13:39 +01:00
Stefanos A. 97ca64121c Made IsFlagsCollection read-write
The decision whether an Enum is a flags collection is now made either by
the spec reader or the enum processor (not the Enum class itself.)
2013-10-27 17:35:36 +01:00
Stefanos A 5e06c14607 Read extension list from xml spec; new acronyms.
Instead of hardcoding a list of extensions, extensions are now read
directly from the signatures.xml file. Acronyms for new texture
formats are now listed.
2013-10-27 01:26:36 +02:00
Stefanos A b5aff5dfaf Don't crash on non-numeric element counts. 2013-10-24 18:50:19 +02:00
Stefanos A. 61fd8d6122 Added ConstCharPointer->string transformation in accordance to GL 4.3
specs.
2013-10-21 21:43:05 +02:00
thefiddler 8dcb8601a2 Normalized line endings
Hopefully this is the first and last time we have to do this.
2013-10-11 01:58:54 +02:00
the_fiddler 85a774c902 Simplified the ISpecReader interface. Ensure 'delete' directives are followed in the xml specs. 2011-12-05 14:30:40 +00:00
the_fiddler 1db9c38ed8 Do not reuse a single StreamReader for reading signatures. Avoids issues with XPathDocument closing the stream behind our backs. 2010-12-06 14:34:16 +00:00
the_fiddler 5b40433350 * XmlSpecReader.cs:
* EnumProcessor.cs:
* GL2/Generator.cs:
* FuncProcessor.cs: Fixed handling of overrides file: we now add
  signatures as requested and reset the stream after we are done
  reading the file.
2010-12-06 12:29:18 +00:00
the_fiddler 5c3d94aeef Added ReadEnums overload that works with a XPathNavigator directly. Necessary for new overrides.xml handling. 2010-12-03 11:22:11 +00:00
the_fiddler 47b16778ce Added ReadDelegates overload that works with a XPathNavigator directly. Necessary for new overrides.xml handling. 2010-12-03 09:43:08 +00:00
the_fiddler 2dd61c6afd Moved overrides file to Settings class. 2010-12-03 09:02:55 +00:00
the_fiddler 0ce332b318 Refactored spec reading / writing functionality into its own classes.
Removed legacy spec reader.
2010-12-02 21:36:05 +00:00