Stefanos A
440e3fe248
Load ES30 and OpenGL4 entry points
2013-11-09 15:07:16 +01:00
Stefanos A
2725b3cd08
Fix support for 3.2+ contexts (issue 3111)
...
glXGetProcAddress may return a non-null value even if a function is not
supported by the server. We need to check the extension string using
any GLX extensions. Fixes issue http://www.opentk.com/node/3111 "GLX
extension support is not checked correctly".
Furthermore, mode selection is now performed explicitly by the
X11GLContext constructor.
2013-11-09 11:16:14 +01:00
Stefanos A
3c71634667
Temp context not necessary for GLX
...
GLX entry points are not bound to a specific context. This means that, unlike WGL, GLX does not require a temporary context in order to load its entry points!
2013-11-09 11:07:37 +01:00
Stefanos A
6edaf8c3cf
Deduplicate MacOSGraphicsMode and AglContext
...
The IGraphicsMode interface is gradually being removed and the
MacOSFactory will now throw an exception if an instance is requested.
AglContext no longer duplicates MacOSGraphicsMode functionality.
2013-11-08 18:44:02 +01:00
Stefanos A
f77a6b11c3
SDL_GL_GetAttribute requires a valid context
...
Calling SDL_GL_GetAttribute when context construction has failed leads
to erroneous behavior. This call should only be made when a context has
been constructed correctly.
2013-11-08 17:31:54 +01:00
Stefanos A
5b5a395bbd
Merge branch 'master' of https://github.com/thefiddler/opentk into modes
2013-11-08 16:41:20 +01:00
Stefanos A
49df5ff453
Do not generate delegates for overloads
...
We should only generate delegates for actual OpenGL entry points, not
for overloaded functions that resolve to the same entry point. This
improves loading speeds and reduces the size of the compiled dll.
2013-11-08 16:40:43 +01:00
Stefanos A
5a2fc1e411
Added missing doc comment
2013-11-08 15:33:41 +01:00
Stefanos A
e0ffd9b42d
More sane Sdl2Factory.CreateGetCurrentContext() implementation
2013-11-08 15:26:52 +01:00
Stefanos A
29fe1052de
Added SDL_GL_GetCurrentContext method and TouchMouseID constant.
...
SDL_GL_GetCurrentContext will allow us to replace the weird
implementation in Sdl2Factory.CreateGetCurrentGraphicsContext()
and the latter to disable mouse emulation if we wish to.
Conflicts:
Source/OpenTK/Platform/SDL2/Sdl2.cs
2013-11-08 15:25:42 +01:00
Stefanos A
eba7e59253
Fixed ES rendering.
2013-11-08 10:56:45 +01:00
Stefanos A
28fa768257
Fixed platform detection for Android
...
Conflicts:
Source/OpenTK/Configuration.cs
2013-11-08 10:54:50 +01:00
Stefanos A.
a51540e8d9
Updated WGL init sequence
...
WinGraphicsMode no longer creates a temporary context in order to create
the list of available modes. Instead, it requires to be passed an
existing context in its constructor.
WinGLContext now creates one temporary context in its static constructor
and hands that to WinGraphicsMode.
WinFactory no longer supports the CreateGraphicsMode API. This API will
be removed in the future, because the link because contexts and modes
cannot be separated in the general case.
2013-11-08 10:46:27 +01:00
Stefanos A.
c9b905d235
Stronger check for ES support
...
It is not enough to check for EGL, we also need to check that
ContextProfileFlags.ES is set.
2013-11-08 10:42:48 +01:00
Stefanos A.
2cd91bd0a0
Remove static init of GetCurrentContext
...
The static initializer of GetCurrentContext would always default to the
desktop PlatformFactory, which caused problems when trying to run OpenGL
ES code on the desktop. The initializer is now removed and
GetCurrentContext is set in the context constructor, before creating any
contexts.
2013-11-08 10:41:58 +01:00
Stefanos A.
a12b394607
Load ES30 and OpenGL4 entry points
2013-11-08 10:39:08 +01:00
Stefanos A.
03c04fd308
Workaround for issues #4 and #6
...
GraphicsMode.Default used to be set to
(DisplayDevice.Default.BitsPerPixel, 16, 0, 0, 0, 2, false) for improved
compatibility with older systems. However, this appears to be causing
issues with specific modern GPUs. Switch the default mode to (32, 24, 8)
until a more proper solution can be found.
2013-11-07 18:42:17 +01:00
Stefanos A
b6610001ea
Merged ES 2.0 extension tokens to ES 3.0
...
By adding ES 2.0 extensions tokens to ES 3.0, we have a very
straightforward update path to move an application from the older API
to the newer.
2013-11-07 16:54:39 +01:00
Stefanos A
be8f7c6311
Corrected ES 2.0 enums
...
After the previous commit, several ES 2.0 functions would refer to
enums found in ES 3.0. These enums have been copied to ES 2.0, either
as core enums or as extensions.
2013-11-07 16:25:19 +01:00
Stefanos A
735d05e496
Merged ES2.0 and ES3.0 replacements
...
ES 3.0 includes ES 2.0 verbatim. We can significantly reduce
duplication by using the same <replace> node for both APIs. Note that
the enumerations must remain separate, as ES 2.0 and 3.0 support
different tokens.
2013-11-07 11:37:51 +01:00
Stefanos A
7c54a19708
ES 3.0 fixed enums for GetIntegeri_v and GetInteger64i_v
...
These functions have a first parameter named "target", not "pname".
Fixed now.
2013-11-07 10:58:02 +01:00
Stefanos A
e59c95f2f9
ES 3.0 fixed enums for GetInteger64*
...
GetInteger64v should accept GetPName, while GetInteger64i_v should
accept GetIndexedPName.
2013-11-07 10:39:20 +01:00
Stefanos A
8de24c97fb
ES 3.0 strong enums for DrawBuffersEXT and NV
...
Relax the extension constraint in DrawBuffers, in order to add strong
enums to the extension varieties of this function.
2013-11-07 10:33:02 +01:00
Stefanos A
2d1df46d98
ES 3.0 strong enums for DrawArrays*() and Draw*Elements*()
...
The strongly-typed enums include core and extension varieties.
2013-11-07 10:17:33 +01:00
Stefanos A
0002b2e23e
Fixed typo in ES3Generator.cs
...
The DllImports file should be named ES30Core.cs, not ES3Core.cs. Fixed
now.
2013-11-07 10:09:17 +01:00
Stefanos A
0f98f0e00b
Fixed misspelled and missing enums
2013-11-07 09:47:27 +01:00
Stefanos A
93b8d4b86e
Fixed enums for (Get)ObjectLabel
...
ObjectLabel and GetObjectLabel are part of KHR_debug.
2013-11-07 09:34:48 +01:00
Stefanos A
0598e02140
Fixed enums for GetDebugMessageLog
...
GetDebugMessageLog was misspelled as GetMessageDebugLog. This is now
fixed.
2013-11-07 08:39:57 +01:00
Stefanos A
de38df8820
Fixed strong-enums for GetDebugMessageLog
...
GetDebugMessageLog is part of KHR_debug.
2013-11-07 08:36:23 +01:00
Stefanos A
a2f2ab29ea
Fixes for ES 3.0 strongly-typed enums
...
Fixed parameter mismatches in CopyBufferSubData and BlendFuncSeparate.
Implemented KHR_debug extension.
2013-11-07 08:33:17 +01:00
Stefanos A
2f3d79d464
Merge branch 'master' of https://github.com/thefiddler/opentk
2013-11-07 08:15:18 +01:00
Stefanos A
2b4d10ffd7
Strongly-typed enums for ES 3.0 (complete)
...
Implemented sectiosn: Pixel Rectangles. Binding & Managing Framebuffer
Objects, Renderbuffer Objects, Attaching Renderbuffer Images to
Framebuffer, Attaching Texture Images to Framebuffer, Framebuffer
Completeness, Invaildating Framebuffer Contents, Renderbuffer Object
Queries, Simple Queries, String Queries.
2013-11-07 08:14:49 +01:00
Stefanos A.
62c9793a6e
Fixed number of buffers
...
ContextAttribute.DOUBLEBUFFER is a boolean in SDL (false->single
buffering, true->double buffering). We need to adjust the number of
buffers accordingly (single buffering->1 buffer, double buffering->2
buffers).
2013-11-06 01:04:59 +01:00
Stefanos A
21a1ca8895
Switch to EnumDisplayModesEx
...
Use EnumDisplayModesEx instead of EnumDisplayModes. This might help
with issue #6 .
2013-11-05 23:41:42 +01:00
Stefanos A
a4f125f16e
Added workaround for issue #6
...
The issue is that some display devices report a BitsPerPel value of 0.
It is not clear whether this is a bug in WinDisplayDevice.cs or some
strange windows issue. The implemented workaround adds an entry to the
debug log and hardcodes BitsPerPel to 32 whenever this condition is
encountered. More investigation required.
2013-11-05 23:21:49 +01:00
Stefanos A
1a02457ddc
Strongly-typed enums for ES 3.0 (WIP8)
...
Implemented sections: Hints and Sync Object Quries.
Renamed SyncParameter to SyncParameterName, as per the OpenGL naming
conventions.
2013-11-05 10:23:25 +01:00
Stefanos A
167c97dd84
Strongly-typed enums for ES 3.0 (WIP7)
...
Implemented section: Sync Objects and Fences [5.2].
Fixed desktop OpenGL wrapper for ClientWaitSync and FenceSync.
2013-11-05 09:53:34 +01:00
Stefanos A
ad1755f58e
Moved overload to overrides.xml
...
Overloads for backwards compatibility should now be placed in an
<overload> element inside overrides.xml.
2013-11-05 09:44:20 +01:00
Stefanos A
2511cb1086
Implemented support for <overload> element
...
The <overload> element simplifies the addition of overloads for
backwards compatibility. It is defined similar to the <replace>
element, but instead of replacing the parameters of a function
in-place, it adds a new overload and modifies the overload instead.
2013-11-05 08:55:52 +01:00
Stefanos A
25b9939263
Strongly-typed enums for ES 3.0 (WIP6)
...
Implemented strongly-typed enums for sections: Selecting a Buffer for
Writing, Fine Control of Buffer Updates, Clearing the Buffers.
2013-11-04 23:25:02 +01:00
Stefanos A
372dac9c48
Strongly-typed enums for ES 3.0 (WIP5)
...
Implemented sections: Stencil Test, Depth Buffer Test, Blending.
2013-11-04 23:01:25 +01:00
Stefanos A
dcd2d03e59
Strongly-typed enums for ES 3.0 (WIP4)
...
Implemented sections: Texture Image Specification, Alternative Texture
Image Specification, Compressed Texture Images, Texture Parameters,
Manual Mipmap Generation and Enumerated Queries.
2013-11-04 22:27:06 +01:00
Stefanos A
20e70062f8
Strongly-typed enums for ES 3.0 (WIP3)
...
Implemented sections: Texturing, Sampler Objects, Sampler Queries,
Texture Image Specification.
2013-11-04 19:49:25 +01:00
Stefanos A
9b5be9300b
Strongly-typed enums for ES 3.0 (WIP2)
...
Added strongly-typed enums for sections: Vertices, Shaders and
Programs. Added a number of missing enums for ES 2.0. Normalized
several APIs between OpenGL and OpenGL ES.
2013-11-04 00:04:09 +01:00
Stefanos A
af78a01643
Strongly-typed enums for ES 3.0 (WIP)
...
Implemented strongly-typed enums for sections: Buffer Objects,
Asynchronous Queries, Transform Feedback, ReadingandCopying Pixels and
Rasterization.
2013-11-03 21:30:25 +01:00
Stefanos A
7978627ad4
Merge Delegate.Version
...
When a Delegate is defined multiple times in the spec, we should check
if any of these definitions contains a proper Delegate.Version and
store that. This improves the self-documentation aspect of the bindings.
2013-11-03 20:41:29 +01:00
Stefanos A
7322828304
Regenerated the bindings using the latest specs
2013-11-03 20:36:22 +01:00
Stefanos A.
6f08995963
Added PrimitiveType <=> BeginMode overloads
...
Khronos renamed BeginMode to PrimitiveType starting with GL 4.4.
OpenTK now has overloads for both flavors.
2013-11-03 16:11:39 +01:00
Stefanos A
60f971ffed
Updated to the latest gl4 specs and docs
...
Large code-drop from Khronos upstream.
2013-11-03 12:43:50 +01:00
Stefanos A
7c3e29012f
Bindings for GL4.4, ES1.1, ES2.0 and ES3.0
...
The new bindings are based on the fresh gl.xml registry by the Khronos
group.
2013-11-03 12:34:19 +01:00
Stefanos A
f835c63444
Added DebugProc for KHR_debug
2013-11-03 12:33:17 +01:00
Stefanos A.
6c16835d8c
Added doc comment on ColorFormat.Empty.
2013-11-03 01:44:31 +01:00
Stefanos A.
0746334ab3
Regenerated bindings with the latest generator
...
The new bindings have improved enum documentation and fix an issue with
incorrect overloads in wrappers with generic parameters.
2013-11-01 09:29:42 +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.
1a1ef03396
The last parameter of GL.ShaderSource should be an array.
2013-10-25 16:30:50 +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.
be6c583f4f
Implemented Sdl2GraphicsMode..
2013-10-24 09:32:17 +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.
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.
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
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.
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.
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
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
Stefanos A
73e3614338
Merge branch 'scancodes'
...
Conflicts:
Source/OpenTK/OpenTK.csproj
Source/OpenTK/Platform/Windows/WinFactory.cs
2013-10-11 01:05:55 +02:00
Stefanos A
5aba35668b
Always Set HIDPI flag
...
It does not to set this flag on previous SDL2 versions, it is ignored silently when not supported.
2013-10-10 00:34:15 +02:00
Stefanos A
459313dca8
Fixed line endings
2013-10-10 00:18:59 +02:00