thefiddler
a4d2a31386
[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
2014-01-09 23:36:28 +01:00
Stefanos A.
7f64945079
[OpenTK] Do not raise *Frame events when time = 0
...
Affects issue #40
2014-01-09 00:51:09 +01:00
thefiddler
bcc2405002
Merge branch 'rdp' into develop
2014-01-09 00:19:42 +01:00
Stefanos A.
28ac3cec0b
[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.
2014-01-09 00:14:25 +01:00
Stefanos A.
1b3b510376
[Win] Check registry keys before accessing
...
Fixes crashes when using OpenTK over the Remote Desktop Client for Mac
(version 2010).
2014-01-09 00:10:41 +01:00
thefiddler
811126c47b
Merge pull request #38 from opentk/issue34
...
Fix for issue #33 and issue #34
2014-01-08 13:36:32 -08:00
Stefanos A.
4af9d30ccb
[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.
2014-01-08 22:29:22 +01:00
Stefanos A.
51ad513dbb
[Win] Do not overload internal SetWindowLong
...
The internal function is now appended with "Internal".
2014-01-08 19:22:03 +01:00
Stefanos A.
7363cfee7b
[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.
2014-01-08 19:21:29 +01:00
Stefanos A.
51baed7286
[Win] Remove unnecessary #if clauses
2014-01-08 00:45:42 +01:00
Stefanos A.
e260a42954
[Win] Refactor huge wndproc into functions
2014-01-08 00:02:27 +01:00
thefiddler
eacc896605
Merge branch 'timing' into develop
2014-01-07 22:19:22 +01:00
Stefanos A.
a961fb3db3
[Examples] Added keys to modify timing
...
Use [ and ] to decrease and increase the UpdateFrame frequency.
Use < and > to decrease and increase the RenderFrame frequency.
2014-01-07 22:09:52 +01:00
Stefanos A.
b6a806a568
[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.
2014-01-07 22:09:02 +01:00
Stefanos A.
6e03d501ae
[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.
2014-01-07 15:55:11 +01:00
thefiddler
251f5717ae
[Examples] Improve timing information; add vsync toggle
2014-01-07 09:12:35 +01:00
thefiddler
99df27b635
[OpenTK] Corrected GameWindow.Update/RenderFrequency information
2014-01-07 09:11:55 +01:00
thefiddler
56a3dd91e5
[OpenTK] Implemented GameWindow.UpdateTime and RenderTime properties
2014-01-07 09:09:43 +01:00
thefiddler
3856fcd48e
[OpenTK] More robust timing for UpdateFrame and RenderFrame
...
FrameEventArgs.Time should no longer drift from clock time measured
outside GameWindow.
2014-01-07 08:52:02 +01:00
thefiddler
c5dcc8a93b
[Examples] Calculate timing information in GameWindowStates
2014-01-07 01:01:00 +01:00
thefiddler
d49dacb5b3
[Examples] Cleaned up input device printing in GameWindowStates
2014-01-07 00:48:09 +01:00
Stefanos A.
83f54f70aa
[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)
2014-01-06 01:57:54 +01:00
Stefanos A.
88c57db5b6
[Math] Added MathHelper.Clamp
2014-01-06 01:52:08 +01:00
thefiddler
a9ab3650da
[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.
2014-01-05 23:58:05 +01:00
thefiddler
4d660fdeba
[Input] Added Keyboard/MouseState.SetIsConnected to mirror JoystickState
2014-01-05 23:50:17 +01:00
thefiddler
e984ddd783
Merge branch 'mac_joystick' into develop
2014-01-05 22:50:27 +01:00
thefiddler
fda2d32d2d
[Mac] Map GamePads, MultiAxisControllers and Wheels to joysticks
2014-01-05 22:44:58 +01:00
thefiddler
a1123834a0
[Mac] Call DeviceRemoved() in Dispose() event
...
The necessary cleanup code already exists in DeviceRemoved(). No need
to duplicate this in the Dispose() event.
2014-01-05 22:38:26 +01:00
thefiddler
ab85afd5ba
[Mac] Avoid IOHIDDeviceConformsTo call in DeviceRemoved handler
...
DeviceAdded already checks that devices conform to the desired usage
pages. Checking again in DeviceRemoved is unnecessary - if a device
exists, then it has already passed muster.
2014-01-05 22:36:01 +01:00
thefiddler
9e223486f6
[Mac] Implement Joystick.GetGuid()
2014-01-05 22:15:55 +01:00
thefiddler
5c5afb3ea3
[Mac] Calculate joystick Guid for USB devices
2014-01-05 22:06:19 +01:00
thefiddler
b458b40683
[Mac] Use out/ref parameters instead of unsafe pointers in bindings
2014-01-05 22:05:54 +01:00
thefiddler
fa386dc991
[Mac] Connect devices to first available index
2014-01-05 21:53:28 +01:00
thefiddler
fc81f30251
[Examples] Draw device index for Joysticks and GamePads
2014-01-05 21:32:24 +01:00
thefiddler
05af21e61b
[Mac] Do not call CFRelease on HID properties
...
HID properties are callee-owned and should not be released by the
caller. Fixes crash (memory corruption) on device hot plugging.
2014-01-05 21:27:34 +01:00
thefiddler
02c9f471ea
[Mac] DllImport must be marked as extern
2014-01-05 21:18:20 +01:00
thefiddler
7388bd935d
[Mac] Correctly unschedule HIDManager from run loop
2014-01-05 20:17:03 +01:00
thefiddler
4c7f6a92a7
[Mac] Don't let exceptions escape to unmanaged code
2014-01-05 04:20:51 +01:00
thefiddler
892d129e54
[Mac] Fixed DllEntryPointNotFound crash on device unplugging
2014-01-05 04:15:30 +01:00
thefiddler
2ee24efb2f
[Mac] Implemented joystick buttons
2014-01-05 04:11:11 +01:00
thefiddler
fad42994e1
[Mac] Implemented joystick axis movement
2014-01-05 03:54:53 +01:00
thefiddler
92635b3f35
[Input] Added JoystickAxis/Button.Last; added JoystickAxis.Axis10.
...
JoystickAxis/Button.Last is used internally to allocate the correct
amount of storage for joystick axes and buttons. JoystickAxis.Axis10 is
required to support the maximum number of axes available on Mac OS X.
2014-01-05 03:54:34 +01:00
thefiddler
59249c2624
[Mac] Implemented joystick device detection
2014-01-05 03:03:46 +01:00
thefiddler
07bcda0f57
[Mac] Retrieve HID joystick name
2014-01-05 02:42:47 +01:00
thefiddler
6dadbd3570
[Mac] Implemented necessary CFString methods
2014-01-05 02:42:33 +01:00
thefiddler
32653d2c64
[Mac] Construct JoystickDevice when joysticks are connected
2014-01-05 00:47:40 +01:00
thefiddler
3757db9978
[Input] Allow extending JoystickDevice<>
2014-01-05 00:46:59 +01:00
thefiddler
bf8efea121
[Mac] Only add callbacks for recognized USB HID devices
2014-01-05 00:00:49 +01:00
thefiddler
c44b477388
[Mac] Implement device added/removed events for joysticks
2014-01-04 23:58:59 +01:00
thefiddler
9659a1d786
[Mac] Add skeleton HID input implementation for joysticks
2014-01-04 23:55:38 +01:00