platform/core/csapi/opentk.git
10 years ago[Input] Added JoystickCapabilities.HatCount
thefiddler [Fri, 31 Jan 2014 14:40:07 +0000 (15:40 +0100)]
[Input] Added JoystickCapabilities.HatCount

10 years ago[SDL2] Implemented support for hat state
thefiddler [Fri, 31 Jan 2014 14:03:51 +0000 (15:03 +0100)]
[SDL2] Implemented support for hat state

10 years ago[Input] Added hat state to JoystickState
thefiddler [Fri, 31 Jan 2014 14:03:30 +0000 (15:03 +0100)]
[Input] Added hat state to JoystickState

10 years ago[Input] Do not use a bitfield for hat position
thefiddler [Fri, 31 Jan 2014 14:03:19 +0000 (15:03 +0100)]
[Input] Do not use a bitfield for hat position

Using a bitfield does not save storage space in this case, and also
stops pattern matching from working (switch() statement in C# or match
… with expressions in F#.)

10 years ago[Input] Added JoystickHatState structure
thefiddler [Fri, 31 Jan 2014 14:01:35 +0000 (15:01 +0100)]
[Input] Added JoystickHatState structure

10 years ago[Input] Added structures for joystick hat input
thefiddler [Wed, 29 Jan 2014 09:21:52 +0000 (10:21 +0100)]
[Input] Added structures for joystick hat input

10 years ago[Input] Fixed off-by-one error in internal max axes/buttons
thefiddler [Thu, 30 Jan 2014 16:36:59 +0000 (17:36 +0100)]
[Input] Fixed off-by-one error in internal max axes/buttons

10 years ago[Examples] BindAttribLocation must precede LinkProgram
Stefanos A. [Thu, 30 Jan 2014 10:42:07 +0000 (11:42 +0100)]
[Examples] BindAttribLocation must precede LinkProgram

10 years ago[Examples] Updated to use 1.1 API
Stefanos A. [Thu, 30 Jan 2014 10:40:01 +0000 (11:40 +0100)]
[Examples] Updated to use 1.1 API

10 years ago[Input] Implemented axis-button mappings
thefiddler [Wed, 29 Jan 2014 09:39:18 +0000 (10:39 +0100)]
[Input] Implemented axis-button mappings

10 years ago[Input] Added support for JoystickButtons 16-31
thefiddler [Wed, 29 Jan 2014 09:28:06 +0000 (10:28 +0100)]
[Input] Added support for JoystickButtons 16-31

10 years agoMerge remote-tracking branch 'cwassall/develop' into develop
thefiddler [Sun, 26 Jan 2014 11:19:51 +0000 (12:19 +0100)]
Merge remote-tracking branch 'cwassall/develop' into develop

10 years ago[GLControl] Warn when accessing GL properties on non-current context
thefiddler [Sun, 26 Jan 2014 10:08:08 +0000 (11:08 +0100)]
[GLControl] Warn when accessing GL properties on non-current context

10 years ago[GLControl] Use IGraphicsContext.SwapInterval to get/set vsync
thefiddler [Sun, 26 Jan 2014 09:39:39 +0000 (10:39 +0100)]
[GLControl] Use IGraphicsContext.SwapInterval to get/set vsync

This patch fixes warnings related to the deprecated
IGraphicsContext.VSync property.

10 years ago[GLControl] Clarified docs regarding multiple contexts
thefiddler [Sun, 26 Jan 2014 09:36:52 +0000 (10:36 +0100)]
[GLControl] Clarified docs regarding multiple contexts

10 years ago[Input] Corrected GamePadState range to byte [0,255]
thefiddler [Sat, 25 Jan 2014 16:05:06 +0000 (17:05 +0100)]
[Input] Corrected GamePadState range to byte [0,255]

10 years agoMerge branch 'graphicsmode' into develop
Stefanos A [Wed, 22 Jan 2014 22:32:51 +0000 (23:32 +0100)]
Merge branch 'graphicsmode' into develop

10 years ago[OpenTK] Don't skip AA modes in RelaxGraphicsMode
Stefanos A. [Wed, 22 Jan 2014 22:25:11 +0000 (23:25 +0100)]
[OpenTK] Don't skip AA modes in RelaxGraphicsMode

Previously, specifying an odd AA mode (e.g. 5x) would have been relaxed
to 0x. Now, it will be correctly relaxed to 4x.

10 years ago[SDL2] Use RelaxGraphicsMode to find optimal mode
thefiddler [Wed, 22 Jan 2014 10:37:37 +0000 (11:37 +0100)]
[SDL2] Use RelaxGraphicsMode to find optimal mode

For SDL2, RelaxGraphicsMode requires us to clear context attributes
between consecutive attempts. This is implemented by calling
ClearGLAttributes().

10 years ago[Max] Use RelaxGraphicsMode to find optimal mode
thefiddler [Wed, 22 Jan 2014 10:03:40 +0000 (11:03 +0100)]
[Max] Use RelaxGraphicsMode to find optimal mode

10 years ago[Win] Use RelaxGraphicsMode to find optimal mode
thefiddler [Wed, 22 Jan 2014 09:49:55 +0000 (10:49 +0100)]
[Win] Use RelaxGraphicsMode to find optimal mode

10 years ago[OpenTK] Moved RelaxGraphicsMode to Utilities
thefiddler [Wed, 22 Jan 2014 09:49:27 +0000 (10:49 +0100)]
[OpenTK] Moved RelaxGraphicsMode to Utilities

This functionality is useful for all platform backends and is not
specific to the X11 backend.

10 years ago[OpenTK] Allow a GraphicsMode.Buffers value of 0
thefiddler [Wed, 22 Jan 2014 09:48:40 +0000 (10:48 +0100)]
[OpenTK] Allow a GraphicsMode.Buffers value of 0

0 in this case means “don’t care”.

10 years ago[OpenTK] Clamp max AA level to 64x
thefiddler [Wed, 22 Jan 2014 09:35:08 +0000 (10:35 +0100)]
[OpenTK] Clamp max AA level to 64x

This protects against a potential denial-of-service issue during mode
selection, where the platform backend will try to reduce AA level until
a supported mode is found.

10 years ago[OpenTK] Removed unused GraphicsMode field
thefiddler [Wed, 22 Jan 2014 09:31:01 +0000 (10:31 +0100)]
[OpenTK] Removed unused GraphicsMode field

10 years ago[Win] Clear extension list on reload
Stefanos A. [Tue, 21 Jan 2014 08:04:27 +0000 (09:04 +0100)]
[Win] Clear extension list on reload

10 years ago[Win] Removed WGL delegates in favor of calli
Stefanos A. [Tue, 21 Jan 2014 08:00:57 +0000 (09:00 +0100)]
[Win] Removed WGL delegates in favor of calli

10 years ago[Win] Implemented calli-based interop for WGL
Stefanos A. [Tue, 21 Jan 2014 08:00:25 +0000 (09:00 +0100)]
[Win] Implemented calli-based interop for WGL

10 years agoChange original_resolution field to a property
cwassall [Mon, 20 Jan 2014 12:51:55 +0000 (12:51 +0000)]
Change original_resolution field to a property

As the original_resolution field needs to be accessed from outside the
module, it should be an internal property as opposed to an internal
field

10 years agoRemember DisplayDevice original resolutions
cwassall [Sun, 19 Jan 2014 19:44:12 +0000 (19:44 +0000)]
Remember DisplayDevice original resolutions

When refreshing the AvailableDevices list, it is important to set the
original resolution on any DisplayDevices that were previously available
to allow the RestoreResolution() method to work correctly.

10 years ago[GLControl] Use dummy context in design mode
Stefanos A. [Sat, 18 Jan 2014 17:33:25 +0000 (18:33 +0100)]
[GLControl] Use dummy context in design mode

Creating a GraphicsContext with null parameters is not a guarantee that
we will get a dummy context that does not call any OpenGL functions. We
need to explicitly define and construct a dummy context that is safe to
use inside the designer.

Affects issue #49

10 years ago[Win] Fix X1/X2 mouse buttons (fixes issue #27)
Stefanos A. [Thu, 16 Jan 2014 16:16:03 +0000 (17:16 +0100)]
[Win] Fix X1/X2 mouse buttons (fixes issue #27)

10 years agoMerge branch 'utf8' into develop
Stefanos A [Thu, 16 Jan 2014 13:38:18 +0000 (14:38 +0100)]
Merge branch 'utf8' into develop

10 years ago[Examples] Move UTF8 sample to Test folder
Stefanos A. [Thu, 16 Jan 2014 13:37:27 +0000 (14:37 +0100)]
[Examples] Move UTF8 sample to Test folder

10 years agoMerge branch 'utf8_test' of https://github.com/ganaware/opentk into utf8
Stefanos A [Thu, 16 Jan 2014 13:33:15 +0000 (14:33 +0100)]
Merge branch 'utf8_test' of https://github.com/ganaware/opentk into utf8

10 years ago[OpenTK] Use ASCII encoding
Stefanos A. [Thu, 16 Jan 2014 13:32:11 +0000 (14:32 +0100)]
[OpenTK] Use ASCII encoding

Most OpenGL versions work with single-byte ASCII strings exclusively.
OpenGL 4.2 adds UTF8 encoded comments to GLSL shaders. Unfortunately,
UTF16 (.Net) to UTF8 conversions will usually modify the length of the
resulting byte array.

This is not currently possible to implement inside OpenTK, since the
binding generator does not know which length parameter corresponds to a
string parameter.

For this reason, and to maintain compatibility with older OpenGL
versions, we perform a destructive UTF16-to-ASCII encoding, which
replaces unsupported characters by '?'. This allows multi-byte post-4.2.
GLSL shaders to work as expected.

If non-destructive round-tripping of strings is required, the user will
have to use the IntPtr overload for string parameters and perform the
UTF16-to-UTF8 encoding/decoding manually. This need is very unlikely to
arise in practice.

10 years agoMerge branch 'develop' of https://github.com/opentk/opentk into utf8
Stefanos A [Thu, 16 Jan 2014 10:44:34 +0000 (11:44 +0100)]
Merge branch 'develop' of https://github.com/opentk/opentk into utf8

10 years agoMerge branch 'develop' into utf8
Stefanos A [Thu, 16 Jan 2014 10:39:22 +0000 (11:39 +0100)]
Merge branch 'develop' into utf8

10 years agoshader source with Japanese comment test
Nayuta Taga [Thu, 16 Jan 2014 09:27:32 +0000 (18:27 +0900)]
shader source with Japanese comment test

10 years agoMerge branch 'utf8' into utf8_test
Nayuta Taga [Thu, 16 Jan 2014 09:05:03 +0000 (18:05 +0900)]
Merge branch 'utf8' into utf8_test

10 years ago[Docs] Updated readme file for release
Stefanos A. [Wed, 15 Jan 2014 13:16:00 +0000 (14:16 +0100)]
[Docs] Updated readme file for release

10 years agoMerge branch 'linux_joystick' into develop
thefiddler [Wed, 15 Jan 2014 00:25:49 +0000 (01:25 +0100)]
Merge branch 'linux_joystick' into develop

10 years ago[OpenTK] Protect against invalid axis/button ids
thefiddler [Wed, 15 Jan 2014 00:24:20 +0000 (01:24 +0100)]
[OpenTK] Protect against invalid axis/button ids

10 years ago[OpenTK] Fixed polling
thefiddler [Wed, 15 Jan 2014 00:19:45 +0000 (01:19 +0100)]
[OpenTK] Fixed polling

10 years ago[OpenTK] Fixed legacy joystick hotplugging & events
thefiddler [Wed, 15 Jan 2014 00:13:39 +0000 (01:13 +0100)]
[OpenTK] Fixed legacy joystick hotplugging & events

10 years ago[Linux] Implemented joystick guid detection
thefiddler [Tue, 14 Jan 2014 23:57:28 +0000 (00:57 +0100)]
[Linux] Implemented joystick guid detection

10 years ago[OpenTK] Use LegacyJoystickDriver for IJoystickDriver implementation
thefiddler [Tue, 14 Jan 2014 22:53:24 +0000 (23:53 +0100)]
[OpenTK] Use LegacyJoystickDriver for IJoystickDriver implementation

10 years ago[Linux] Implemented joystick hotplugging
thefiddler [Tue, 14 Jan 2014 22:51:31 +0000 (23:51 +0100)]
[Linux] Implemented joystick hotplugging

10 years ago[OpenTK] Suggest alternative to obsolete INativeWindow.InputDriver property
thefiddler [Tue, 14 Jan 2014 22:40:23 +0000 (23:40 +0100)]
[OpenTK] Suggest alternative to obsolete INativeWindow.InputDriver property

10 years ago[X11] Implemented joystick hotplugging
Stefanos A. [Tue, 14 Jan 2014 17:37:16 +0000 (18:37 +0100)]
[X11] Implemented joystick hotplugging

This is a work in progress.

10 years ago[X11] Added INotify.cs to project files
Stefanos A. [Tue, 14 Jan 2014 17:36:36 +0000 (18:36 +0100)]
[X11] Added INotify.cs to project files

10 years ago[X11] Removed IJoystickDriver from X11Joystick
Stefanos A. [Tue, 14 Jan 2014 17:36:19 +0000 (18:36 +0100)]
[X11] Removed IJoystickDriver from X11Joystick

Legacy IJoystickDriver support is now implemented through a
LegacyJoystickDriver instance.

10 years agoMerge branch 'develop' into linux_joystick
Stefanos A [Tue, 14 Jan 2014 17:26:05 +0000 (18:26 +0100)]
Merge branch 'develop' into linux_joystick

10 years agoMerge branch 'legacy_joystick' into linux_joystick
Stefanos A [Tue, 14 Jan 2014 17:17:05 +0000 (18:17 +0100)]
Merge branch 'legacy_joystick' into linux_joystick

10 years ago[Linux] Added INotify bindings
Stefanos A. [Tue, 14 Jan 2014 17:15:53 +0000 (18:15 +0100)]
[Linux] Added INotify bindings

These are not currently used.

10 years agoMerge branch 'issue43_unstablefps' into develop
Stefanos A [Tue, 14 Jan 2014 13:21:19 +0000 (14:21 +0100)]
Merge branch 'issue43_unstablefps' into develop

10 years ago[OpenTK] Increase max Update/RenderFrame rates
Stefanos A. [Tue, 14 Jan 2014 13:20:38 +0000 (14:20 +0100)]
[OpenTK] Increase max Update/RenderFrame rates

Given the new 144Hz monitors on the market today, it makes sense to
increase the Update/RenderFrame limit from 200Hz to 500Hz.

10 years ago[OpenTK] Do not hang when update rate too high
Stefanos A. [Tue, 14 Jan 2014 12:55:24 +0000 (13:55 +0100)]
[OpenTK] Do not hang when update rate too high

OpenTK will now detect when an UpdateFrame handler is consistently
taking too long to finish, and stop raising UpdateFrame events. This
gives ProcessEvents() a chance to execute and will protect the
application from hanging up.

10 years ago[OpenTK] Respect a TargetUpdatePeriod of zero
Stefanos A. [Tue, 14 Jan 2014 12:33:41 +0000 (13:33 +0100)]
[OpenTK] Respect a TargetUpdatePeriod of zero

10 years ago[Examples] Improved timing display
Stefanos A. [Tue, 14 Jan 2014 12:27:09 +0000 (13:27 +0100)]
[Examples] Improved timing display

GameWindowStates will now display the average fps and draw three moving
boxes based on different timing methods.

If the timing implementation in OpenTK is working correctly, all three
boxes should be moving at the same speed.

10 years ago[OpenTK] Fix UpdateFrame quantization error
Stefanos A. [Tue, 14 Jan 2014 12:04:30 +0000 (13:04 +0100)]
[OpenTK] Fix UpdateFrame quantization error

The UpdateFrame event rate will now match TargetUpdatePeriod even if
vsync is enabled. Previously, it would be quantized to a multiple or
integer fraction of of the vsync rate.

10 years ago[OpenTK] Remove Thread.Sleep() from loop timing
Stefanos A. [Mon, 13 Jan 2014 10:36:56 +0000 (11:36 +0100)]
[OpenTK] Remove Thread.Sleep() from loop timing

10 years ago[OpenTK] Simplified update and render loops
Stefanos A. [Mon, 13 Jan 2014 10:22:33 +0000 (11:22 +0100)]
[OpenTK] Simplified update and render loops

10 years ago[Audio] Don't crash when Alc.GetString() returns null
thefiddler [Sun, 12 Jan 2014 21:05:15 +0000 (22:05 +0100)]
[Audio] Don't crash when Alc.GetString() returns null

Alc.GetString() could crash if the unmanaged code returned null due to
any kind of failure. This is now fixed and better documented.

Additionally, the array overload for Alc.GetString() will now correctly
forward the ‘device’ parameter to unmanaged code.

10 years ago[OpenTK] Fix UpdateFrame loop condition
Stefanos A. [Sun, 12 Jan 2014 20:37:18 +0000 (21:37 +0100)]
[OpenTK] Fix UpdateFrame loop condition

Multiple UpdateFrame events should be raised to match the desired
TargetUpdateFrequency, when TargetUpdateFrequency > 0. The loop would
incorrectly check for TargetRenderFrequency instead.

Affects issue #43

10 years ago[OpenTK] Frameskip needs TargetUpdateFrequency!=0
Stefanos A. [Sat, 11 Jan 2014 00:46:38 +0000 (01:46 +0100)]
[OpenTK] Frameskip needs TargetUpdateFrequency!=0

10 years ago[OpenTK] Fixed Utilities.CreateSdl2WindowInfo
Stefanos A. [Fri, 10 Jan 2014 15:56:26 +0000 (16:56 +0100)]
[OpenTK] Fixed Utilities.CreateSdl2WindowInfo

Utilities.CreateSdl2WindowInfo should store the specified windowHandle
directly instead of trying to call SDL.SDL.CreateWindowFrom.

10 years ago[SDL2] Implemented GetWindowWMInfo
Stefanos A. [Fri, 10 Jan 2014 15:55:20 +0000 (16:55 +0100)]
[SDL2] Implemented GetWindowWMInfo

10 years ago[Win] More robust pixel format selection
Stefanos A. [Fri, 10 Jan 2014 14:41:57 +0000 (15:41 +0100)]
[Win] More robust pixel format selection

This patch adds more robust checks for WGL_ARB_pixel_format and
WGL_ARB_multisample before using the relevant extensions, and adds
checks whether Wgl.Arb.ChoosePixelFormat() returns a valid pixel format
before trying to use it (thanks to Repetier for catching this edge
case.)

Additionally, the ChoosePixelFormatPFD code-path now heavily penalizes
single-buffered modes when the user requests a double-buffered mode.

Affects issues #42 and #45

10 years ago[Win] More robust WGL extension detection
Stefanos A. [Fri, 10 Jan 2014 08:24:59 +0000 (09:24 +0100)]
[Win] More robust WGL extension detection

Affects issue #42 and issue #45

10 years ago[Mac] OpenGL 3.x/4.x require core profile flag
thefiddler [Thu, 9 Jan 2014 22:36:28 +0000 (23:36 +0100)]
[Mac] OpenGL 3.x/4.x require core profile flag

SDL will fail to construct an OpenGL 3.x/4.x context on Mac OS X,
unless ContextProfileFlags.CORE is specified.

Fixes issue #44

Upstream enhancement request at
https://bugzilla.libsdl.org/show_bug.cgi?id=2342

10 years ago[OpenTK] Do not raise *Frame events when time = 0
Stefanos A. [Wed, 8 Jan 2014 23:51:09 +0000 (00:51 +0100)]
[OpenTK] Do not raise *Frame events when time = 0

Affects issue #40

10 years agoMerge branch 'rdp' into develop
thefiddler [Wed, 8 Jan 2014 23:19:42 +0000 (00:19 +0100)]
Merge branch 'rdp' into develop

10 years ago[Win] Fix issue #35 (OpenTK over Remote Desktop)
Stefanos A. [Wed, 8 Jan 2014 23:14:25 +0000 (00:14 +0100)]
[Win] Fix issue #35 (OpenTK over Remote Desktop)

When running over remote desktop without hardware acceleration, there
are no GraphicsModes that support desktop composition. This patch adds
logic to avoid requesting composition-capable modes when running over
RDP.

Additionally, it changes the mode selection logic to consider modes that
support features partially (e.g. 16bpp color instead of 32bpp), albeit
with a heavy penalty over fully supported modes.

10 years ago[Win] Check registry keys before accessing
Stefanos A. [Wed, 8 Jan 2014 23:10:41 +0000 (00:10 +0100)]
[Win] Check registry keys before accessing

Fixes crashes when using OpenTK over the Remote Desktop Client for Mac
(version 2010).

10 years agoMerge pull request #38 from opentk/issue34
thefiddler [Wed, 8 Jan 2014 21:36:32 +0000 (13:36 -0800)]
Merge pull request #38 from opentk/issue34

Fix for issue #33 and issue #34

10 years ago[Win] Fix issue #33; fix issue #34
Stefanos A. [Wed, 8 Jan 2014 21:29:22 +0000 (22:29 +0100)]
[Win] Fix issue #33; fix issue #34

This patch adds a workaround for WM_STYLECHANGED messages that are not
delivered when running on Mono/Windows. If we detect Mono, then we call
HandleStyleChanged() directly in order to update the internal state of
our WinGLNative instance.

10 years ago[Win] Do not overload internal SetWindowLong
Stefanos A. [Wed, 8 Jan 2014 18:22:03 +0000 (19:22 +0100)]
[Win] Do not overload internal SetWindowLong

The internal function is now appended with "Internal".

10 years ago[Win] Do not unregister class twice
Stefanos A. [Wed, 8 Jan 2014 18:21:29 +0000 (19:21 +0100)]
[Win] Do not unregister class twice

Only the parent window would register a class, but both the parent and
the child window would unregister it. This is now fixed.

10 years ago[Win] Remove unnecessary #if clauses
Stefanos A. [Tue, 7 Jan 2014 23:45:42 +0000 (00:45 +0100)]
[Win] Remove unnecessary #if clauses

10 years ago[Win] Refactor huge wndproc into functions
Stefanos A. [Tue, 7 Jan 2014 23:02:27 +0000 (00:02 +0100)]
[Win] Refactor huge wndproc into functions

10 years agoMerge branch 'timing' into develop
thefiddler [Tue, 7 Jan 2014 21:19:22 +0000 (22:19 +0100)]
Merge branch 'timing' into develop

10 years ago[Examples] Added keys to modify timing
Stefanos A. [Tue, 7 Jan 2014 21:09:52 +0000 (22:09 +0100)]
[Examples] Added keys to modify timing

Use [ and ] to decrease and increase the UpdateFrame frequency.
Use < and > to decrease and increase the RenderFrame frequency.

10 years ago[OpenTK] Improved timing stability
Stefanos A. [Tue, 7 Jan 2014 21:09:02 +0000 (22:09 +0100)]
[OpenTK] Improved timing stability

OpenTK now directly calculates the elapsed time between UpdateFrame
(RenderFrame) events and compares that directly to TargetUpdatePeriod
(TargetRenderPeriod). This significantly simplifies the implementation
and improves timing stability.

10 years ago[OpenTK] Fixed Update/RenderTime calculation
Stefanos A. [Tue, 7 Jan 2014 14:55:11 +0000 (15:55 +0100)]
[OpenTK] Fixed Update/RenderTime calculation

These values should only be re-calculated when an Update/RenderFrame
event is raised. Otherwise, they should retain their previous values.

10 years ago[Examples] Improve timing information; add vsync toggle
thefiddler [Tue, 7 Jan 2014 08:12:35 +0000 (09:12 +0100)]
[Examples] Improve timing information; add vsync toggle

10 years ago[OpenTK] Corrected GameWindow.Update/RenderFrequency information
thefiddler [Tue, 7 Jan 2014 08:11:55 +0000 (09:11 +0100)]
[OpenTK] Corrected GameWindow.Update/RenderFrequency information

10 years ago[OpenTK] Implemented GameWindow.UpdateTime and RenderTime properties
thefiddler [Tue, 7 Jan 2014 08:09:43 +0000 (09:09 +0100)]
[OpenTK] Implemented GameWindow.UpdateTime and RenderTime properties

10 years ago[OpenTK] More robust timing for UpdateFrame and RenderFrame
thefiddler [Tue, 7 Jan 2014 07:52:02 +0000 (08:52 +0100)]
[OpenTK] More robust timing for UpdateFrame and RenderFrame

FrameEventArgs.Time should no longer drift from clock time measured
outside GameWindow.

10 years ago[Examples] Calculate timing information in GameWindowStates
thefiddler [Tue, 7 Jan 2014 00:01:00 +0000 (01:01 +0100)]
[Examples] Calculate timing information in GameWindowStates

10 years ago[Examples] Cleaned up input device printing in GameWindowStates
thefiddler [Mon, 6 Jan 2014 23:48:09 +0000 (00:48 +0100)]
[Examples] Cleaned up input device printing in GameWindowStates

10 years ago[OpenTK] Platform backends should inherit from PlatformFactoryBase
thefiddler [Mon, 6 Jan 2014 13:49:05 +0000 (14:49 +0100)]
[OpenTK] Platform backends should inherit from PlatformFactoryBase

This reduces code duplication wrt deprecated interfaces and common
support code between backends.

10 years ago[OpenTK] Added base IPlatformFactory implementation
thefiddler [Mon, 6 Jan 2014 13:47:58 +0000 (14:47 +0100)]
[OpenTK] Added base IPlatformFactory implementation

PlatformFactoryBase provides a common base interface for platform
backends. Platform backends should inherit from PlatformFactoryBase in
order to reduce code duplication.

10 years ago[Platform] Implemented legacy IJoystickDriver
thefiddler [Mon, 6 Jan 2014 13:25:05 +0000 (14:25 +0100)]
[Platform] Implemented legacy IJoystickDriver

LegacyJoystickDriver implements the legacy IJoystickDriver interface
(GameWindow.Joysticks) in terms of the new IJoystickDriver2 interface
(OpenTK.Input.Joystick).

This removes a large chunk of code from each platform backend, as they
no longer need to implement IJoystickDriver themselves. Additionally,
it adds support for device hot plugging which was previously missing.

10 years ago[OpenTK] Simplify and improve timing calculations
Stefanos A. [Mon, 6 Jan 2014 00:57:54 +0000 (01:57 +0100)]
[OpenTK] Simplify and improve timing calculations

This patch modifies GameWindow.Run() to use a single stopwatch instead
of two separate stopwatches for timing UpdateFrame and RenderFrame
events.

It improves timing accuracy for issue #20 (FrameEventArgs.Time
Inconsistencies)

10 years ago[Math] Added MathHelper.Clamp
Stefanos A. [Mon, 6 Jan 2014 00:52:08 +0000 (01:52 +0100)]
[Math] Added MathHelper.Clamp

10 years ago[Mac] Do not store *State structs directly
thefiddler [Sun, 5 Jan 2014 22:58:05 +0000 (23:58 +0100)]
[Mac] Do not store *State structs directly

Storing Mouse/KeyboardState structs directly makes updates more
difficult than they should be. It is simpler to create simple classes
instead.

10 years ago[Input] Added Keyboard/MouseState.SetIsConnected to mirror JoystickState
thefiddler [Sun, 5 Jan 2014 22:50:17 +0000 (23:50 +0100)]
[Input] Added Keyboard/MouseState.SetIsConnected to mirror JoystickState

10 years agoMerge branch 'mac_joystick' into develop
thefiddler [Sun, 5 Jan 2014 21:50:27 +0000 (22:50 +0100)]
Merge branch 'mac_joystick' into develop

10 years ago[Mac] Map GamePads, MultiAxisControllers and Wheels to joysticks
thefiddler [Sun, 5 Jan 2014 21:44:58 +0000 (22:44 +0100)]
[Mac] Map GamePads, MultiAxisControllers and Wheels to joysticks