Stefanos A. [Wed, 23 Oct 2013 08:23:02 +0000 (10:23 +0200)]
Implemented Vertex Post-Processing according to the OpenGL 4.4
specification, section 13.
Stefanos A. [Wed, 23 Oct 2013 07:43:33 +0000 (09:43 +0200)]
Implemented Vertex Attributes according to the OpenGL 4.4
specification, section 11.
Stefanos A. [Wed, 23 Oct 2013 07:31:09 +0000 (09:31 +0200)]
Implemented Vertex Arrays accordign to the OpenGL 4.4 specification,
section 10.
Stefanos A. [Tue, 22 Oct 2013 19:10:14 +0000 (21:10 +0200)]
Fixed version number on VertexAttribP1 methods (should be 3.3, not
1.2).
Stefanos A. [Tue, 22 Oct 2013 19:09:18 +0000 (21:09 +0200)]
Allow version attribute in overrides.xml.
Stefanos A. [Tue, 22 Oct 2013 18:52:37 +0000 (20:52 +0200)]
Implemented strongly-typed Framebuffer and Renderbuffer Objects
according to the OpenGL 4.4 specification, section 9.
Stefanos A. [Tue, 22 Oct 2013 16:37:25 +0000 (18:37 +0200)]
Implemented strongly-typed Texture functions according to the OpenGL
4.4 specification, section 8. See issue #2.
Stefanos A. [Tue, 22 Oct 2013 15:19:19 +0000 (17:19 +0200)]
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.
Stefanos A [Tue, 22 Oct 2013 15:03:39 +0000 (17:03 +0200)]
Merge branch 'master' into gl4
Stefanos A [Tue, 22 Oct 2013 15:03:16 +0000 (17:03 +0200)]
Line ending fix.
Stefanos A [Tue, 22 Oct 2013 14:58:33 +0000 (16:58 +0200)]
Merge branch 'master' of https://github.com/thefiddler/opentk
Stefanos A. [Tue, 22 Oct 2013 14:52:35 +0000 (16:52 +0200)]
Implemented strong-types for Shader and Program Objects according to
the OpenGL 4.4 specification, section 7.
Stefanos A. [Tue, 22 Oct 2013 12:40:49 +0000 (14:40 +0200)]
Updated strong-types for Buffer Objects according to the OpenGL 4.4
spec, section 6.
Stefanos A. [Tue, 22 Oct 2013 12:00:01 +0000 (14:00 +0200)]
Updated strong-types for asynchronous queries, query objects and time
queries according to OpenGL 4.4 spec, section 4.2.
Stefanos A. [Tue, 22 Oct 2013 11:41:31 +0000 (13:41 +0200)]
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.
Stefanos A. [Tue, 22 Oct 2013 11:22:22 +0000 (13:22 +0200)]
Updated to the latest 4.3 specs (WIP).
Stefanos A. [Tue, 22 Oct 2013 09:58:23 +0000 (11:58 +0200)]
Fixed exception while parsing the 4.3 specs.
This was caused by changes in the .spec file definitions between 4.1
and 4.3.
Stefanos A. [Tue, 22 Oct 2013 09:57:18 +0000 (11:57 +0200)]
Implemented compatibility overloads for the changes introduced by the
4.3 .spec files.
Added DebugProc definition required in the 4.3 specs.
Stefanos A. [Tue, 22 Oct 2013 09:56:08 +0000 (11:56 +0200)]
Updated to the latest 4.3 .spec files from the OpenGL registry.
Stefanos A. [Tue, 22 Oct 2013 09:40:41 +0000 (11:40 +0200)]
Added usage example.
Stefanos A. [Tue, 22 Oct 2013 09:39:50 +0000 (11:39 +0200)]
Updated to the latest gl.tm from Khronos public svn.
Stefanos A. [Tue, 22 Oct 2013 09:39:20 +0000 (11:39 +0200)]
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).
Stefanos A. [Mon, 21 Oct 2013 19:43:05 +0000 (21:43 +0200)]
Added ConstCharPointer->string transformation in accordance to GL 4.3
specs.
Stefanos A. [Mon, 21 Oct 2013 19:42:09 +0000 (21:42 +0200)]
Added DebugProc delegate in accordance to GL 4.3 specs.
Stefanos A. [Mon, 21 Oct 2013 17:41:26 +0000 (19:41 +0200)]
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
thefiddler [Mon, 21 Oct 2013 16:28:01 +0000 (18:28 +0200)]
Initial work on new gl xml spec support.
thefiddler [Sat, 12 Oct 2013 17:43:26 +0000 (19:43 +0200)]
Added missing DllImport attribute.
Fixes thefiddler/opentk#1
Stefanos A [Sat, 12 Oct 2013 13:17:10 +0000 (15:17 +0200)]
Modify dllimport path on Android builds.
Stefanos A [Sat, 12 Oct 2013 13:16:05 +0000 (15:16 +0200)]
Fixed incorrect self-assignment statements
Stefanos A [Sat, 12 Oct 2013 03:15:46 +0000 (05:15 +0200)]
[DllImport] registry methods when the Microsoft.Win32 namespace is not
available (untested).
Stefanos A [Sat, 12 Oct 2013 03:14:51 +0000 (05:14 +0200)]
Fixed compilation on desktop platforms.
Stefanos A [Sat, 12 Oct 2013 03:08:27 +0000 (05:08 +0200)]
Added Xamarin.Android target
Stefanos A [Sat, 12 Oct 2013 03:07:46 +0000 (05:07 +0200)]
System.Drawing is required for Point, Size and Rectangle types.
Stefanos A [Sat, 12 Oct 2013 03:06:54 +0000 (05:06 +0200)]
Use OpenTK.Minimal to stub out missing System.Drawing functionality
when building on Android or iOS platforms.
Stefanos A [Sat, 12 Oct 2013 02:59:55 +0000 (04:59 +0200)]
Implemented minimal System.Drawing stubs for Xamarin.Android targets.
thefiddler [Fri, 11 Oct 2013 07:52:53 +0000 (09:52 +0200)]
Why does this file keep changing?
thefiddler [Fri, 11 Oct 2013 07:51:08 +0000 (09:51 +0200)]
Fixed Tilde and Number1 scancodes
thefiddler [Thu, 10 Oct 2013 23:58:54 +0000 (01:58 +0200)]
Normalized line endings
Hopefully this is the first and last time we have to do this.
thefiddler [Thu, 10 Oct 2013 23:57:45 +0000 (01:57 +0200)]
Update .gitattributes
Use automatic line ending conversion
Stefanos A [Thu, 10 Oct 2013 23:16:20 +0000 (01:16 +0200)]
Treate .pdf as binary files
Stefanos A [Thu, 10 Oct 2013 23:11:28 +0000 (01:11 +0200)]
Added line-ending conversions
Stefanos A [Thu, 10 Oct 2013 23:05:55 +0000 (01:05 +0200)]
Merge branch 'scancodes'
Conflicts:
Source/OpenTK/OpenTK.csproj
Source/OpenTK/Platform/Windows/WinFactory.cs
Stefanos A [Wed, 9 Oct 2013 22:34:15 +0000 (00:34 +0200)]
Always Set HIDPI flag
It does not to set this flag on previous SDL2 versions, it is ignored silently when not supported.
Stefanos A [Wed, 9 Oct 2013 22:18:59 +0000 (00:18 +0200)]
Fixed line endings
Stefanos A [Mon, 7 Oct 2013 11:17:42 +0000 (14:17 +0300)]
HIDPI support requires SDL > 2.0.0
SDL_GL_GetDrawableSize was introduced after 2.0.0, so we need to check for that version before we call this method. Fixes MethodNotFounException on vanilla libsdl2-2.0.0 on linux.
Stefanos A [Fri, 4 Oct 2013 15:04:35 +0000 (17:04 +0200)]
Do not copy Dependencies
Since the Example Browser is not loading its Dependencies by itself, there is no point in copying them to the output directory.
Stefanos A [Fri, 4 Oct 2013 15:01:51 +0000 (17:01 +0200)]
Use 7z wildcards to zip tree
Using msbuild/xbuild wildcards results in different behavior between the two implementations. Since we require 7z anyway, it is simpler if we just use that directly.
Stefanos A. [Fri, 4 Oct 2013 14:52:59 +0000 (16:52 +0200)]
Fixed git revision detection
Stefanos A [Fri, 4 Oct 2013 08:03:26 +0000 (10:03 +0200)]
Fixed file not found error
The debug.log would be deleted after launching an example, causing the
example browser to complain that the file cannot be found. In reality,
it should be deleted before launching an example - fixed.
Stefanos A [Fri, 4 Oct 2013 08:02:19 +0000 (10:02 +0200)]
Moved all input processing to Sdl2InputDriver
This reduces the duplication of code between Sdl2NativeWindow and
Sdl2InputDriver. Sdl2InputDriver is now solely responsible for handling
input.
Stefanos A [Fri, 4 Oct 2013 08:00:57 +0000 (10:00 +0200)]
Implemented IDisposable in Sdl2Joystick
Sdl2Joystick calls SDL_JoystickOpen, which means we must call
SDL_JoystickClose on shutdown.
Stefanos A [Fri, 4 Oct 2013 07:57:43 +0000 (09:57 +0200)]
No separate Factory.Embedded for SDL2
Sdl2Factory supports both desktop and embedded profiles, there is no
need to construct a separate Embedded profile.
Stefanos A [Fri, 4 Oct 2013 00:37:41 +0000 (02:37 +0200)]
Sdl2JoystickDriver.Poll() and axis fixes
Stefanos A [Fri, 4 Oct 2013 00:37:05 +0000 (02:37 +0200)]
Display joystick information
Stefanos A [Thu, 3 Oct 2013 23:44:20 +0000 (01:44 +0200)]
New SDL2 library with HiDPI support
Upgraded SDL2 to hg 7778:
a571a9947869, which includes support for the
new SDL_WINDOW_HINT_HIDPI flag.
Stefanos A [Thu, 3 Oct 2013 23:39:22 +0000 (01:39 +0200)]
Initial implementation of IJoystickDriver API
Stefanos A [Thu, 3 Oct 2013 23:38:19 +0000 (01:38 +0200)]
Add support for HiDPI modes
When HiDPI is enabled, the size of the OpenGL surface (specified in
pixels) may no longer correspond to the size of the window (specified
in points). Width, Height, ClientSize and ClientRectangle return the
size of the OpenGL surface in device-dependent pixel coordinates
(origin: top-left pixel of the surface). Bounds and Size return the
size of the window in device-independent point coordinates (origin:
desktop).
Stefanos A. [Thu, 3 Oct 2013 18:53:34 +0000 (20:53 +0200)]
Use locale-independent scancodes
This significantly improves the usability of keyboard input, by allowing
a common input scheme to be used on different keyboard layouts. Text
input will be facilitated through a new API.
Stefanos A. [Thu, 3 Oct 2013 18:52:02 +0000 (20:52 +0200)]
Added common key aliases
Stefanos A. [Thu, 3 Oct 2013 18:51:36 +0000 (20:51 +0200)]
Removed support for < Windows XP
The support burden for Windows versions prior to XP was too large, plus
the relevant code was completely untested. Removing that will allow us
to focus on the things that really matter.
Stefanos A [Thu, 3 Oct 2013 15:22:13 +0000 (17:22 +0200)]
Throw extension if context creation fails
This aligns behavior with that of the other platforms.
Stefanos A [Thu, 3 Oct 2013 15:20:17 +0000 (17:20 +0200)]
Fallback to desktop context if embedded fails
Starting with OpenGL 4.1 and the ARB_ES2_compatibility extension, desktop contexts can execute OpenGL|ES code. This fallback will allow platforms to execute OpenGL|ES code even if EGL is not available (e.g. Nvidia/Windows).
Stefanos A. [Thu, 3 Oct 2013 14:45:28 +0000 (16:45 +0200)]
NRE -> GraphicsContextMissingException
Throw a GraphicsContextMissingException if GraphicsBindingBase.LoadAll() is called without a current GraphicsContext.
Stefanos A. [Thu, 3 Oct 2013 14:42:38 +0000 (16:42 +0200)]
Load ES entry points even on desktop
Some drivers / operating systems export ES entry points as extensions on regular "desktop" GraphicsContexts. Attempt to load them even if the user has not explicitly asked for an ES context.
Stefanos A [Thu, 3 Oct 2013 13:11:59 +0000 (15:11 +0200)]
Merge branch 'sdl2' of https://github.com/thefiddler/opentk
Conflicts:
Source/OpenTK/Platform/SDL2/Sdl2NativeWindow.cs
Stefanos A. [Thu, 3 Oct 2013 12:59:30 +0000 (14:59 +0200)]
Serialize Sdl2NativeWindow methods
This change, along with moving DestroyWindow() to the Dispose() method
fixes crashes on shutdown.
Stefanos A. [Thu, 3 Oct 2013 12:04:34 +0000 (14:04 +0200)]
Reload WGL entry points in WinGLContext()
This fixes AccessViolationException when creating multiple contexts on
Intel hardware.
Stefanos A [Thu, 3 Oct 2013 09:17:21 +0000 (11:17 +0200)]
Added support for OpenGL ES through SDL2
If SDL2 is supported, the PlatformFactory will now use it for creating the OpenGL ES context. Previously, it would revert to the native drivers when GraphicsContextFlag.Embedded was specified.
Stefanos A. [Wed, 2 Oct 2013 15:55:57 +0000 (17:55 +0200)]
Improved debugging messages
Exceptions that occur in the example process are now logged.
Stefanos A. [Wed, 2 Oct 2013 15:55:30 +0000 (17:55 +0200)]
MouseButtonUp and MouseMove fixes
MouseMove no longer leaves the window borders when the cursor is
invisible. MouseButtonUp events are now reported even when they occur
outside the window. This aligns SDL2 behavior with the native drivers.
Stefanos A. [Wed, 2 Oct 2013 14:31:22 +0000 (16:31 +0200)]
Create Sdl2NativeWindow hidden
This conforms to the other platform drivers and looks better in general
(no delay between window creation and OpenGL context creation.)
Stefanos A. [Wed, 2 Oct 2013 14:26:47 +0000 (16:26 +0200)]
Fixed unsetting current context in SDL2
SDL_GL_MakeCurrent(IntPtr.Zero, IntPtr.Zero) is the correct way to
remove the current OpenGL context from the calling thread. Fixes
threaded rendering on Windows.
Stefanos A [Wed, 2 Oct 2013 13:25:37 +0000 (15:25 +0200)]
Added missing x64 unmanaged dependencies
The .gitignore file ignores directories starting with x64, causing these depedendencies to be missed. Fixed by adding them manually.
Stefanos A [Tue, 1 Oct 2013 23:39:53 +0000 (01:39 +0200)]
Added Mac OS X build of SDL2 to dependencies
Stefanos A [Tue, 1 Oct 2013 23:14:26 +0000 (01:14 +0200)]
Improved diagnostics in Dispose()
Leaked and disposed resources are now always reported.
Stefanos A [Tue, 1 Oct 2013 23:13:06 +0000 (01:13 +0200)]
Added Sync object for SDL
Stefanos A [Tue, 1 Oct 2013 23:12:12 +0000 (01:12 +0200)]
Marked class as partial
This allows extension of the class without touching the upstream code.
Stefanos A [Tue, 1 Oct 2013 23:10:03 +0000 (01:10 +0200)]
Use separate process for executing examples
Using a separate, isolated process protects against incompatible interactions between the Example Browser (WinForms) and the executing example (native or SDL). It also protects the main GUI from crashes in the example code.
Stefanos A [Tue, 1 Oct 2013 22:05:59 +0000 (00:05 +0200)]
Fixed invalid version string on git
Git commit hashcodes are not compatible with the 16bit integer values found in .Net version numbers. Use the git commit count as a version number instead.
Stefanos A. [Tue, 1 Oct 2013 20:13:33 +0000 (22:13 +0200)]
MakeCurrent(null) should make context non-current
This fixes the crash in the "GameWindow Threading" example.
Stefanos A [Tue, 1 Oct 2013 20:05:50 +0000 (22:05 +0200)]
Fixed build under xbuild
Mono xbuild does not recognize the DebugType none element in the project configuration. Remove this in order to make it happy.
Stefanos A [Tue, 1 Oct 2013 20:04:11 +0000 (22:04 +0200)]
Clean up OpenTK after every example
Use the IDisposable instance returned by OpenTK.Toolkit.Init() to shutdown OpenTK after the end of each example run.
Stefanos A [Tue, 1 Oct 2013 20:01:27 +0000 (22:01 +0200)]
Improved resource disposal
Added IDisposable interface to all classes holding native data that must be freed. OpenTK.Toolkit.Init() now returns an IDisposable instance that can be used to cleanup all native data held by OpenTK. This is useful when re-initializing OpenTK (possibly in a new AppDomain), as is the case in the Example browser.
Stefanos A. [Tue, 1 Oct 2013 19:05:02 +0000 (21:05 +0200)]
Removed terrible hack for SDL_WINDOW_OPENGL
SDL2 will refuse to create an OpenGL context on a window with the SDL_WINDOW_FOREIGN flag (i.e. windows that are passed to SDL2 through SDL_CreateWindowFrom). This must be fixed upstream.
Stefanos A. [Mon, 30 Sep 2013 18:47:29 +0000 (20:47 +0200)]
Implemented Sdl2GLControl
SDL2 still fails with "not an OpenGL window".
Stefanos A [Mon, 30 Sep 2013 16:29:55 +0000 (18:29 +0200)]
Merge remote-tracking branch 'origin/master' into sdl2
Stefanos A. [Mon, 30 Sep 2013 16:27:13 +0000 (18:27 +0200)]
Workaround for NRE on WinRawMouse driver
On some systems, the Windows Raw Input driver fails to find the name of
a mouse device, causing a NRE. Since the name is not vital information,
a dummy name is generated as a workaround.
thefiddler [Mon, 30 Sep 2013 12:43:06 +0000 (14:43 +0200)]
Merge branch 'sdl2' of https://github.com/thefiddler/opentk into sdl2
Stefanos A. [Mon, 30 Sep 2013 12:20:33 +0000 (14:20 +0200)]
Attempted to fix key modifier state
SDL2 does not report keydown and keyup events on modifiers keys until
you release them. Attempted to fix this using SDL_GetModifierState, but
this does not appear to work. Should hit upstream.
Stefanos A. [Mon, 30 Sep 2013 12:19:10 +0000 (14:19 +0200)]
Renamed Sdl2InputBase
Stefanos A. [Mon, 30 Sep 2013 11:51:31 +0000 (13:51 +0200)]
Use scancodes for KeyboardDevice states
This resolves the issue where different layouts would return different
keys when pressing the same physical key. A new API must be introduced
for text input.
Stefanos A. [Mon, 30 Sep 2013 11:49:53 +0000 (13:49 +0200)]
Fixed return values of keyboard functions
SDL_GetKeyFromScancode and SDL_GetScancodeFromKey should return a
SDL_Keycode or SDL_Scancode respectively, instead of void.
Stefanos A. [Mon, 30 Sep 2013 11:48:12 +0000 (13:48 +0200)]
Fixed documentation comment
Stefanos A. [Mon, 30 Sep 2013 11:13:02 +0000 (13:13 +0200)]
Renamed Sdl2InputBase to Sdl2InputDriver
Sdl2InputDriver describes the role and function of this class more
accurately.
Stefanos A. [Mon, 30 Sep 2013 10:22:51 +0000 (12:22 +0200)]
Made internal SDL2 API private
Stefanos A. [Mon, 30 Sep 2013 10:22:25 +0000 (12:22 +0200)]
Implemented SDL2 mouse and keyboard drivers
thefiddler [Mon, 30 Sep 2013 09:09:14 +0000 (11:09 +0200)]
Reduced icon resolution to 128x128 in order to avoid "out of memory" errors when building with Mono.
Stefanos A. [Sun, 29 Sep 2013 21:58:10 +0000 (23:58 +0200)]
Added high-res icons to Example Browser
The Example Browser should now look better on high resolution screens.
Stefanos A. [Sun, 29 Sep 2013 21:36:28 +0000 (23:36 +0200)]
Free SDL surface after updating the window icon
The SDL surface is no longer needed and will cause a memory leak if not
freed. Additionally, the decoded BitmapData should not be unlocked until
after updating the window icon, as it may be moved by the GC otherwise.
Stefanos A. [Sun, 29 Sep 2013 21:08:51 +0000 (23:08 +0200)]
Fixed decoding of Icons
The rgba mask for decoding icon surfaces was incorrect. Icons should
appear as expected now.