Commit graph

464 commits

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