Commit graph

46 commits

Author SHA1 Message Date
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