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