Commit graph

54 commits

Author SHA1 Message Date
Stefanos A
aeb7a72d79 Eliminated CLS-compliance warnings in the bindings 2013-12-15 22:01:45 +01:00
Stefanos A.
2045f3e98e Add slots into entry point table 2013-11-24 13:55:13 +01:00
Stefanos A
b652145977 Handle overloads with different element counts 2013-11-17 21:27:09 +01:00
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
417aa67139 Implemented Add and AddRange methods
These supplant the static Utilities.Merge() overloads.
2013-11-09 19:22:31 +01:00
Stefanos A
7978627ad4 Merge Delegate.Version
When a Delegate is defined multiple times in the spec, we should check
if any of these definitions contains a proper Delegate.Version and
store that. This improves the self-documentation aspect of the bindings.
2013-11-03 20:41:29 +01:00
Stefanos A.
35c0edfa42 Merge categories for redefined functions
Now that we support function overloads, it is safe to ignore functions
that are defined multiple times. We just merge their Category
properties if they are not identical.
2013-11-03 19:13:49 +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.
9c5d43b72b Avoid singletons; Move logic to FuncProcessor
This is part of a long-due cleanup patch series. All translation logic
is now part of the FuncProcessor. Language-specific code generation is
now part of the ISpecWriter, not the delegate class. Implemented the
IEquatable interface.
2013-11-01 09:15:02 +01:00
Stefanos A.
51f52d7fc4 Moved more transformations into the *Processor classes.
An EnumProcessor or FuncProcessor instance is now required in order to
call their Translate*() methods. A number of transformations that
relied on calling the static methods have now been moved inside the
processor classes.
2013-10-27 01:30:45 +02: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
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
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
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
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
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
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
13b87c1b0a Added OpenGL ES generator. 2009-06-30 08:39:35 +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
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
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
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
7a57fbd8a7 Added automatic error checking for all OpenGL function calls (debug mode only). Begin()-End() regions are handled correctly. 2009-03-25 17:55:37 +00:00
the_fiddler
2062d231d0 Bind now maps 'void*' to generics ('ref T', 'T[]', 'T[,]' and 'T[,,]') instead of 'object'.
The doc processor can now document more OpenGL functions (e.g. GL.Color3).
Cleaned up several pieces of code in Bind (but I'm afraid it's hopeless - spaghetti code at its greatest).
2009-03-21 21:44:07 +00:00
the_fiddler
01f618c00b Now prints the OpenTK license and adds the [AutoGenerated] attribute to the generated bindings. 2009-02-28 19:29:34 +00:00
the_fiddler
a22019d890 Normalize line endings and set the mime-type=text/plain and eol-style=native properties on all files. 2009-02-22 10:43:35 +00:00
the_fiddler
58d5b7838a Fixed mismatch between Delegate and Import declarations. 2007-11-10 12:29:17 +00:00
the_fiddler
2ede6cab5a Fixed IntPtr processing - real pointers (with object overloads) are now differentiated from plain IntPtr parameters (e.g. offsets). Fixed Tao bindings generation. 2007-11-10 10:28:22 +00:00
the_fiddler
af25a9808b Fixed ReturnType and Parameters translation to follow .Net naming conventions. 2007-11-04 15:21:50 +00:00
the_fiddler
1b4da37c54 Fixed a regression where pure IntPtr parameters (size etc etc) obtained 'object' overloads. 2007-10-31 17:42:29 +00:00
the_fiddler
55d785249e Moved the Wrapper generation to Function instead of Delegate. Simplified the code. 2007-10-26 12:55:26 +00:00
the_fiddler
25eeeab609 Rather big update: turned void* to IntPtr, to avoid problems with .Net and Tao functions directly IntPtr (the object overload would be called and all hell would break loose).
Minor cleanup. Added code to turn ALL_CAPS enums into .Net CamelCase enums - must take care of the extensions before enabling this.
Added a couple new commandline options, and fixed a misspelling (NestedEnumsClass was NestedEunmsClass, ugh!)
2007-10-21 15:48:52 +00:00
the_fiddler
cc23dac7a8 Merged with Bind. Added GLU bindings. Corrected OpenGL overload trimming. 2007-09-02 22:52:00 +00:00
the_fiddler
9120a732ea Merged with bind branch: updated GL.cs wrappers, Glx and Glu implementation suppoort files, faster Bind. 2007-09-02 00:40:43 +00:00
the_fiddler
ffe8ce7795 Merged with bind branch. 2007-08-20 12:25:48 +00:00
the_fiddler
9295a44c60 2007-08-20 10:46:37 +00:00
the_fiddler
164876a723 Added wgl binding generator. 2007-08-12 16:14:23 +00:00
the_fiddler
ac2a2f9a70 Improved opengl overload trimming. 2007-08-10 20:16:05 +00:00
the_fiddler
e220f3a71a Updated Build.exe to correctly generate sharpdev and sharpdev2 projects.
Removed some unused variables.
Added licensing information.
2007-08-10 09:27:13 +00:00
the_fiddler
09bd00885c Merged with gl3 branch. Resolved conflicts. Added IMouseDriver.cs 2007-08-04 23:39:56 +00:00