Stefanos A.
0c9b612bff
[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.
2014-01-14 14:20:38 +01:00
Stefanos A.
1f44cf27a1
[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.
2014-01-14 13:55:24 +01:00
Stefanos A.
95d71bc0cc
[OpenTK] Respect a TargetUpdatePeriod of zero
2014-01-14 13:33:41 +01:00
Stefanos A.
97e49b76b2
[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.
2014-01-14 13:04:30 +01:00
Stefanos A.
3eccb89821
[OpenTK] Remove Thread.Sleep() from loop timing
2014-01-13 11:36:56 +01:00
Stefanos A.
b3554bb74c
[OpenTK] Simplified update and render loops
2014-01-13 11:22:33 +01:00
Stefanos A.
fca9f930e4
[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
2014-01-12 21:37:18 +01:00
Stefanos A.
c31f64f7e1
[OpenTK] Frameskip needs TargetUpdateFrequency!=0
2014-01-11 01:46:38 +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
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
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
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
thefiddler
6d0b5eb49f
Implemented SDL2 platform using sdl2-cs
...
This is a new platform that can be used then sdl2 is installed on the target system. SDL2 is commercially supported by Valve and provides better support for MacOS compared to our current implementation (Cocoa vs Carbon). It will also help us introduce faster support for new platforms. Existing platforms remain as a fallback and will be automatically used if sdl2 is not installed.
Please note that this is still a work in progress. The new mouse and keyboard API is not supported yet. Due to limitations of sdl2, multiple mice/keyboards are also not supported.
2013-09-27 14:41:37 +02:00
the_fiddler
7bcbfc7072
Added conditional compilation and the necessary classes to compile OpenTK without referencing System.Drawing.dll. To build without System.Drawing, add "MINIMAL" to the conditional compilation symbols. Note that this is an experimental feature that will result in a source- and binary-incompatible dll.
2011-12-08 00:03:14 +00:00
the_fiddler
656e18ed00
Protect against negative Stopwatch values on buggy systems. Fixes issue [#2740}: "OpenTK freeze in GameWindow main loop, and possible fix. (Copied from Development forum)".
2011-11-03 10:34:57 +00:00
the_fiddler
b3f846dbc6
Implemented IGraphicsContext.SwapInterval property that supersedes IGraphicsContext.VSync. Fixes issue [ #2671 ]: "Expose SwapInterval to GameWindow".
2011-09-06 12:06:30 +00:00
the_fiddler
5512776943
Fixed potential race condition when raising events: an event might be modified to null after the null check and before being raised.
2010-10-28 09:37:57 +00:00
the_fiddler
f6bf0c95c6
Fixed ambiguous documentation reference.
2010-10-28 09:31:20 +00:00
the_fiddler
19287142d3
Added missing documentation to OnResize.
2010-10-28 09:00:07 +00:00
the_fiddler
88e6aceae0
Synced trunk with 1.0 branch.
2010-10-02 18:52:34 +00:00
the_fiddler
bca3751e8b
Synced with 1.0 branch.
2010-03-11 22:53:11 +00:00
the_fiddler
53b84d18d4
Backported bugfixes from 1.0 branch.
2010-02-03 19:04:42 +00:00
the_fiddler
d00cc6bd86
Merged GameWindow timing fixes and release documentation from branches/1.0.
2009-11-17 14:54:30 +00:00
kanato
8bd20009b2
Mac OS X Fix for GameWindow to call glContext.Update when resized
2009-11-09 06:51:52 +00:00
the_fiddler
67fed8705f
Fixed spelling of hertz and fps. Fixes issue [ #1333 ]: "Spelling of SI units in documentation and captions". Patch by iRBiS.
2009-11-06 16:46:28 +00:00
the_fiddler
fa81d3daa8
Cleaned up a large number of documentation issues.
2009-11-04 20:48:02 +00:00
the_fiddler
68b2a5942b
Generate UpdateFrame events even if TargetUpdateFrequency is 0. According to the documentation, setting this value to 0 will result in unconstrained UpdateFrame frequency. Fixes issue [ #1294 ]: "OnUpdateFrame function does not work with maximum update rate".
2009-10-27 22:23:11 +00:00
the_fiddler
15cad88758
OnLoad/OnUnload should be protected, not public, to conform with the class library design guidelines. This issue was supposed to be fixed in 0.9.9-2, but was apparently overlooked.
2009-10-21 13:33:00 +00:00
the_fiddler
b896d8952c
* GameWindow.cs: Improved implementation of GameWindow.Exit(). It should now be possible to cancel the exit through the IsClosing event.
2009-10-07 16:13:46 +00:00
the_fiddler
64c6148f53
Generate Update/ResizeFrame events whenever the window is moved or resized. Partially fix for issue [ #1218 ]: "[NativeWindow] Avoid modal loop during window resize/movement".
2009-10-07 15:18:53 +00:00
the_fiddler
a028460f53
Refactored and simplified the Run() loop.
2009-10-07 13:08:13 +00:00
the_fiddler
59f9746665
Ensure the GameWindow is visible when the Run() method is called.
2009-09-19 21:56:13 +00:00
the_fiddler
572baf16be
Removed [Obsolete] attribute from Joysticks, Keyboard and Mouse properties until the new input API is ready.
2009-09-04 22:08:51 +00:00
the_fiddler
c730a706a6
Applied kvark's latest NativeWindow/GameWindow patch, which improves event handling, the shutdown sequence and documentation, while removing stale code.
2009-09-04 21:27:05 +00:00
the_fiddler
7970282d7b
Ensured System.Windows.Forms.NativeWindow is resolved correctly.
...
Renamed OpenTK.NativeWindow0 to OpenTK.NativeWindow.
2009-08-21 19:34:20 +00:00
the_fiddler
3095504dd1
Removed GameWindowExitException.
...
Modified Exit() method to call Close() instead of disposing of the GameWindow.
Check and exit main loop if Exists == false.
2009-08-20 22:26:31 +00:00
the_fiddler
618aa34df8
Committed initial NativeWindow implementation.
2009-08-20 22:22:38 +00:00
the_fiddler
5e80a061b8
Implemented INativeWindow.WindowBorderChanged and INativeWindow.WindowStateChanged events.
2009-08-17 09:34:15 +00:00
the_fiddler
0e02f67749
Moved OpenTK.Graphics.GL class to the OpenTK.Graphics.OpenGL namespace (reason: necessary for OpenGL|ES support; necessary for support of different OpenGL profiles). OpenTK.Graphics.GL has been moved to the OpenTK.Compatibility library.
...
Removed OpenTK.Graphics.Glu class (reason: deprecated upstream; most functionality provided by OpenTK math; not compatible with OpenGL 3.0+.) OpenTK.Graphics.Glu can be accessed through OpenTK.Compatibility.
Added OpenGL|ES-specific ErrorHelper classes.
Moved OpenTK.Graphics.DisplayDevice and OpenTK.Graphics.DisplayResolution to the root OpenTK namespace (reason: their functionality is not specific and does not depend on OpenTK.Graphics).
Split Graphics*Exception classes into different files.
Made GraphicsErrorException public (reason: necessary for OpenTK.Compatibility).
2009-08-14 13:13:28 +00:00
the_fiddler
4847646cc8
Added INativeWindow.CreateKeyboardDriver()
...
Added INativeWindow.KeyPress event (KeyPressEventArgs).
Removed INativeWindow.Icon property.
2009-07-19 17:49:51 +00:00
the_fiddler
57e4bb85bd
Moved GameWindowFlags enumeration to its own file.
...
Added GameWindowFlags.Default token.
2009-07-18 08:21:58 +00:00
the_fiddler
1bdc6b6634
Added missing XML docs.
2009-06-28 10:49:10 +00:00
the_fiddler
8e70a94d3d
Enabled xml documentation in debug builds.
...
Fixed a few XML documentation warnings.
2009-06-25 11:16:45 +00:00
the_fiddler
d5efed9045
Removed obsolete IResizable, DisplayMode and ColorMode APIs.
...
Marked carbon API class as internal.
Added a large number of missing XML comments.
2009-06-04 11:31:02 +00:00
the_fiddler
cb661c2dca
Merged gw-next2 branch to trunk.
2009-06-02 15:49:39 +00:00
kanato
25fac6226d
Implement PointToScreen via poor man's method of just inverting result from PointToClient.
2009-05-11 02:18:22 +00:00
kanato
f71fdac268
Correct PointToClient so that returned point is relative to upper left corner of game window, consistent with the documentation.
2009-05-11 02:13:46 +00:00