Commit graph

140 commits

Author SHA1 Message Date
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
the_fiddler
2f54b29ed8 Added initial support for GameWindow.PointToClient. 2009-05-07 19:48:22 +00:00
the_fiddler
9265747541 Fixed all known build warnings, apart from missing xml comments. 2009-03-25 21:53:12 +00:00
the_fiddler
d43123f219 Added new GameWindow constructors that specify the desired GraphicsContext (OpenGL) version and flags. 2009-03-07 10:49:32 +00:00
the_fiddler
0dca74a232 Implemented JoystickDevice events.
Added GameWindow interface to JoystickDevices.
Added HID support to Tests/InputLogger.
2009-03-01 00:28:31 +00:00
the_fiddler
6ae75f0e08 Added Closing event that can be used to cancel a call to GameWindow.Exit().
Made GameWindow.Exit() thread-safe.
ExitAsync() is now privateee (use Exit() instead).
GameWindow.Exit() now correctly works when called from inside the OnLoad method or the Load event.
2009-02-22 15:48:31 +00:00
the_fiddler
a22019d890 Normalize line endings and set the mime-type=text/plain and eol-style=native properties on all files. 2009-02-22 10:43:35 +00:00