platform/core/csapi/opentk.git
11 years agoEnabled HIDInput IGamePadDriver implementation
thefiddler [Mon, 23 Dec 2013 18:19:41 +0000 (19:19 +0100)]
Enabled HIDInput IGamePadDriver implementation

11 years agoImplemented GamePad API (WIP)
Stefanos A. [Mon, 23 Dec 2013 00:50:25 +0000 (01:50 +0100)]
Implemented GamePad API (WIP)

11 years agoRemoved unnecessary IsButtonValid method
Stefanos A. [Mon, 23 Dec 2013 00:50:13 +0000 (01:50 +0100)]
Removed unnecessary IsButtonValid method

11 years agoDisplay start button in ToString()
Stefanos A. [Mon, 23 Dec 2013 00:49:49 +0000 (01:49 +0100)]
Display start button in ToString()

11 years agoFixed rendering of joysticks and gamepads
Stefanos A. [Mon, 23 Dec 2013 00:29:12 +0000 (01:29 +0100)]
Fixed rendering of joysticks and gamepads

Joysticks and gamepad states would overlap, causing some lines to be
unreadable. This is now fixed.

11 years agoMore robust handling of device add/remove events
Stefanos A. [Sun, 22 Dec 2013 23:17:13 +0000 (00:17 +0100)]
More robust handling of device add/remove events

11 years agoFixed expansion of joysticks collection
Stefanos A. [Sun, 22 Dec 2013 22:55:46 +0000 (23:55 +0100)]
Fixed expansion of joysticks collection

11 years agoLog errors in subsystem initialization
Stefanos A. [Sun, 22 Dec 2013 22:55:28 +0000 (23:55 +0100)]
Log errors in subsystem initialization

11 years agoReuse Sdl2Factory.InputDriver in Sdl2NativeWindow
Stefanos A. [Sun, 22 Dec 2013 22:54:55 +0000 (23:54 +0100)]
Reuse Sdl2Factory.InputDriver in Sdl2NativeWindow

11 years agoDelay joystick initialization until necessary
Stefanos A. [Sun, 22 Dec 2013 22:13:21 +0000 (23:13 +0100)]
Delay joystick initialization until necessary

11 years agoAdded SDL_InitSubSystem method
Stefanos A. [Sun, 22 Dec 2013 22:12:53 +0000 (23:12 +0100)]
Added SDL_InitSubSystem method

11 years agoFixed x/y axis mixup.
Stefanos A. [Sun, 22 Dec 2013 21:47:50 +0000 (22:47 +0100)]
Fixed x/y axis mixup.

11 years agoCleaned up using directives
Stefanos A. [Sun, 22 Dec 2013 21:34:34 +0000 (22:34 +0100)]
Cleaned up using directives

11 years agoAdded missing newline
Stefanos A. [Sun, 22 Dec 2013 21:32:24 +0000 (22:32 +0100)]
Added missing newline

11 years agoImplemented GamePadThumbSticks
Stefanos A. [Sun, 22 Dec 2013 21:32:18 +0000 (22:32 +0100)]
Implemented GamePadThumbSticks

11 years agoAdded state information for GamePads
Stefanos A. [Sun, 22 Dec 2013 21:07:40 +0000 (22:07 +0100)]
Added state information for GamePads

11 years agoMore compact string representation
Stefanos A. [Sun, 22 Dec 2013 21:07:30 +0000 (22:07 +0100)]
More compact string representation

11 years agoImplemented IEquatable<> interface
Stefanos A. [Sun, 22 Dec 2013 21:01:04 +0000 (22:01 +0100)]
Implemented IEquatable<> interface

11 years agoRemove bogus GraphicsMode.Index check. Fixes #22
Stefanos A [Sun, 22 Dec 2013 14:40:01 +0000 (15:40 +0100)]
Remove bogus GraphicsMode.Index check. Fixes #22

GraphicsMode.Index is set by the platform-specific context constructor,
which is invoked after the X11GLControl constructor. It does not make
sense to check GraphicsMode.Index in the X11GLControl constructor, as it
is never set at that point.

11 years agoFixed crash in MakeCurrent(null)
Stefanos A [Sun, 22 Dec 2013 10:10:05 +0000 (11:10 +0100)]
Fixed crash in MakeCurrent(null)

