Commit graph

4976 commits

Author SHA1 Message Date
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.
e0664993bb Multi-API support for XML spec parser
The XML spec parser now generates signatures for multiple APIs (gl,
glcore, gles1, gles2). Additionally, it supports per-token deprecation
attributes.
2013-10-27 23:47:52 +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.
816f1e5c7f Fixed the DebugProc signatures.
The various DebugProc* delegates now conform to their specifications.
2013-10-27 01:32:08 +02:00
Stefanos A.
f57b53b677 Regenerated using latest generator. 2013-10-27 01:31:20 +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.
d992f9474f Fixed the parsing of extensions. 2013-10-26 00:07:00 +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.
1a1ef03396 The last parameter of GL.ShaderSource should be an array. 2013-10-25 16:30:50 +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.
65ff060ca5 Corrected the values of the GL_NEXT_BUFFER_NV and
GL_SKIP_COMPONENTS_*_NV extensions.
2013-10-25 16:10:51 +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.
b15066bd03 Strip struct and const identifiers from the output. This matches the
old .spec files.
Group attributes in parameters no longer overwrite the pointer order
or const-ness of the parameter.
2013-10-25 08:55:12 +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.
d4c1cb1bb3 Improved grouping of enumerations. Fixed missing extension
enumerations.
2013-10-24 20:56:28 +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.
780d5e60c2 Return type should be defined in the "type" attribute of the returns
element.
2013-10-24 18:42:52 +02:00
Stefanos A.
2378bef21e Tokens in "All" enum should have a name of "token" not "enum". 2013-10-24 18:41:09 +02:00
Stefanos A.
0cb722c908 Implemented translation of function attributes (api, category,
deprecated, extension, version).
2013-10-24 18:32:09 +02:00
Stefanos A.
88438102a2 Initial implementation of new XML spec parser. 2013-10-24 17:19:52 +02:00
Stefanos A.
be6c583f4f Implemented Sdl2GraphicsMode.. 2013-10-24 09:32:17 +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
640c75be2d Updated to SDL 2.0.1 2013-10-24 08:56:44 +02:00
Stefanos A.
192fedbca5 Removed sdl2-cs in favor of a leaner, better-designed binding. 2013-10-24 02:02:35 +02:00
Stefanos A
7aa5499f3e Merge branch 'gl4' of https://github.com/thefiddler/opentk 2013-10-24 01:47:00 +02:00
Stefanos A
80f0569f9a Implemented new, leaner SDL2 binding.
The new binding is based on the SDL2.0.1 RC1 headers.
2013-10-24 01:45:13 +02:00
Stefanos A
d8089a7732 Updated documentation according to the latest GL4 manpages. 2013-10-23 20:19:16 +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