Commit graph

642 commits

Author SHA1 Message Date
Stefanos A
66b01873b0 Updated license information 2013-11-03 01:28:46 +01:00
Stefanos A
c349c82887 Cleaned up the generator constructors 2013-11-03 01:28:01 +01:00
Stefanos A
ab61e3f6a0 Added missing newline
Methods are now separated by a single newline.
2013-11-03 01:27:33 +01:00
Stefanos A
e8f46c87f6 Do not override user defined output files
The generator will now change the default output files to match its
bindings (e.g. GL vs ES), but the user is now able to override this
option.
2013-11-03 01:27:10 +01:00
Stefanos A
5ab8b451c9 Added apiversion support 2013-11-03 01:25:47 +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
23c084587a Added gles2; added missing fog groups 2013-11-03 01:24:31 +01:00
Stefanos A
56768a803a Added support for distinguishing between api versions
The registry reuses the "gles2" apiname for both OpenGL ES 2.0 and 3.0.
The generator will now use the apiversion attribute to distinguish
between the two APIs.
2013-11-03 01:24:02 +01:00
Stefanos A
c5b9dbc83e Added GetOverridesPath method
GetOverridesPath encapsulates the code that retrieves an override enum
or function from overrides.xml. Additionally, it now supports names and
extensions with multiple values (e.g. extension="Core|Ext").
2013-11-03 01:20:17 +01:00
Stefanos A.
add848f32d Fixed newline and indentation behavior
Mono and .Net have a few minor differences in their StreamWriter
implementations. Added workarounds to produce identical output on all
platforms.
2013-11-01 14:00:46 +01:00
Stefanos A.
b7f2379f87 Fixed infinite recursion issue. 2013-11-01 11:42:42 +01:00
Stefanos A.
9e74470e58 Avoid singletons; allow -mode:all
Explicit Settings objects are now created for each generator. A new
-mode:all option has been added, which generates bindings for all APIs
in one go (useful for the post-GL4.4 specs, which collect all APIs in a
single file.)
2013-11-01 09:28:54 +01:00
Stefanos A.
bf0f42be82 Avoid singletons; collect code generation
ISpecWriter implementations must now store explicit references to a
Settings object. Additionally, all code generation is now handled inside
the ISpecWriter implementation (it used to be scattered over all Type,
Parameter, etc classes resulting in unmaintainable spaghetti code.)
2013-11-01 09:27:46 +01:00
Stefanos A.
33e6a6eae2 Avoid singletons
A reference to a Settings instance must now be stored explicitly.
2013-11-01 09:26:13 +01:00
Stefanos A.
e1f064b634 Updated IBind implementations to avoid singletons
IBind implementations must now store explicit references to Settings,
GLTypes and CSTypes instances. This allows us to use multiple
configurations in the same process.
2013-11-01 09:25:31 +01:00
Stefanos A.
8219f7a0f6 Avoid singletons; collect all translation logic
FuncProcessor now implements all translation logic for types, parameters
and functions. This used to be scattered in the various classes (Type,
Parameter, etc) resulting in a rather disgusting spaghetti. Code
generation has been removed from FuncProcessor and is now handled by the
various language-specific ISpecWriter backends.
2013-11-01 09:24:18 +01:00
Stefanos A.
f0e0195799 Avoid singletons; improve ToString()
This is part of a long-due series of source cleanup patches. ToString()
is no longer used for code generation (code generation is handled by an
ISpecWriter instance.) Enum is no longer public. EnumCollection now
exposes its backing store through an interface, rather than a concrete
class (simpler to change backing store in the future.)
2013-11-01 09:21:50 +01:00
Stefanos A.
229856abba Avoid singletons; improved ToString()
This is part of a long-due series of source cleanup patches. ToString()
is no longer used for code generation (this is handled by an ISpecWriter
implementation). This class is no longer public.
2013-11-01 09:18:53 +01:00
Stefanos A.
679afcc27a Avoid singletons; logic in FuncProcessor
This is part of a long-due series of source cleanup patches. All
translation logic is now part of FuncProcessor. Code generation is now
handled by an ISpecWriter implementation. Minor improvements to
IEquatable and ToString() implementations. Reduced the surface of the
public API.
2013-11-01 09:17:34 +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.
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.
83c0deb71c Avoid singletons; Translate*() in FuncProcessor
This is part of a long-due source cleanup operation. GLTypes and CSTypes
are no longer global singletons, but must now be accessed through an
IBind instance. All Translate*() methods are now part of the
FuncProcessor. ToString() has been improved and the IEquatable interface
is now explicitly implemented.
2013-11-01 09:10:46 +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
Stefanos A.
ffc79a749b Settings, GLTypes and CSTypes are now in IBind
Settings, GLTypes and CSTypes are no longer global singletons. Instead,
explicit instances must be stored in the IBind implementation. This
allows us to use multiple configurations in the same process.
2013-11-01 09:06:49 +01:00
Stefanos A.
f000bda891 Avoid singleton Settings; make internal
Utilities.Keywords now accepts an explicit parameter, instead of
accessing Settings directly. This allows us to use multiple
configurations in the same process.