MakeCurrent(null) should set the bound device context to zero.

11 years agoAdded WGL_DRAW_TO_WINDOW_ARB flag
Stefanos A [Sun, 22 Dec 2013 09:35:05 +0000 (10:35 +0100)]
Added WGL_DRAW_TO_WINDOW_ARB flag

Without this flag, OpenGL rendering does not work as expected.

Additionally, all WGL_ARB_pixel_format attributes are expected to be
specified in key-value pairs. Fixed double-buffering and stereoscoping
rendering attributes.

11 years agoImproved WGL mode selection
Stefanos A [Sun, 22 Dec 2013 08:20:40 +0000 (09:20 +0100)]
Improved WGL mode selection

Fixed WGL_ARB_pixel_format attribute selection for doublebuffering,
stereoscopic rendering and hardware acceleration. Implemented
minimization strategy to select the optimal PixelFormatDescriptor in the
fallback path.

11 years agoFixed DescribePixelFormatPFD
Stefanos A [Sat, 21 Dec 2013 22:35:55 +0000 (23:35 +0100)]
Fixed DescribePixelFormatPFD

When using the PFD codepath, we now call DescribePixelFormat to retrieve
an exact interpretation of the pixel format selected by the driver.

11 years agoPrioritize accelerated formats first
Stefanos A [Sat, 21 Dec 2013 21:43:35 +0000 (22:43 +0100)]
Prioritize accelerated formats first

Instead of creating a list of all available formats and iterating
through that, we let the driver decide which is the best accelerated
format to use for the user parameters. If no such format exists, we fall
back to generic acceleration or software acceleration, in turn.

This affects issue #21

11 years agoTurn 1-element array to ref/out param
Stefanos A [Sat, 21 Dec 2013 21:41:35 +0000 (22:41 +0100)]
Turn 1-element array to ref/out param

11 years agoDisplay renderer information
Stefanos A [Sat, 21 Dec 2013 21:41:10 +0000 (22:41 +0100)]
Display renderer information

11 years agoImplemented KeyDown and KeyUp messages
Stefanos A [Fri, 20 Dec 2013 23:50:25 +0000 (00:50 +0100)]
Implemented KeyDown and KeyUp messages

11 years agoClean fix issue #19
Stefanos A [Fri, 20 Dec 2013 23:43:05 +0000 (00:43 +0100)]
Clean fix issue #19

Isolate and commit fix for issue #19 without potential for regressions.

11 years agoRevert "Fix issue #19"
Stefanos A [Fri, 20 Dec 2013 23:41:55 +0000 (00:41 +0100)]
Revert "Fix issue #19"

This reverts commit 2c14ec5f800b8ef6527f05ba26d6c6cca4b417d8.

11 years agoFix issue #19
Stefanos A [Fri, 20 Dec 2013 22:31:42 +0000 (23:31 +0100)]
Fix issue #19

Don't filter window messages passed to our window (see
http://blogs.msdn.com/b/oldnewthing/archive/2005/02/09/369804.aspx).
Additionally, return the correct values for all messages we are actually
handling and clean up unmanaged memory after we are done with the
window.

11 years agoExplicitly set WindowProcedure calling convention
Stefanos A [Fri, 20 Dec 2013 22:29:47 +0000 (23:29 +0100)]
Explicitly set WindowProcedure calling convention

11 years agoSimplify ProcessEvents implementation
Stefanos A [Fri, 20 Dec 2013 07:42:36 +0000 (08:42 +0100)]
Simplify ProcessEvents implementation

Instead of combining PeekMessage+GetMessage, we can simply call
PeekMessage(Remove) to achieve the same effect. This also allows us to
remove the IsIdle property, which is no longer used anywhere.

11 years agoThreads with message pump require STA comparment
Stefanos A [Thu, 19 Dec 2013 09:39:36 +0000 (10:39 +0100)]
Threads with message pump require STA comparment

May affect issue #19

11 years agoReplace Wgl.GetCurrentDC with cached dc
Stefanos A [Wed, 18 Dec 2013 13:51:00 +0000 (14:51 +0100)]
Replace Wgl.GetCurrentDC with cached dc
 with

