Commit graph

48 commits

Author SHA1 Message Date
Fraser Waters ab11fa4f6e Remove java/cpp code from binding generator 2015-03-01 18:59:21 +00:00
thefiddler c6e8991872 [Bind] Allow multiple overrides files
Multiple overrides files allow us to split overrides by extension,
simplifying maintenance.
2014-09-02 13:04:13 +02:00
thefiddler 774ebd1df7 [Bind] Do not generate slots for OpenGL <= v1.1
We can use DllImports for OpenGL functions <= v1.1 on all platforms,
including Windows. This allows us to reduce the number of required
GetProcAddress calls by 474, reducing startup time and memory
consumption.

This setting can be turned off through Settings.Legacy.UseDllImports
and UseWindowsCompatibleGL.
2014-04-25 12:14:28 +02:00
thefiddler bd920a15f2 [Bind] Corrected CSharpSpecWriter output and warning messages
CSharpSpecWriter now correctly outputs doc summaries on ARB_imaging
functions that do not have a version/deprecation string. Additionally,
it no longer warns about documentation parameter mismatches for
parameters matching C# keywords.
2014-03-31 17:40:15 +02:00
thefiddler 02bf55ad7e [ES] Fixed loading of OpenGL ES core API
eglGetProcAddress cannot be used to retrieve
entry points of core functions. Instead, we
use [DllImport] for core functions and function
pointers for extension functions.

Squashed commit of the following:

commit 0b84aa6ef78dfa3600b81fc412eb192f2a87e40c
Author: thefiddler <stapostol@gmail.com>
Date:   Sat Mar 15 02:24:58 2014 +0100

    [Examples] Rolled back changes to Example browser

commit 1acfbaac3d17184debdbbe872c58ac07d1b37c0a
Author: thefiddler <stapostol@gmail.com>
Date:   Sat Mar 15 02:20:57 2014 +0100

    [Examples] Rolled back WinForms example

commit 835d9d6035a890bd3426566929fbfd25c493eca0
Author: thefiddler <stapostol@gmail.com>
Date:   Sat Mar 15 01:15:01 2014 +0100

    [Examples] Rolled back erroneous GLControl mods

commit 056418014f0e835e83fb85b54b8749519a555364
Author: thefiddler <stapostol@gmail.com>
Date:   Fri Mar 14 23:11:11 2014 +0100

    [Rewrite] Remove calli prototypes

    When a function is called indirectly via a function pointer, its
    prototype is not required (the prototype is added as a callsite at the
    calli invocation.) Removing these prototypes reduces binary size by
    roughly 400KB.

commit 353a16ec2836c597150d2fab28581e7c264b2b39
Author: thefiddler <stapostol@gmail.com>
Date:   Fri Mar 14 22:31:25 2014 +0100

    [Rewrite] Call DllImports directly

    When a function does not have an allocated slot (i.e. slot = -1), then
    we will call its DllImport signature directly.

commit 9a5313e4b7afb10b698d255e4b5637887bf71cf3
Author: thefiddler <stapostol@gmail.com>
Date:   Fri Mar 14 22:30:04 2014 +0100

    [Bind] Do not allocate slots for DllImports

commit 6ac5342409363cac0e59f9dc669948b319bd20a9
Author: thefiddler <stapostol@gmail.com>
Date:   Fri Mar 14 22:29:07 2014 +0100

    [Bind] Added option to use DllImports

    This is necessary for the core functionality of OpenGL ES, where
    eglGetProcAddress returns null or garbage (the latter on Android.)