Additionally, the Utilities class is no longer public (the Bind project
is not meant to be consumed as a dll.)
2013-11-01 09:03:36 +01:00
Stefanos A.
f00c2e0527 Avoid singleton Settings. Allow v1 signatures
A Settings object is now passed directly as a parameter, in order to
support different configurations in the same process. The XmlSpecReader
can now distinguish between, and support both, pre-GL4.4 and post-GL4.4
specs.
2013-11-01 09:01:35 +01:00
Stefanos A.
2eac75ea4d Avoid using singletons
The IBind generator and the Settings class are now passed directly as
parameters. This allows us to run multiple generators in a single
process.
2013-11-01 08:59:20 +01:00
Stefanos A.
6022ea9fbd Improved multiline output
This lets us compose and print multiline strings without manually
adjusting indentation on each line.
2013-11-01 08:57:44 +01:00
Stefanos A.
97bd6dbc39 Warn on function redefinition
A function redefinition usually stems from a bug in the OpenGL specs, or
a bug in the spec converter. The binding generator now logs a warning,
instead of crashing, when a redefinition is encountered.
2013-10-31 00:20:05 +01:00
Stefanos A.
285f238669 Renamed gloverrides.xml to overrides.xml
This aligns the name of the OpenGL overrides file with that of the
OpenGL|ES implementations.
2013-10-31 00:18:45 +01:00
Stefanos A.
a3bd227e20 Cleaned up Generator class tree
This significantly reduces the amount of duplicated code between
Generator implementations.
2013-10-31 00:18:07 +01:00
Stefanos A.
784d60b556 Corrected apiname xpath lookup 2013-10-29 09:32:28 +01:00
Stefanos A.
6185059adc More line ending troubles... 2013-10-28 14:28:57 +01:00
Stefanos A
7f9041417e Add apiname parameter to ISpecReader
This allows us to reuse the same ISpecReader implementation to parse
different APIs (GL and GLES).
2013-10-28 14:13:39 +01:00
Stefanos A.
2e435f97bb Re-added PixelInternalFormat
GL4.4 renamed PixelInternalFormat to InternalFormat. The missing tokens
are now re-added, since a lot of functions depend on them. Additionally,
a number of 'open' <use> elements now define a specific enum reference.
This is not necessary, but is good for documentation purposes.
2013-10-28 14:11:16 +01:00
Stefanos A.
6f4530f8a8 Sort tokens within an enum
This allows us to keep a specific ordering regardless of the token order
in the input file (much friendlier for source control!)
2013-10-28 14:08:55 +01:00
Stefanos A.
1b937b48f8 Simplifed Constant.Reference resolution
Instead of recursing, we use a simple do..while loop to resolve the
transitive reference of a constant. If there is a loop at any point, we
stop and use a brute force search over all tokens. If this still fails
to resolve the reference, then we report this reference as unresolved.
2013-10-28 14:07:45 +01:00
Stefanos A.
97ca64121c Made IsFlagsCollection read-write
The decision whether an Enum is a flags collection is now made either by
the spec reader or the enum processor (not the Enum class itself.)
2013-10-27 17:35:36 +01:00
Stefanos A.
2444ccf082 Improve override lookup for extension functions.
Function overrides are now looked up in the following order: specific
name (e.g. ProgramParameteriARB), extensionless name (e.g.
ProgramParameteri) and generic mame (e.g. ProgramParameter). This
improves the override resolution for functions with multiple extension
forms (core, ext, arb, etc).
2013-10-27 02:35:53 +02: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
5e06c14607 Read extension list from xml spec; new acronyms.
Instead of hardcoding a list of extensions, extensions are now read
directly from the signatures.xml file. Acronyms for new texture
formats are now listed.
2013-10-27 01:26:36 +02:00
Stefanos A.
5cc845713d Improved extension detection in .spec parser.
Instead of using a hardcoded list of extensions, the parser will now
use a regex to detect extension names. This gives better results on
new specs without manual editing.
2013-10-27 01:24:04 +02:00
Stefanos A.
d4eeb4e9ce Functions are now categorized correctly according to their extensions. 2013-10-26 00:07:49 +02:00
Stefanos A.
7cc3947cfb MASK_COHERENT_BIT should be MAP_COHERENT_BIT 2013-10-25 16:43:43 +02:00
Stefanos A.
9777afdb71 Trim the final endline regardless of operating system.
Fixes differences between bindings generated on Windows and Linux/Mac.
2013-10-25 16:31:26 +02:00
Stefanos A.
f65965aaf7 Fixed ShaderSource and VertexArrayFogCoordOffsetEXT parameters.
ShaderSource is supposed to accept an array of string lengths as the
last parameter. The count="1" statement in the registry is wrong.
GL.VertexArrayFogCoordOffsetEXT is supposed to receive a
FogPointerType.
2013-10-25 16:30:20 +02:00
Stefanos A.
0aa0d5ab6c Check the existence of a Constant reference using the
Constant.Reference property, instead of the first character of
Constant.Value. Fixes values that are negative numbers.
2013-10-25 08:57:33 +02:00
Stefanos A.
078a1e8443 Allow spaces in pointer types (e.g. "GLchar * *").
Added todo for string->String translation that is overwritten
immediately.
2013-10-25 08:52:34 +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
Stefanos A.
a162ee5b1b Added DEBUGPROCKHR for the KHR_debug extension. Added
CompressedTextureARB that is encountered in the new gl.xml registry.
2013-10-25 08:47:17 +02:00
Stefanos A.
e08baaa624 Fixed implementation of IsValue. Improved the handling of value
(number) parameters.
2013-10-25 08:45:02 +02:00
Stefanos A.
7296edafac Added support for overriding the element count of an array parameter. 2013-10-24 22:42:12 +02:00
Stefanos A
b5aff5dfaf Don't crash on non-numeric element counts. 2013-10-24 18:50:19 +02:00
Stefanos A.
645abc5ab1 Improved diagnostic message in case of a circular definition. 2013-10-24 18:46:58 +02:00
Stefanos A
8107abeb01 Updated gl4 documentation according to latest manpages 2013-10-24 09:03:15 +02:00
Stefanos A
af9d6dd928 Fixed ClearTex[Sub]Image <type> parameter
As per bug #1006 on the public Khronos bugzilla, <type> corresponds to the PixelType accepted by TexImage3D. This is now fixed.
2013-10-24 09:01:59 +02:00
Stefanos A.
60afa79203 Updated documentation according to the latest available manpages. 2013-10-23 20:17:08 +02:00
Stefanos A.
eb84a29206 Implemented "Debug Output" and "State and State Requests"
functionality according to the OpenGL 4.4 specification, sections 20
and 22.
2013-10-23 20:12:05 +02:00
Stefanos A.
3037baa5ea Implemented "Reading and Copying Pixels" functionality from the OpenGL
4.4 specification, sections 18.2 and 18.3.
2013-10-23 18:54:34 +02:00
Stefanos A.
b425bff682 Implemented Whole Framebuffer commands according to the OpenGL 4.4
specification, section 17.4.
2013-10-23 11:43:11 +02:00
Stefanos A.
a005fab243 Prefer overrides with exact name matches over generic name matches.
For instance, if we override both ClearBufferfi and ClearBuffer, then
ClearBuffer{i f ui}v will be overriden be ClearBuffer and
ClearBufferfi will be overriden by ClearBufferfi. This allows us to
specialize overrides when necessary.
2013-10-23 11:42:24 +02:00
Stefanos A.
86214ebc77 Implemented per-fragment operations according to the OpenGL 4.4
specification, section 17.
2013-10-23 10:49:29 +02:00
Stefanos A.
1585d6a02e Implemented Vertex Post-Processing according to the OpenGL 4.4
specification, section 13.
2013-10-23 10:23:02 +02:00
Stefanos A.
bb2bf9fa48 Implemented Vertex Attributes according to the OpenGL 4.4
specification, section 11.
2013-10-23 09:43:33 +02:00
Stefanos A.
88183770ae Implemented Vertex Arrays accordign to the OpenGL 4.4 specification,
section 10.
2013-10-23 09:31:09 +02:00
Stefanos A.
35b63e777a Fixed version number on VertexAttribP1 methods (should be 3.3, not
1.2).
2013-10-22 21:10:14 +02:00
Stefanos A.
18643b8f1d Allow version attribute in overrides.xml. 2013-10-22 21:09:18 +02:00
Stefanos A.
745fd9974f Implemented strongly-typed Framebuffer and Renderbuffer Objects
according to the OpenGL 4.4 specification, section 9.
2013-10-22 20:52:37 +02:00
Stefanos A.
5a59e63cea Implemented strongly-typed Texture functions according to the OpenGL
4.4 specification, section 8. See issue #2.
2013-10-22 18:37:25 +02:00
Stefanos A.
badb083686 Added SGIX_texture_icc enumeration that has been removed by the
upstream specs. This silences a large amount of warnings caused by the
lack of this extension.
2013-10-22 17:19:19 +02:00
Stefanos A
907a1de89f Line ending fix. 2013-10-22 17:03:16 +02:00
Stefanos A.
43bde3433a Implemented strong-types for Shader and Program Objects according to
the OpenGL 4.4 specification, section 7.
2013-10-22 16:52:35 +02:00
Stefanos A.
9613975681 Updated strong-types for Buffer Objects according to the OpenGL 4.4
spec, section 6.
2013-10-22 14:40:49 +02:00
Stefanos A.
cfa4f230c5 Updated strong-types for asynchronous queries, query objects and time
queries according to OpenGL 4.4 spec, section 4.2.
2013-10-22 14:00:01 +02:00
Stefanos A.
9685f6e2f0 Array overloads with count=1 should be turned into ref/out parameters.
This fixes an issue where arrays with count=1 would remain as unsafe
pointers instead of becoming ref/out parameters.
2013-10-22 13:41:31 +02:00
Stefanos A.
15120f3bef Updated to the latest 4.3 .spec files from the OpenGL registry. 2013-10-22 11:56:08 +02:00
Stefanos A.
8404359bca Updated to the latest gl.tm from Khronos public svn. 2013-10-22 11:39:50 +02:00
Stefanos A.
39c2230bfa Re-added BeginMode and PixelFormat enums which were removed by the
OpenGL spec.
Added strong types for sync and fence objects (4.4 core specification,
section 4.1).
2013-10-22 11:39:20 +02:00
Stefanos A.
61fd8d6122 Added ConstCharPointer->string transformation in accordance to GL 4.3
specs.
2013-10-21 21:43:05 +02:00
Stefanos A.
98504ce67a Added DebugProc delegate in accordance to GL 4.3 specs. 2013-10-21 21:42:09 +02:00
thefiddler
8dcb8601a2 Normalized line endings
Hopefully this is the first and last time we have to do this.
2013-10-11 01:58:54 +02:00
Robert Rouhani
3a9dfc62ad Fixed extra endregion directive that prevented compilation.
Fixed some warnings about csproj files.
2013-01-16 22:11:18 -08:00
Andy Korth
4230c6b4f0 Added Robmaister's Matrix3 implementations 2013-01-03 10:41:56 -06:00
the_fiddler
0df6d56f03 Removed invalid TextureParameterName.Red token. Fixes issue [#2789]: "TextureParameterName.Red". 2011-12-07 00:28:13 +00:00
the_fiddler
1ace769646 Further improvements to suffix trimming regexes. Now matches GetInteger(ui)64 and does not match functions ending in "Coord", "Attrib", "Access" and more. 2011-12-07 00:22:10 +00:00
the_fiddler
59cfdf4664 Ensured function names are trimmed using the same code as documentation and function parameters.
Improved trimming for functions with '64' suffices.
2011-12-07 00:01:48 +00:00
the_fiddler
5ee3013e49 Process overrides to Constant.Reference. 2011-12-06 22:59:42 +00:00
the_fiddler
e2d31c78cb Added missing TextureEnvMode.Replace token. Fixes issue [#2791]: "TextureEnvMode.Replace missing". 2011-12-06 21:49:43 +00:00
the_fiddler
bf90e156f3 Fixed extension (and core) loading on windows. 2011-12-06 15:14:58 +00:00
the_fiddler
d8432cc521 Significant cleanups and bugfixes to the C++ wrappers. Improved typemap to use correct OpenGL types. 2011-12-05 18:43:16 +00:00
the_fiddler
fbb17d9815 Added GL and CL to Acronyms regex. 2011-12-05 18:42:38 +00:00
the_fiddler
5ef382c043 Added cpp-specific typemap. 2011-12-05 18:42:13 +00:00
the_fiddler
ce55a9920e Do not rely on JNA types that are not available on Android. 2011-12-05 18:41:46 +00:00
the_fiddler
082fc8c422 Do not rely on JNA types that are not available on Android.
Replaced generic multiple wrappers by a single Buffer wrapper.
2011-12-05 16:12:54 +00:00
the_fiddler
cb06e36785 Fixed enum generation. 2011-12-05 15:48:51 +00:00
the_fiddler
687140323e Fixed bug in acronym capitalization handling, when multiple acronyms exist in the same enum. 2011-12-05 15:16:11 +00:00
the_fiddler
17974b6c7b Improved capitalization of acronyms, like 3Tc, in enum names. 2011-12-05 15:04:01 +00:00
the_fiddler
43c4f38e2d Simplified the ISpecReader interface. Ensure 'delete' directives are followed in the xml specs. 2011-12-05 14:30:40 +00:00
the_fiddler
e8a4bdb2b1 Minor comment fix. 2011-12-05 14:29:17 +00:00
the_fiddler
d32a9ae03b Generic type parameters cannot be primitive types in Java. Fixed! 2011-12-05 13:28:17 +00:00
the_fiddler
6bd6877a97 Fixed generic type parameters (for real this time!), suppressed pointer parameters and shuffled code for improved readability. 2011-12-05 13:03:48 +00:00
the_fiddler
14c56427ed Fixed generic parameter definitions. 2011-12-05 12:27:23 +00:00
the_fiddler
aa40b760df Added "callback" to Java reserved keywords. 2011-12-05 12:26:54 +00:00
the_fiddler
b80b920f90 Significant improvements to the Java wrappers: generate a package, improve wrapper generation taking into account lack of ref/out parameters. 2011-12-05 11:54:06 +00:00
the_fiddler
e8b53ade10 Use Parameter.RawName when accessing the spec xml files (these files are platform-agnostic, so parameter names are not escaped!) 2011-12-05 11:52:28 +00:00
the_fiddler
154ce76303 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
6443b271dd Added missing function declarations (WIP). 2011-12-02 14:49:26 +00:00
the_fiddler
1fa6a05c60 Added support for different per-language typemaps. 2011-12-02 13:12:53 +00:00
the_fiddler
6f1b8c11a2 Added preliminary Java wrapper generation. Heavy work-in-progress. 2011-12-02 11:27:04 +00:00
the_fiddler
442a17d799 Fixed encoding error that prevent compilation on Linux. 2011-09-26 13:23:19 +00:00
the_fiddler
52678e9479 Modified CppSpecWriter to generate single-file bindings. 2011-09-26 11:18:57 +00:00
the_fiddler
f4f0b97f7c Added UniformBlockReferencedByGeometryShader token to ActiveUniformBlockParameter. Fixes issue [#2616]: "ActiveUniformBlockParameter.UniformBlockReferencedByGeometryShader is missing". 2011-07-26 14:09:12 +00:00
the_fiddler
97f47e8cdc Added ColorWritemask to GetIndexedPName. Fixes issue [#2509]: "Missing GetIndexedPName.ColorWritemask as GetBoolean parameter". 2011-07-26 12:35:50 +00:00
the_fiddler
43afd8cf57 Added missing tokens for ARB_texture_buffer_object (core since GL3.1). Fixes issue [#2615]: "GetPName.MaxTextureBufferSize is missing". 2011-07-26 12:14:17 +00:00
the_fiddler
6f53e40a5a Updated OpenGL signatures using gl.spec revision 15037 (06 July 2011). 2011-07-26 11:55:13 +00:00
the_fiddler
55324777ca 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
91519cb62b * Structures/Enum.cs: Marked code that needs to be refactored. 2011-07-20 10:08:27 +00:00
the_fiddler
2fc35f4d70 Add APIENTRY to allow calling convention definitions. 2010-12-07 01:26:11 +00:00
the_fiddler
30238a15b7 Use namespaces instead of structs, since C++ does not support partial structures (which are necessary for the core/compatibility split). 2010-12-06 22:32:47 +00:00
the_fiddler
43b2f2ea9b Keep a reference to the file being read. 2010-12-06 22:32:11 +00:00
the_fiddler
fabd5fb470 Improved argument parsing code. 2010-12-06 15:19:45 +00:00
the_fiddler
355f5beb7b Do not reuse a single StreamReader for reading signatures. Avoids issues with XPathDocument closing the stream behind our backs. 2010-12-06 14:34:16 +00:00
the_fiddler
9290714716 * XmlSpecReader.cs:
* EnumProcessor.cs:
* GL2/Generator.cs:
* FuncProcessor.cs: Fixed handling of overrides file: we now add
  signatures as requested and reset the stream after we are done
  reading the file.
2010-12-06 12:29:18 +00:00
the_fiddler
4c8ab01b01 * EnumProcessor.cs:
* FuncProcessor.cs: Corrected the XPath for signature overrides.
2010-12-06 11:53:50 +00:00
the_fiddler
54f940a82a * CppSpecWriter.cs: Do not use macros to define enumerations, as
this makes debugging difficult.
2010-12-06 10:26:06 +00:00
the_fiddler
cdec8f54dc * CppSpecWriter.cs: Do not allow namespaces that start with a digit. 2010-12-06 09:52:05 +00:00
the_fiddler
9d85ba0f98 * CppSpecWriter.cs: Added inclusion guards to gldefs++ header. 2010-12-06 00:50:36 +00:00
the_fiddler
1ba7a853a4 * CppSpecWriter.cs: Renamed output files to gldef++.
Added preprocessor macros for enum generation.
2010-12-06 00:46:23 +00:00
the_fiddler
aedaeb1276 * Main.cs: Do not use "/" as a separator, because this breaks
filesystem paths on Unix.
2010-12-05 22:58:20 +00:00
the_fiddler
4d14448bbf * CppSpecWriter.cs: Fixed indentation for #if-#endif directives. 2010-12-05 22:58:05 +00:00
the_fiddler
f9528892ae * CppSpecWriter.cs: Fixed enumeration of deprecated functions.
Fixed declaration of Init() methods.
2010-12-05 16:28:30 +00:00
the_fiddler
b2d603efa8 * CppSpecWriter.cs: Fixed namespace paths for delegate loader. 2010-12-05 16:19:49 +00:00
the_fiddler
6b0784c6ca * CppSpecWriter.cs: Replace String[] parameters by String*, as the
former is not valid C++ syntax.
2010-12-05 16:03:42 +00:00
the_fiddler
e23230de06 * CppSpecWriter.cs: Remove unnecessary transformation for namespace
separators.
2010-12-05 15:54:14 +00:00
the_fiddler
fa0a7b5eec * 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
95a906647e * 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
84dcb6395f * CppSpecWriter.cs: Fixed handling of return types in wrappers.
Removed [OutAttribute] from the header.
2010-12-05 15:33:09 +00:00
the_fiddler
c43b148431 * CppSpecWriter.cs: FIxed handling of enum parameters.
Moved delegates to private structures.
2010-12-05 15:26:54 +00:00
the_fiddler
c765eaeb55 * CppSpecWriter.cs: Added definitions for GL types. 2010-12-05 11:52:51 +00:00
the_fiddler
5b4df1cdaa * CppSpecWriter.cs: Move 3dfx namespace to T3dfx, since namespaces
may not start with a digit.
2010-12-05 11:32:49 +00:00
the_fiddler
e8daa7bcfa * Main.cs:
* Settings.cs:
* Utilities.cs: Use separate keyword lists for each language.
2010-12-05 11:24:05 +00:00
the_fiddler
441c2cc15f * CppSpecWriter.cs: Fixed declaration of function pointers. Modified
to use the delegate-wrapper paradigm, instead of exposing function
  pointers directly. This way we can rely on the compiler for overload
  resolution.
2010-12-05 10:47:06 +00:00
the_fiddler
7469180c13 * Specifications/License.txt: Removed #region-#endregion from the
license file, in order to make it compatible with C++.
2010-12-05 10:46:09 +00:00
the_fiddler
b4834360cc * CppSpecWriter.cs: Defined Init() methods, declared all OpenGL
functions and fixed the formatting of the header.
2010-12-05 09:51:36 +00:00
the_fiddler
4a5313ad47 * CppSpecWriter.cs: Added constructor declaration. 2010-12-05 09:08:57 +00:00
the_fiddler
b3649572ea * CppSpecWriter.cs: Mark deprecated functions. 2010-12-05 08:48:44 +00:00
the_fiddler
863e2b6542 * CppSpecWriter.cs: Improved C++ output (still needs work). 2010-12-05 02:20:18 +00:00
the_fiddler
4ef1407f04 * Main.cs:
* ES/ESGenerator.cs: Improved handling of default namespace to avoid
  clash with user overrides.
2010-12-05 02:19:47 +00:00
the_fiddler
8e089cc1c3 Merged gl4 branch into trunk 2010-12-04 21:51:40 +00:00
the_fiddler
ce85a5f481 * Source/OpenTK/OpenTK.csproj:
* Source/Bind/Generator.Bind.csproj:
* Source/Examples/OpenTK.Examples.csproj:
* Source/GLControl/OpenTK.GLControl.csproj:
* Source/Converter/Generator.Convert.csproj:
* Source/Build.UpdateVersion/Build.UpdateVersion.csproj: Normalized
"Documentation" configuration with "Release" configuration.
2010-11-02 17:39:43 +00:00
the_fiddler
d4d9d58a8a Added UNSIGNED_INT to ActiveUniformType enum. Fixes issue [#2077]: "Add UnsignedInt to ActiveUniformType". 2010-10-13 20:42:58 +00:00
the_fiddler
9d562fb683 All projects now read common AssemblyInfo items from GlobalAssemblyInfo.cs. The various AssemblyInfo.cs files now only contain project-specific information. Assembly versions are now controlled by Build.UpdateVersion. 2010-10-04 21:37:33 +00:00
the_fiddler
1f143285c2 Added keyfile and strong-named all projects. 2010-10-04 14:39:42 +00:00
the_fiddler
e10378cd30 Removed app.config file that somehow made it into the csproj. 2010-10-03 12:38:19 +00:00
the_fiddler
10f333c24f Added Generator.Bind and Generator.Convert projects.
Fixed msbuild compilation by removing the 3.5 bootstrap ItemGroups. (VS2010 added those on its own - hey, we are targeting v2.0 and we are not using ClickOnce!)
2010-10-03 12:30:39 +00:00
the_fiddler
1f4b5be7d0 Synced trunk with 1.0 branch. 2010-10-02 18:52:34 +00:00
the_fiddler
3f8f9b09e3 Synced with 1.0 branch. 2010-03-11 22:53:11 +00:00
the_fiddler
803636ea95 Added explicit ActiveUniformParameter enum for GetActiveUniforms function. Fixes issue [#1443]: "GetActiveUniforms parameter name". 2010-02-03 20:43:42 +00:00
the_fiddler
6dcb354854 Added missing TEXTURE_LOD_BIAS token to TextureParameterName. Fixes issue [#1531]: "TextureParameterName enum missing TEXTURE_LOD_BIAS element". 2010-02-03 20:17:02 +00:00
the_fiddler
99a3803e8a Backported fix for issue [#1538] from 1.0 branch. 2010-02-03 19:55:09 +00:00
the_fiddler
da7e4c7252 Backported bugfixes from 1.0 branch. 2010-02-03 19:04:42 +00:00
the_fiddler
6d6ad9646a * Source/OpenTK/Compute/CL10/CL.cs:
* Source/OpenTK/Compute/CL10/Core.cs:
* Source/Bind/Specifications/csharp.tm:
* Source/OpenTK/Compute/CL10/Delegates.cs: cl_context_properties
  should be mapped to IntPtr, not int.
Modified CreateContext signature to return ErrorCode rather than plain
  int.

* Source/OpenTK/Compute/CL10/CLHelper.cs: Added helper overloads that
  convert ContextProperties enums into IntPtr internally.
2010-01-04 13:29:21 +00:00
the_fiddler
e8e1c82582 CreateContext should return an ErrorCode, not an int. 2010-01-04 13:23:56 +00:00
the_fiddler
35956701ae Merged fix for [#1098] from branches/1.0. 2009-11-17 09:33:14 +00:00
the_fiddler
f12cbf1cd5 Synced trunk with 1.0 branch. 2009-11-16 18:45:41 +00:00
the_fiddler
18109103e3 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
d757b00e0a Added missing TextureBuffer token to BufferTarget and TextureTarget enums (promoted from ARB_texture_buffer_object). Fixes issue [#1313]: "TextureBuffer target". 2009-11-03 10:33:24 +00:00
the_fiddler
dc572d7a6f Added type-safe parameters to FramebufferTexture (fixes issue [#1303]: "[GL] fix FramebufferTexture parameters"). 2009-11-03 10:22:50 +00:00
the_fiddler
00d966641b * DocProcessor.cs: Remove any trailing newlines in XML docs. Output
between Mono/Linux and .Net/Windows is now consistent.
2009-11-03 08:48:49 +00:00
the_fiddler
041c491f19 Fixed an issue where "const unsigned [type] [pointer]" parameters where not parsed correctly. Solves issue [#1300]: "[OpenCL] Possible bug at CL.CreateProgramWithBinary". 2009-11-01 19:15:44 +00:00
the_fiddler
792c4e3645 Merged es20 branch back into trunk. 2009-10-28 23:09:25 +00:00
the_fiddler
158f1af9d3 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
353ef37dd4 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
b2bc058ac9 Added override for GetProgramInfoLog: infolog parameter should have a flow of 'out'. 2009-10-17 16:31:33 +00:00
the_fiddler
04f2ba433a Support adding new enum definitions through overrides.xml. 2009-10-14 22:50:25 +00:00
the_fiddler
eb2d1c3c91 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
1c36410eb1 * signatures.xml: Fixed long enum types. 2009-10-09 06:01:39 +00:00
the_fiddler
76dcd00b9f * 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
3c884568f6 * Generator.cs: Use Settings.FunctionPrefix when searching for
documentation (instead of hardcoded "gl" prefix).
2009-10-09 05:34:10 +00:00
the_fiddler
79b6329ff5 * Main.cs:
* CL/CLGenerator.cs: Made CLGenerator inherit from ESGenerator. Reduces code duplication significantly.
2009-10-09 05:25:53 +00:00
the_fiddler
80e385b98b * Specifications/CL10/signatures.xml: Updated specs with information on enum types (long or int). 2009-10-09 05:09:23 +00:00
the_fiddler
837604a1a6 Updated tokens for ARB_depth_clamp, ARB_vertex_array_bgra, ARB_seamless_cube_map, ARB_provoking_vertex, ARB_draw_elements_base_vertex which where promoted in version 3.2. Fixes issue [#1146]: "[GL3.2] Multiple (minor) corrections". 2009-09-07 18:33:32 +00:00
the_fiddler
5643259379 Updated tokens for ARB_geometry_shader4 (promoted in Version 3.2). Fixes issue [#588]: "ARB_geometry_shader4". 2009-09-07 18:21:39 +00:00
the_fiddler
7c3b758509 Updated tokens for ARB_texture_multisample (promoted in Version 3.2). Fixes issue [#1151]: "ARB_texture_multisample". 2009-09-07 17:56:25 +00:00
the_fiddler
965d101081 Report an error if a constant does not contain either '=' or 'use' in its definition. 2009-09-07 17:49:06 +00:00
the_fiddler
dc337d0e56 Updated in preparation of 0.9.9-2 release. 2009-09-05 18:37:42 +00:00
the_fiddler
fd8e750ad3 Fixed names for MinmaxTarget and SeparableTarget tokens. 2009-09-05 15:31:31 +00:00
the_fiddler
79aa75c3fc Cleaned up EXT_convolution and EXT_histogram tokens that were promoted in version 1.2.
Fixed values for SGI_color_table tokens that were promoted in version 1.2.
2009-09-05 15:27:32 +00:00
the_fiddler
f6da09177e Fixed line endings and set svn:eol-style to native and svn:mime-type to text/plain for .cs files. 2009-09-03 19:01:11 +00:00
the_fiddler
126280fc64 * enumext.spec: Added COLOR_ATTACHMENTi tokens to ReadBuffersMode enum. 2009-09-03 12:51:43 +00:00
the_fiddler
da8355de48 * ES/ESGenerator.cs: Changed default output namespace to 'GL'. 2009-08-26 07:52:58 +00:00
the_fiddler
e0d33e995d * Main.cs: * Main.cs: Fixed a potential index out of range exception
when setting dirName (output path).
2009-08-26 07:52:35 +00:00
the_fiddler
08bc033ff0 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
d09c341dc5 Applied Barlog's "arrange this qualifier" patch. 2009-08-25 15:59:57 +00:00
the_fiddler
ccc4f5291b Applied Jonathan's patch for output directories. 2009-08-25 15:46:22 +00:00
the_fiddler
41f4adb09e Applied Barlog's 02_Bind_2172_ShortenQualifierReferences patch. 2009-08-21 20:28:14 +00:00
the_fiddler
7363110f7e Do not trim 's' from methods ending in "IDs". 2009-08-20 21:38:23 +00:00
the_fiddler
fb1ba33352 Applied Barlog's refactoring patch for using directives. 2009-08-17 12:28:22 +00:00
the_fiddler
b19154b9c5 Now use "Core" as default Settings.ImportsClass. 2009-08-17 10:15:22 +00:00
the_fiddler
ad17c228be Added missing types to list of non-CLSCompliant types. 2009-08-15 17:41:25 +00:00
the_fiddler
964427dce2 Removed "static" identifier from main wrappers class (add, if necessary, through the Helper.cs). 2009-08-15 17:35:20 +00:00
the_fiddler
592348ea78 Removed spurious constants. 2009-08-15 17:33:13 +00:00
the_fiddler
86a1606e89 Added GLeglImageOES type. 2009-08-15 17:32:49 +00:00
the_fiddler
1da12e8a0b Do not allow constant names to start with numbers. 2009-08-15 17:32:35 +00:00
the_fiddler
070ba4ba59 Fixed Nvidia fences extension (did not specify parameter names). 2009-08-15 17:16:04 +00:00
the_fiddler
66b8f317f4 * Main.cs: Accept -mode:cl as an alias for -mode:cl10 2009-08-12 10:12:44 +00:00
the_fiddler
62e19c43a1 * Generator.cs: Use correct function prefix in AutoGenerated
attribute.
2009-08-12 10:12:16 +00:00
the_fiddler
a495ca8c7c * 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
04e8dc3472 * BindStreamWriter.cs: Fixed workaround for indentation on Linux (indentation seems to be applied twice). 2009-08-12 08:33:49 +00:00
the_fiddler
130831cc3b Mapped uchar to byte. 2009-08-11 19:25:26 +00:00
the_fiddler
8b374c9c70 Added several more overrides to change "int errcode_ret" to "ErrorCode errcode_ret". 2009-08-11 19:24:44 +00:00
the_fiddler
fa14139982 Regenerated signatures using the latest fixes for function pointer parameters. All methods with function pointers should be now correct. 2009-08-11 19:18:51 +00:00
the_fiddler
32278aabe4 Regenerated bindings with fixed function pointers. 2009-08-11 18:51:43 +00:00
the_fiddler
0dc06de649 Added support for empty or null typemaps. 2009-08-11 15:33:17 +00:00
the_fiddler
7c44c50bab Renamed CommandQueuePropertiesFlags to CommandQueueFlags. 2009-08-11 15:31:10 +00:00
the_fiddler
b99d03db59 Bumped version number. 2009-08-11 14:20:46 +00:00
the_fiddler
8e1607de22 Reverted commit 2028 (Jonathan's formatting patch for Bind output), since it broke formatting on Windows. Added temporary workaround until the real cause of the issue is discovered and fixed. 2009-08-11 14:17:27 +00:00
the_fiddler
3ec5303e37 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
3661428bce 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
d51daefeb6 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
cb41426473 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
2fd96cc706 Added missing OpenCL types. 2009-08-11 14:02:44 +00:00
the_fiddler
7149a0292b Added overrides for several OpenCL methods that return error codes (they returned plain integers previously).
Added overrides for problematic values in 'Unknown' enum.
Added overrides for string[] parameters.
2009-08-11 14:02:10 +00:00
the_fiddler
94afe0a8b9 Regenerated signatures (now contain flow for function parameters). 2009-08-11 14:01:06 +00:00
the_fiddler
1cecc8fdfa Regenerated signatures. 2009-08-11 13:53:56 +00:00
the_fiddler
5edfb98d03 Now uses 'cl' prefix instead of 'gl' for OpenCL bindings.
Fixed handling of output directory.
2009-08-09 17:57:01 +00:00
the_fiddler
010eb9e520 Added OpenCL types to the typemap. 2009-08-09 17:56:20 +00:00
the_fiddler
ba3b08eead Deleted CL directory (has been renamed to CL10). 2009-08-09 17:55:32 +00:00
the_fiddler
f8bc7e1f30 Parameter name "event" is not allowed in .Net. Replaced with "@event". 2009-08-09 17:47:15 +00:00
the_fiddler
f244e634a3 Updated OpenCL signatures. 2009-08-09 17:36:26 +00:00
the_fiddler
78799042b1 Renamed CL mode to CL10. 2009-08-09 15:46:36 +00:00
the_fiddler
e105703b35 Renamed to CL10 for compatibility with future spec releases. 2009-08-09 15:40:48 +00:00
the_fiddler
b9583391e9 Regenerated ES 1.0 and 2.0 signatures. 2009-08-09 15:31:58 +00:00
the_fiddler
637b9de3ec Updated OpenCL signatures.xml. 2009-08-09 15:24:34 +00:00
the_fiddler
5408787be8 Updated version information. 2009-08-04 10:01:33 +00:00
the_fiddler
40e0cdb694 Merged the OpenGL 3.2 specifications. 2009-08-03 23:10:37 +00:00
the_fiddler
0f750bb6bd * BindStreamWriter.cs: Committed Jonathan's formatting patch for the
generated bindings.
2009-08-03 23:09:37 +00:00
the_fiddler
7bd16f153e * GL2/Generator.cs: Improved handling for 'u' and 'ull' suffixes in
OpenGL constants.
2009-08-03 23:06:05 +00:00
the_fiddler
1092fd8f3a Regenerated the ES11 signatures using the updated converter. 2009-08-03 22:01:10 +00:00
the_fiddler
34613184b8 * Utilities.cs: Added AMD to extension list. 2009-08-01 14:42:54 +00:00
the_fiddler
010ac1a9c2 * Utilities.cs: Committed Jonathan's patch for ES extensions. Fixed
IsGL2Extension.
2009-07-31 09:24:49 +00:00
the_fiddler
65dc4140ab Initial work on OpenCL binding generation. 2009-07-22 14:36:39 +00:00
the_fiddler
a2ea5f719d Added OpenCL XML specs to the generator. 2009-07-22 14:25:47 +00:00
the_fiddler
b9975e835a 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
a356b69d85 Fixed GetString, GetShaderSource and ShaderSource signatures. 2009-07-15 22:31:28 +00:00
the_fiddler
90a9fe13e9 Changed default GLES* namespaces to ES*.
Changed -mode options for ES (-mode:es* instead of -mode:gles*).
Bumped version number.
2009-07-15 15:03:22 +00:00
the_fiddler
7fba91da26 Worked around File.Replace issue on Linux by deleting the existing file first. Not perfectly safe, but acceptable for our use. 2009-07-15 15:01:55 +00:00
the_fiddler
523b64235d Renamed GlesGenerator.cs to ESGenerator.cs.
Minor changes to match the new xml specs (the root node is now 'signatures').
2009-07-15 14:59:10 +00:00
the_fiddler
d161aec41e Removed obsolete file. 2009-07-15 14:20:46 +00:00
the_fiddler
dd4840a7b9 Regenerated xml files for ES 1.0, 1.1, 2.0. 2009-07-15 14:06:58 +00:00