11 years agoNo point in using 16bpp color
Stefanos A [Wed, 18 Dec 2013 13:29:18 +0000 (14:29 +0100)]
No point in using 16bpp color

11 years agoCleaned up temporary context construction
Stefanos A [Wed, 18 Dec 2013 13:29:06 +0000 (14:29 +0100)]
Cleaned up temporary context construction

The temporary context is now retained until the actual context has been
constructed. If we don't do this, then WGL_ARB_create_context may fail
to work correctly on specific GPUs (e.g. Intel). This may affect issue
#19.

11 years agoFixed GetModesARB implementation
Stefanos A [Wed, 18 Dec 2013 13:16:49 +0000 (14:16 +0100)]
Fixed GetModesARB implementation

The correct way to query number of available pixel formats is to use
Wgl.Arb.GetPixelFormatAttrib(NumberPixelFormatsArb), not
Wgl.Arb.ChoosePixelFormats. This fixes an issue where Intel drivers
would fail to report any pixel formats in GetModesARB, even when
WGL_ARB_pixel_format is supported.

11 years agoMinor code cleanup
Stefanos A [Tue, 17 Dec 2013 22:31:04 +0000 (23:31 +0100)]
Minor code cleanup

11 years agoUse gdi32 implementations of functions
Stefanos A [Tue, 17 Dec 2013 21:35:30 +0000 (22:35 +0100)]
Use gdi32 implementations of functions

Several functions are defined in both gdi32 and opengl32. Using the
opengl32/wgl versions did not appear to help with issue #19. Let's use
the gdi32 version instead, as suggested here:
https://www.opengl.org/wiki/Platform_specifics:_Windows#The_WGL_functions

11 years agoLoad opengl32.dll before gdi32.dll
Stefanos A [Tue, 17 Dec 2013 20:24:25 +0000 (21:24 +0100)]
Load opengl32.dll before gdi32.dll

According to
http://stackoverflow.com/questions/199016/wglcreatecontext-in-c-sharp-failing-but-not-in-managed-c,
opengl32.dll must be loaded before gdi32.dll. Affect issue #19.

11 years agoMinor code cleanup
Stefanos A [Tue, 17 Dec 2013 15:40:15 +0000 (16:40 +0100)]
Minor code cleanup

No need to wrap Wgl.DescribePixelFormat, just call it directly.

11 years agoUse opengl32 instead of gdi32 throughout
Stefanos A [Tue, 17 Dec 2013 15:39:45 +0000 (16:39 +0100)]
Use opengl32 instead of gdi32 throughout

Since we are dynamically loading opengl32.dll, we are supposed to use
the wgl version of functions that exist in both opengl32 and gdi32 dlls.

11 years agoCorrected the entrypoint for wglChoosePixelFormat
Stefanos A [Tue, 17 Dec 2013 15:38:56 +0000 (16:38 +0100)]
Corrected the entrypoint for wglChoosePixelFormat

11 years agoImplemented new GamePad interface (WIP)
thefiddler [Thu, 19 Dec 2013 15:28:20 +0000 (16:28 +0100)]
Implemented new GamePad interface (WIP)

11 years agoImplemented GamePadButtons
thefiddler [Thu, 19 Dec 2013 15:27:57 +0000 (16:27 +0100)]
Implemented GamePadButtons

11 years agoUpdated internal IGamePadDriver interface
thefiddler [Thu, 19 Dec 2013 15:27:26 +0000 (16:27 +0100)]
Updated internal IGamePadDriver interface

11 years agoImplemented GameController API bindings
thefiddler [Thu, 19 Dec 2013 09:42:12 +0000 (10:42 +0100)]
Implemented GameController API bindings

11 years agoUse SDL2 event API for joystick devices
thefiddler [Wed, 18 Dec 2013 16:16:29 +0000 (17:16 +0100)]
Use SDL2 event API for joystick devices

11 years agoImplemented SDL2 Joystick and GameController events
thefiddler [Wed, 18 Dec 2013 14:50:59 +0000 (15:50 +0100)]
Implemented SDL2 Joystick and GameController events

11 years agoClean up shader error detection
Stefanos A. [Tue, 17 Dec 2013 11:09:00 +0000 (12:09 +0100)]
Clean up shader error detection