2014-03-16 19:40:49 +01:00
thefiddler 8e9a9355b0 Allow overriding of Settings.Compatibility 2013-11-11 10:01:30 +01:00
Stefanos A 5298aff14d Added support for overriding default output files
This makes it possible to generate different output files when using
-mode:all to generate multiple bindings in the same run.
2013-11-03 01:25:27 +01:00
Stefanos A. 832db0da0d Settings is no longer a singleton
Multiple Settings instances can now be created and used in the same
process.
2013-11-01 09:07:34 +01: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 5f4487e87b Added support for different per-language typemaps. 2011-12-02 13:12:53 +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 bb4d969dad * Main.cs:
* Settings.cs:
* Utilities.cs: Use separate keyword lists for each language.
2010-12-05 11:24:05 +00:00
the_fiddler 58bebc8315 Fixed handling of output path. 2010-12-03 09:42:12 +00:00
the_fiddler 2dd61c6afd Moved overrides file to Settings class. 2010-12-03 09:02:55 +00:00
the_fiddler c3bfa7dc9a Moved output filenames to Settings class. 2010-12-02 21:58:49 +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 f692a3c069 Fixed default input and output paths now that the compiled assembly is placed into Binaries/Generator/[Debug|Release] instead of Binaries/[Debug|Release]. 2009-08-26 07:51:16 +00:00
the_fiddler 43e0e2c5e5 Applied Barlog's 02_Bind_2172_ShortenQualifierReferences patch. 2009-08-21 20:28:14 +00:00
the_fiddler c487a382e1 Applied Barlog's refactoring patch for using directives. 2009-08-17 12:28:22 +00:00
the_fiddler 3c68f9fb99 Now use "Core" as default Settings.ImportsClass. 2009-08-17 10:15:22 +00:00
the_fiddler 16e1f279dc Added EnumPrefix setting, which may be different from ConstantPrefix or FunctionPrefix. Can be used to remove the Gl, Cl, Al, etc prefixes from enum names. 2009-08-11 14:03:55 +00:00
the_fiddler 13b87c1b0a Added OpenGL ES generator. 2009-06-30 08:39:35 +00:00
the_fiddler bfcee69961 Changed default output path for the generator to overwrite OpenTK/Graphics/GL. 2009-04-12 17:08:16 +00:00
the_fiddler 24f4c3189b * Resources.Designer.cs: Deleted unused file.
* Settings.cs: Changed default output directory to fit with the current OpenTK project structure.
* GL2/Generator.cs: Suppressed documentation warnings in the generated bindings.
2009-03-25 21:48:14 +00:00
the_fiddler a7849e8dd9 Fixed the path separators so that they work on Unix.
Improved the output for the doc processor: MathML equations are replaced by their textual representation and whitespace better matches function declarations.
Added new configuration settings for the doc processor and the license.
Removed stale debugging code.
License.txt is now a file, not a resource.
2009-03-08 18:08:35 +00:00
the_fiddler 875263e46a Added support for inline OpenGL documentation. 2009-03-08 00:46:58 +00:00
the_fiddler 8ba07860e5 Merged changes from gl3 branch. 2009-02-28 18:50:16 +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 a249816865 Updated FBO specs with specific enums.
Fixed GL.Ext.CheckFramebufferStatus (was CheckFramebufferStat before)
Moved default namespace to OpenTK.Graphics.OpenGL.
Moved OpenTK.Graphics.OpenGL.Enums to OpenTK.Graphics.OpenGL.
2008-02-02 00:23:06 +00:00
the_fiddler 40f32f4867 Documentation updates. Getting rid of all remaining warnings in debug build. 2008-01-20 19:29:42 +00:00
the_fiddler 1e0ed3c477 Added setting to DropMultipleTokens. Disabled this functionality (caused problems with some enums) 2008-01-14 23:41:53 +00:00
the_fiddler 61f17b5e7c Added a new Settings.Legacy option: do not turn bools into ints. Changed the default Tao options to not turn bools into ints and use nested enums. Added documentation to these options. 2007-11-10 10:27:19 +00:00
the_fiddler aaeef7be32 Better handling of Enums namespace/nested class. 2007-11-04 15:17:37 +00:00
the_fiddler 657e259196 Added setting for legacy overload generation. 2007-10-26 12:56:03 +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 d526f5a3a4 Preparatory stuff for naming convention changes. 2007-09-30 12:33:27 +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 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
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