Commit graph

99 commits

Author SHA1 Message Date
the_fiddler 81b188ffca Added documentation comments to generated enums.
Improved ISpecWriter API by removing low-level implementation details.
Made Constant implement IComparable so it can be sorted before being written to output.
2011-07-20 10:10:33 +00:00
the_fiddler 08709e985f * Structures/Enum.cs: Marked code that needs to be refactored. 2011-07-20 10:08:27 +00:00
the_fiddler 177813e47a * FuncProcessor.cs:
* Structures/Parameter.cs: Avoid qualifying IntPtr fully ((a) it's
  unnecessary, since we have "using System;" already and (b) the
  namespace qualification is not portable to C++).
2010-12-05 15:53:04 +00:00
the_fiddler 82ba7143bb * Main.cs:
* Settings.cs:
* FuncProcessor.cs:
* Structures/Type.cs:
* Structures/Constant.cs:
* Structures/Delegate.cs: Do not hardcode namespace separator to ".".
2010-12-05 15:45:23 +00:00
the_fiddler 0eef1c3629 Saner handling of various settings.
Improved C++ spec writer (still needs a lot of work).
2010-12-03 12:06:36 +00:00
the_fiddler 94cd438166 Use identical XPath for signatures.xml and overrides.xml to unify and simplify their handlers. 2010-12-03 09:45:20 +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
the_fiddler 93e224ff83 Look up token references in 'All' enum as a final fallback. 2010-11-19 11:12:02 +00:00
the_fiddler 794a146df8 Removed unused code. 2010-10-13 23:21:11 +00:00
the_fiddler 643b617362 Do not process the function category name (we to list the original name for documentation and extension checking). The processing is moved to the Type translation code. 2010-10-13 23:09:10 +00:00
the_fiddler 137818d10c Moved enum, constant, delegate and function transformations to EnumProcessor and FuncProcessor respectively.
Removed global enum, delegate and function collections.
Simplified loading process and removed global Initialize() methods.
Read "count" attributes for function parameters in overrides.xml.
Disabled wgl/glx/glu generators.
Removed large amounts of stale code.
2010-10-13 21:41:06 +00:00
the_fiddler 0e9ec6824b Mark all parameter names that match reserved keywords. 2010-10-12 17:35:40 +00:00
the_fiddler 2a1d85a4c0 Remove enum and constant processing from the classes with the same name and move it into its own file. 2010-10-12 16:46:08 +00:00
the_fiddler 93743f913d Add support for function deprecation. 2010-10-10 12:28:27 +00:00
the_fiddler 97b3cd2e93 Type, Parameter, ParameterCollection and Function classes now implement IComparable directly (rather than casting to strings and comparing those).
Modified comparison order to place pointer overloads after reference or array overloads. Fixes issue [#1098]: "[Bind] Work around VS bug by ensuring pointer parameters are generated last".
2009-11-17 09:26:05 +00:00
the_fiddler 1af4990517 Use new string(sbyte*) instead of Marshal.PtrToStringAnsi to increase performance when calling GetString to retrieve the list of available extensions. 2009-11-03 12:59:25 +00:00
the_fiddler 97e07a6e24 * GL2/Generator.cs: Refactored WriteWrappers() into smaller methods. Added "using System.Text;" to all generated files that may contain StringBuilder parameters.
* Main.cs: Removed unused comments. Improved parameter handling. Added -o:keep_untyped_parameters option.
* Settings.cs: Added KeepUntypedEnums compatibility setting.
* Structures/Delegate.cs: Removed stale comments. Refactored CreateWrappers() method to support untyped enum overload generation and simplified method implementation. Replaced CurrentType translations with QualifiedType.
* Structures/Function.cs: Removed stale code. Fixed copy constructors to copy all necessary fields. Use QualifiedType instead of CurrentType in WrapReturnType and CreateBody methods. Made Body statement lists static to improve performance. Added hack to modify callstring casts in keep_untyped_enums wrappers. Generate call string from the Function CreateBody was called on, rather than the current Function (solves issues with invalid casts in specific cases).
* Structures/Parameter.cs: Use fully qualified type instead of current type in several caeses.
* Structures/Type.cs: Added explicit support for fully qualified types.
2009-10-27 22:37:05 +00:00
the_fiddler 239d98e860 Added distinct /overrides/add and /overrides/replace elements.
Added check for the existence of override elements before trying to use them (avoids potential null reference exception).
Regenerated bindings using the latest version of the generator.
2009-10-17 21:49:35 +00:00
the_fiddler 0fd6651fd2 Fixed issue [#1240]: "Generic ref and out wrappers do not copy results to the reference parameter", by assigning the GCHandle.Target back to the reference parameter. 2009-10-17 20:02:53 +00:00
the_fiddler babb54c00c Avoid translating names that do not need translation (i.e. are not in ALL_CAPS). 2009-10-14 22:49:04 +00:00
the_fiddler 92de857809 * ES/ESGenerator.cs: Set enum Type property.
* Structures/Enum.cs: Added enum Type property.
Removed Enum(string) constructor in favor of C# 3.0 syntax (new Enum()
  { Name = ... }).
2009-10-09 05:48:10 +00:00
the_fiddler 52744c1661 Applied Barlog's "arrange this qualifier" patch. 2009-08-25 15:59:57 +00:00
the_fiddler 43e0e2c5e5 Applied Barlog's 02_Bind_2172_ShortenQualifierReferences patch. 2009-08-21 20:28:14 +00:00
the_fiddler b30cc509ce Do not trim 's' from methods ending in "IDs". 2009-08-20 21:38:23 +00:00
the_fiddler c487a382e1 Applied Barlog's refactoring patch for using directives. 2009-08-17 12:28:22 +00:00
the_fiddler 51179c6518 Added missing types to list of non-CLSCompliant types. 2009-08-15 17:41:25 +00:00
the_fiddler 5eb9d7242b Do not allow constant names to start with numbers. 2009-08-15 17:32:35 +00:00
the_fiddler 336d6b4bef * Type.cs: Updated list of non CLS-compliant types.
* Parameter.cs: Changed [In] and [Out] attributes to [InAttribute] and
  [OutAttribute] to work around strange gmcs 2.0 bug.
2009-08-12 10:11:41 +00:00
the_fiddler cdde2893f6 Added support for enum overrides.
Enabled enum overrides in the CL and ES generators.
Function parameters now follow enum overrides (for example, if function Foo takes enum Bar and enum Bar is overriden to Baz, this change will be reflected on function Foo).
Changed default CLGenerator settings to not generate debug helpers.
2009-08-11 14:12:20 +00:00
the_fiddler 000bdf71ef Added PreviousName property.
Moved value parsing to the Name property instead of implementing in each and every ISpecReader.
2009-08-11 14:08:18 +00:00
the_fiddler 1edfbdb928 Improved handling of multiple indirection (pointer-to-pointer, pointer-to-array or any other combination up to 4 levels of indirection).
Made the generation of debug helpers optional. They are currently specific to OpenTK.Graphics and need more work before they can be used with OpenTK.Compute or OpenTK.Audio.
2009-08-11 14:06:40 +00:00
the_fiddler 68fcad4929 Parameter name "event" is not allowed in .Net. Replaced with "@event". 2009-08-09 17:47:15 +00:00
the_fiddler ab26b80e2d Modified Type.Pointer property to be an integer instead of a boolean.
Improved handling of string arrays.
Added handling of flow direction to ESGenerator and Delegate.TranslateParameters().
Moved FlowDirection enum outside of Parameter class.
2009-07-15 22:33:26 +00:00
the_fiddler 165287fdd2 * Structures/Type.cs: Try to translate GLenum even if category is
unknown.
2009-07-15 14:05:40 +00:00
the_fiddler 13b87c1b0a Added OpenGL ES generator. 2009-06-30 08:39:35 +00:00
the_fiddler e4fcf76289 Merged string[] fix from 0.9.8 branch. 2009-06-29 18:51:40 +00:00
the_fiddler a2f0f70377 Fixed handling of pointer-to-string parameters. These are now wrapped as string[] arrays. 2009-06-29 18:32:51 +00:00
the_fiddler da7c1c3a4d Fixed GL.GetBoolean (was GL.GetBoolea because the generator treated glGetBooleanv as a NV extension). 2009-06-07 05:31:38 +00:00
the_fiddler 43e0b67b2e Fixed GL.GetBoolean (was GL.GetBoolea because the generator treated glGetBooleanv as a NV extension). 2009-06-07 05:20:29 +00:00
the_fiddler c9322d621f Use "IGraphicsContext.ErrorChecking = false|true" inside Begin|End wrappers. 2009-06-04 10:35:31 +00:00
the_fiddler 4773f4470f Actually sort wrapper methods in GL.cs. 2009-05-30 15:28:52 +00:00
the_fiddler cf4a243c99 Merged the latest specs from opengl.org.
Replaced all instances of Version14, Version15, Version20, Version30 and Version31 enums by type-safe equivalents.
Added gloverrides.xml to support overrides to function parameters / return types. This will make future spec updates easier to merge.
Improved handling of invalid tokens in the specs.
Bindings are now written in alphabetical order. This will reduce patch size for future updates and make side-by-side comparisons easier to perform.
2009-05-29 15:57:01 +00:00
the_fiddler b5f08288c6 Removed ambiguous OpenGL overloads, because they confuse languages that don't distinguish between pass-by-reference and pass-by-value in the call-site (e.g. VB.Net). This affects functions that can take a single parameter either by reference or by value. 2009-05-21 23:34:20 +00:00
the_fiddler 370396ab7f The generator now detects and adds the FlagsAttribute to bitwise collections. Fixes bug [#792] "Resharper - Bitwise operation on enum which is not marked by [Flags] attribute" (http://www.opentk.com/node/792). 2009-05-05 21:00:48 +00:00
the_fiddler 0ecdd1c9e3 Fixed issue http://www.opentk.com/node/794 (suppress array overloads for functions that receive/return pointers to single elements). 2009-04-15 13:14:41 +00:00
the_fiddler a128220c27 Generator now trims 'v' suffixes from all functions and marks resulting non cls-compliant overloads as such.
Bumped version number.
2009-04-12 18:23:01 +00:00
the_fiddler eb183f4cfe Added stack traces to automatic error checking.
Added GraphicsContext.ErrorChecking property to temporarily disable error checking if necessary.
Error checking is now added to all functions in debug mode (the generator would miss specific CLS-compliant overloads before).
2009-03-29 21:41:30 +00:00
the_fiddler b4f0b86239 Updated tokens for EXT_transform_feedback (http://www.opentk.com/node/602). Updated tokens for ARB_uniform_ buffer_object (http://www.opentk.com/node/748). The generator no longer trims the 's' suffix from Varyings. 2009-03-29 19:26:57 +00:00
the_fiddler b60bea7e8c Generator is now able to trim function suffixes similar to 'i_v' (first introduced in OpenGL 3.0). 2009-03-29 16:11:37 +00:00
the_fiddler 9daced745e Fixed '*Indexed' functions (they were wrapped as '*Indexe', with a missing 'd'). 2009-03-29 14:27:07 +00:00