11 years agoUpdated author information (2/2)
Stefanos A. [Mon, 16 Dec 2013 11:43:11 +0000 (12:43 +0100)]
Updated author information (2/2)

11 years agoUpdated author information
Stefanos A. [Mon, 16 Dec 2013 10:07:05 +0000 (11:07 +0100)]
Updated author information

11 years agoUse 16bit depth in GraphicsMode.Default
Stefanos A. [Mon, 16 Dec 2013 09:44:37 +0000 (10:44 +0100)]
Use 16bit depth in GraphicsMode.Default

16bits appear to be better supported than 24bits on virtual machines.

11 years agoGraphicsContext cannot be released by finalizer
Stefanos A. [Mon, 16 Dec 2013 09:43:56 +0000 (10:43 +0100)]
GraphicsContext cannot be released by finalizer

On many/most platforms, GraphicsContexts can only be released by the
thread where they are current. This means that the user must call
GraphicsContext.Dispose() or risk a resource leak.

Since we cannot release contexts on the finalizer thread, we should keep
strong references, instead of weak references, until the user explicitly
calls Dispose().

This patch fixes issues with SDL2 crashing when running the MonoGame
WindowsGL test suite.

11 years agoImproved diagnostics
Stefanos A. [Mon, 16 Dec 2013 09:39:54 +0000 (10:39 +0100)]
Improved diagnostics

This helps when tracking down GraphicsContext-related issues in SDL2.

11 years agoAdded hack for MonoGame compatibility
Stefanos A. [Mon, 16 Dec 2013 09:39:11 +0000 (10:39 +0100)]
Added hack for MonoGame compatibility

MonoGame uses reflection to access internal APIs. We need to keep these
available until this is fixed downstream.

11 years agoProtect against recursion in Closing event
Stefanos A. [Mon, 16 Dec 2013 09:37:59 +0000 (10:37 +0100)]
Protect against recursion in Closing event

Misbehaving clients that shall not be named here may call
GameWindow.Close() inside the GameWindow.Closing event. This causes
recursion in SDL2, crashing the application.

This patch adds a guard to protect against recursion when calling
GameWindow.Close().

11 years agoAdded overloads for compatibility with svn r3127
Stefanos A [Mon, 16 Dec 2013 00:55:05 +0000 (01:55 +0100)]
Added overloads for compatibility with svn r3127

Several projects are still using the last svn revision from the
sourceforge repository (r3127). These overloads provide an upgrade path
from r3127 to OpenTK 1.1.

11 years agoNormalized xml doc file paths 1.1-b3
Stefanos A [Sun, 15 Dec 2013 22:18:33 +0000 (23:18 +0100)]
Normalized xml doc file paths

11 years agoRemoved lib/ and *.nupkg from zip archive
Stefanos A [Sun, 15 Dec 2013 22:08:53 +0000 (23:08 +0100)]
Removed lib/ and *.nupkg from zip archive

11 years agoFixed build order in Nsis configuration
Stefanos A [Sun, 15 Dec 2013 22:08:19 +0000 (23:08 +0100)]
Fixed build order in Nsis configuration

11 years agoAdded Dependencies folder to Nsis installer
Stefanos A [Sun, 15 Dec 2013 22:07:56 +0000 (23:07 +0100)]
Added Dependencies folder to Nsis installer

11 years agoFixed build in Nsis configuration
Stefanos A [Sun, 15 Dec 2013 21:33:28 +0000 (22:33 +0100)]
Fixed build in Nsis configuration

11 years agoUpdated OpenGL documentation to Khronos r24522
Stefanos A [Sun, 15 Dec 2013 21:32:32 +0000 (22:32 +0100)]
Updated OpenGL documentation to Khronos r24522

11 years agoFixed deprecation warning
Stefanos A [Sun, 15 Dec 2013 21:02:32 +0000 (22:02 +0100)]
Fixed deprecation warning

11 years agoEliminated cls-compliance warnings in BlittableValueType
Stefanos A [Sun, 15 Dec 2013 21:02:21 +0000 (22:02 +0100)]
Eliminated cls-compliance warnings in BlittableValueType

11 years agoEliminated cls-compliance warnings in the math library
Stefanos A [Sun, 15 Dec 2013 21:02:08 +0000 (22:02 +0100)]
Eliminated cls-compliance warnings in the math library

