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.
bfbc37fb92
Remove deprecated elements from glcore
...
Deprecated elements are marked as such in the compatibility profile and
are completely absent from the core profile. This is in-line with the
new glcore headers from Khronos.
2013-10-31 00:20:59 +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.
51cb1f02db
Improve sorting; remove enum-function distinction
...
Both enums and functions are now stored under a single <add> element.
Their ordering is now maintained by sorting over all possible
attributes.
2013-10-29 19:35:35 +01:00
Stefanos A.
784d60b556
Corrected apiname xpath lookup
2013-10-29 09:32:28 +01:00
Stefanos A.
faa3330375
Explicitly merge functions
...
Some functions are part of multiple features or extensions. For
documentation purposes, we need to correctly merge their attributes.
2013-10-29 09:32:09 +01:00
Stefanos A.
6185059adc
More line ending troubles...
2013-10-28 14:28:57 +01:00
Stefanos A.
8f1c3a2d08
Allow comparison of function elements
...
This allows us to store both enums and functions in the same tree.
2013-10-28 14:15:58 +01:00
Stefanos A.
3eaffc5570
Stable sort and correct extension names
...
Use a stable sort for generated elements, in order to make the generated
file work better with version control. Extension names are now extracted
directly from function names - solves issues with functions that are
defined in multiple extensions.
2013-10-28 14:15:17 +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.
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.
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
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
967a6514de
Merge branch 'master' into gl4
2013-10-22 17:03:39 +02:00
Stefanos A
907a1de89f
Line ending fix.
2013-10-22 17:03:16 +02:00
Stefanos A
dc00ea7ea5
Merge branch 'master' of https://github.com/thefiddler/opentk
2013-10-22 16:58:33 +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.
a23b846800
Updated to the latest 4.3 specs (WIP).
2013-10-22 13:22:22 +02:00
Stefanos A.
df8626740a
Fixed exception while parsing the 4.3 specs.
...
This was caused by changes in the .spec file definitions between 4.1
and 4.3.
2013-10-22 11:58:23 +02:00
Stefanos A.
c49f9cd4a1
Implemented compatibility overloads for the changes introduced by the
...
4.3 .spec files.
Added DebugProc definition required in the 4.3 specs.
2013-10-22 11:57:18 +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.
992ae7947a
Added usage example.
2013-10-22 11:40:41 +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
Stefanos A.
0d3ab7174c
Fixed crash on 32-bit machines
...
uint-to-intptr conversion must obey uint-to-int conversions on 32-bit
machines, otherwise an OverflowException may occur: conversions of
numbers over 2^31-1 must be declared as unchecked.
Fixes issue reported here: http://www.opentk.com/node/3418
2013-10-21 19:41:26 +02:00
thefiddler
581919cb1c
Initial work on new gl xml spec support.
2013-10-21 18:28:01 +02:00
thefiddler
4dfcf39d26
Added missing DllImport attribute.
...
Fixes thefiddler/opentk#1
2013-10-12 19:43:26 +02:00
Stefanos A
915ead34cb
Modify dllimport path on Android builds.
2013-10-12 15:17:10 +02:00
Stefanos A
6df11a8564
Fixed incorrect self-assignment statements
2013-10-12 15:16:05 +02:00
Stefanos A
30e42bb6dd
[DllImport] registry methods when the Microsoft.Win32 namespace is not
...
available (untested).
2013-10-12 05:15:46 +02:00
Stefanos A
70818d97e1
Fixed compilation on desktop platforms.
2013-10-12 05:14:51 +02:00
Stefanos A
863edc35d1
Added Xamarin.Android target
2013-10-12 05:08:27 +02:00
Stefanos A
d27904292d
System.Drawing is required for Point, Size and Rectangle types.
2013-10-12 05:07:46 +02:00
Stefanos A
1130d988b0
Use OpenTK.Minimal to stub out missing System.Drawing functionality
...
when building on Android or iOS platforms.
2013-10-12 05:06:54 +02:00
Stefanos A
bb3156d185
Implemented minimal System.Drawing stubs for Xamarin.Android targets.
2013-10-12 04:59:55 +02:00
thefiddler
b64c9d84e7
Why does this file keep changing?
2013-10-11 09:52:53 +02:00
thefiddler
f013c44ba1
Fixed Tilde and Number1 scancodes
2013-10-11 09:51:08 +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