Commit graph

39 commits

Author SHA1 Message Date
Stefanos A. f83443d221 Avoid singletons; Translate*() in FuncProcessor
This is part of a long-due source cleanup series. All Translate*()
methods are now part of the FuncProcessor. Additionally, ToString() has
been improved and the IEquatable interface is now implemented.
ParameterCollection now has better control of when its cache should be
rebuilt.
2013-11-01 09:13:06 +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
Stefanos A. 06d2de3e7b Fixed translation of GLchar** (should be string[], not string). Added
diagnostic message in case of higher-order pointer parameters that
will currently generate incorrect bindings.
2013-10-25 08:48:24 +02:00
the_fiddler b418ef0f2c Made the escape character for reserved keywords customizable. (C# uses '@' and Java/C++ use '_' by default). Updated the Parameter class to return escaped names by default and added a RawName parameter to access the raw names. 2011-12-05 11:49:59 +00:00
the_fiddler aeebecc2b0 Fixed encoding error that prevent compilation on Linux. 2011-09-26 13:23:19 +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 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 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 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 52744c1661 Applied Barlog's "arrange this qualifier" patch. 2009-08-25 15:59:57 +00:00
the_fiddler c487a382e1 Applied Barlog's refactoring patch for using directives. 2009-08-17 12:28:22 +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 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 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 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 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 a29c32d774 Fixed the mapping between unsigned and signed wrappers -> entry points (no unsigned <-> signed casting). Regenerated bindings. 2009-03-08 19:19:52 +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 2deb63cf99 Made the ParameterCollection.Rebuild property public. 2008-01-19 15:24:34 +00:00
the_fiddler e65c0c13e7 Fixed a possible NRE (raised with Glu) 2008-01-15 09:34:01 +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 4f21d69dc9 Split translation code between Type.Translate() and Parameter.Translate(). 2007-11-04 15:19:01 +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 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 61048d6ae1 Wgl structs now reside in the OpenTK.Platform.Windows namespace, notin OpenTK.Platform.Windows.API. 2007-09-01 23:59:47 +00:00
the_fiddler ffe8ce7795 Merged with bind branch. 2007-08-20 12:25:48 +00:00
the_fiddler 164876a723 Added wgl binding generator. 2007-08-12 16:14:23 +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 672a82983a Major updates to keyboard input. The infrastructure (drivers etc) is ready. Windows raw input works (now implementing multiple devices). The examples need updating for the new input methods.
Updated the ExampleLauncher to not process exceptions. Updated the IExample interface to contain the Launch method. Updated examples and the ExampleLauncher according to the IExample interface.
Synced with gl3 branch.
2007-08-03 00:14:31 +00:00
the_fiddler d5022b1b56 Sycned with gl3 branch. 2007-08-01 21:14:39 +00:00
the_fiddler c1d3fbe2f1 Merged with gl3 branch. 2007-08-01 09:27:57 +00:00
the_fiddler 3d23105b0d 'Merged' windowing branch. Ugly, but it seems to have worked. 2007-07-23 00:15:18 +00:00