11 years agoEliminated CLS-compliance warnings in the bindings
Stefanos A [Sun, 15 Dec 2013 21:01:45 +0000 (22:01 +0100)]
Eliminated CLS-compliance warnings in the bindings

11 years agoFixed memory corruption on string return type marshaling
Stefanos A [Sun, 15 Dec 2013 19:57:25 +0000 (20:57 +0100)]
Fixed memory corruption on string return type marshaling

11 years agoMerge branch 'no-reflect' of https://github.com/opentk/opentk
Stefanos A [Sun, 15 Dec 2013 17:30:47 +0000 (18:30 +0100)]
Merge branch 'no-reflect' of https://github.com/opentk/opentk

Conflicts:
OpenTK.sln

11 years agoCompatibility fixes for Mono 2.10
parallels [Sun, 15 Dec 2013 17:27:24 +0000 (18:27 +0100)]
Compatibility fixes for Mono 2.10

The Mono 2.10 compiler fails when compiling extern methods that are not
marked as DllImport. We fix that by adding a method body that throws a
NotImplementedException instead.

Additionally, MonoDevelop 2.8 cannot open sln files with ToolsVersion 12.
The fix is to change ToolsVersion to 11.

11 years agoMerge branch 'no-reflect'
Stefanos A [Sun, 15 Dec 2013 16:37:25 +0000 (17:37 +0100)]
Merge branch 'no-reflect'

Conflicts:
OpenTK.sln
Source/Bind/FuncProcessor.cs
Source/OpenTK/Graphics/ES11/ES11.cs
Source/OpenTK/Graphics/ES11/ES11Core.cs
Source/OpenTK/Graphics/ES11/ES11Delegates.cs
Source/OpenTK/Graphics/ES20/ES20.cs
Source/OpenTK/Graphics/OpenGL/GL.cs
Source/OpenTK/Graphics/OpenGL/GLCore.cs
Source/OpenTK/Graphics/OpenGL/GLDelegates.cs
Source/OpenTK/Graphics/OpenGL/GLObsolete.cs

11 years agoMaintain backwards compatibility with 1.1
Stefanos A [Sun, 15 Dec 2013 15:58:33 +0000 (16:58 +0100)]
Maintain backwards compatibility with 1.1

11 years agoMerge master into no-reflect
Stefanos A [Sun, 15 Dec 2013 15:36:37 +0000 (16:36 +0100)]
Merge master into no-reflect

11 years agoBuild UpdateVersion before OpenTK
Stefanos A. [Sun, 15 Dec 2013 14:36:24 +0000 (15:36 +0100)]
Build UpdateVersion before OpenTK

11 years agoGenerate debug symbols in release builds
Stefanos A. [Sun, 15 Dec 2013 14:36:12 +0000 (15:36 +0100)]
Generate debug symbols in release builds

11 years agoImproved WindowState changes on SDL2 backend
Stefanos A. [Sun, 15 Dec 2013 14:35:57 +0000 (15:35 +0100)]
Improved WindowState changes on SDL2 backend

SDL2 fails to report several different WindowState changes. OpenTK uses
a number of hacks to make it work to some extent, however real fixes
will have to be implemented upstream.

11 years agoMerge branch 'sdlres'
Stefanos A [Sun, 15 Dec 2013 12:51:29 +0000 (13:51 +0100)]
Merge branch 'sdlres'

11 years agoUpdated solution to VS2013 format.
Stefanos A. [Sun, 15 Dec 2013 12:47:29 +0000 (13:47 +0100)]
Updated solution to VS2013 format.

11 years agoAdded nuget.exe to project items
Stefanos A. [Sun, 15 Dec 2013 12:47:19 +0000 (13:47 +0100)]
Added nuget.exe to project items

11 years agoCommitted nuget cmdline tool to source control
Stefanos A. [Sun, 15 Dec 2013 12:36:00 +0000 (13:36 +0100)]
Committed nuget cmdline tool to source control

This appears to be the simplest (only?) way to use nuget in a
cross-platform manner.

11 years agoMerge branch 'nuget'
Stefanos A [Sun, 15 Dec 2013 12:23:16 +0000 (13:23 +0100)]
Merge branch 'nuget'

11 years agoAdd OpenTK.dll.config as content
Stefanos A [Sun, 15 Dec 2013 12:21:22 +0000 (13:21 +0100)]
Add OpenTK.dll.config as content

11 years agoMonoDevelop insists on making these changes
Stefanos A [Sun, 15 Dec 2013 12:05:06 +0000 (13:05 +0100)]
MonoDevelop insists on making these changes

11 years agoUpdated description
Stefanos A [Sun, 15 Dec 2013 12:04:29 +0000 (13:04 +0100)]
Updated description

11 years agoGenerate nuget package for OpenTK.GLControl
Stefanos A [Sun, 15 Dec 2013 12:03:56 +0000 (13:03 +0100)]
Generate nuget package for OpenTK.GLControl

11 years agoGenerate xml documentation for OpenTK.GLControl
Stefanos A [Sun, 15 Dec 2013 12:01:39 +0000 (13:01 +0100)]
Generate xml documentation for OpenTK.GLControl

11 years agoImproved nuget version information
Stefanos A [Sun, 15 Dec 2013 11:02:43 +0000 (12:02 +0100)]
Improved nuget version information

11 years agoDo not commit build timestamp to repository
Stefanos A [Sun, 15 Dec 2013 11:02:01 +0000 (12:02 +0100)]
Do not commit build timestamp to repository

11 years agoGenerate both build timestamp and version information
Stefanos A [Sun, 15 Dec 2013 11:01:26 +0000 (12:01 +0100)]
Generate both build timestamp and version information

11 years agoDelay VisualInfo construction (fixes #17)
parallels [Sat, 14 Dec 2013 10:54:55 +0000 (11:54 +0100)]
Delay VisualInfo construction (fixes #17)

In OpenTK 1.1, GraphicsMode queries the platform for a mode id lazily.
By delaying VisualInfo selection until the GraphicsContext is constructed
we ensure that a concrete GraphicsMode is selected and ready for use.

11 years agoCopy build artifact to root directory regardless of artifact name
Stefanos A [Fri, 13 Dec 2013 23:20:39 +0000 (00:20 +0100)]
Copy build artifact to root directory regardless of artifact name

11 years agoAdded release notes for OpenTK
Stefanos A [Fri, 13 Dec 2013 23:19:18 +0000 (00:19 +0100)]
Added release notes for OpenTK

11 years agoAdded nuget lib directory to gitignore
Stefanos A [Fri, 13 Dec 2013 23:19:03 +0000 (00:19 +0100)]
Added nuget lib directory to gitignore

11 years agoAdded nuget build target to OpenTK.sln
Stefanos A [Fri, 13 Dec 2013 09:52:11 +0000 (10:52 +0100)]
Added nuget build target to OpenTK.sln

11 years agoAdded nuget build target
Stefanos A [Fri, 13 Dec 2013 09:51:34 +0000 (10:51 +0100)]
Added nuget build target

This will create a nupkg file for OpenTK and copy it to the base
directory. Version information is currently hardcoded to 1.1 (this
should be fixed.)

11 years agoImplemented resolution change workaround on SDL2
Stefanos A [Thu, 12 Dec 2013 23:07:13 +0000 (00:07 +0100)]
Implemented resolution change workaround on SDL2

SDL2 does not support changing display resolutions independently of an
SDL window. As a workaround, if the user uses ChangeResolution and then
makes a GameWindow fullscreen, we use old-style SDL fullscreen which
changes the resolution. If the user makes a GameWindow fullscreen
without calling ChangeResolution first, we use the new
fullscreen-desktop mode to match the other OpenTK backends.

11 years agoCache size of char
Stefanos A [Mon, 9 Dec 2013 22:46:07 +0000 (23:46 +0100)]
Cache size of char

BlittableValueType<char> caches the size of the type parameter. This
way, we avoid calling Marshal.SizeOf repeatedly for every keyboard
event.

11 years agoEliminated memory allocations in Keyboard events
Stefanos A [Mon, 9 Dec 2013 22:44:51 +0000 (23:44 +0100)]
Eliminated memory allocations in Keyboard events

11 years agoDo not generate KeyPress events for non-printable characters
Stefanos A [Mon, 9 Dec 2013 22:43:36 +0000 (23:43 +0100)]
Do not generate KeyPress events for non-printable characters