the_fiddler
2c5e7220c3
Implemented KeyboardState.IsConnected property.
...
Implemented WinRawKeyboard.RefreshDevices().
General code clean-up and beautification.
2010-10-29 11:46:57 +00:00
the_fiddler
2934c9d004
Decoupled new driver API from old public interface.
...
WinRawMouse can now detect mouse disconnection/connection events.
2010-10-29 11:27:40 +00:00
the_fiddler
c1043d1693
Do not modify device state during the GetState() call. Fixes intermittent crashes.
2010-10-28 13:00:21 +00:00
the_fiddler
0044e4442d
Modified GetState() to return the combined state for all mouse/keyboard devices.
2010-10-28 11:10:57 +00:00
the_fiddler
c99571acac
Fixed capacity parameter for GetWindowText(). Fixed debug string format that is printed when GetWindowText() fails.
2010-10-28 10:36:28 +00:00
the_fiddler
a070918e93
Removed events that are not part of the INativeWindow interface.
2010-10-28 09:34:13 +00:00
the_fiddler
e13a8e25ae
Added code to raise all available events. Removed unused events from old OpenTK versions. Fixed potential race condition when raising events (an event might become null between the null check and the actual raising).
2010-10-28 09:31:00 +00:00
the_fiddler
d56478c5b2
Minor cosmetic change.
2010-10-28 08:43:36 +00:00
the_fiddler
1bef154d36
Implemented WinRawKeyboard input driver.
2010-10-28 08:42:38 +00:00
the_fiddler
40c2576e06
Avoid numeric overflow when printing debug message.
2010-10-28 08:42:20 +00:00
the_fiddler
fa0abf0d51
Minor fixes for code clarity.
2010-10-28 08:13:42 +00:00
the_fiddler
2430f82ff7
Implemented raw keyboard input for Windows. Improved the interface for receiving input. Moved raw input window to its own thread.
2010-10-22 14:57:06 +00:00
the_fiddler
75c71107a3
Initial implementation of raw mouse input on Windows.
2010-10-22 13:41:42 +00:00
the_fiddler
b2ccc8f089
Fixed CursorVisible getter.
...
If necessary, re-grab the cursor whenever the window changes position/size.
2010-10-22 13:36:05 +00:00
the_fiddler
327941be33
Implemented PointToScreen and fixed mouse grab rectangle to match the client rectangle exactly.
2010-10-22 13:22:28 +00:00
the_fiddler
86588ea60c
* Source/OpenTK/Input/Mouse.cs:
...
* Source/OpenTK/Platform/Factory.cs:
* Source/OpenTK/Input/InputDriver.cs:
* Source/OpenTK/Input/IMouseDriver.cs:
* Source/OpenTK/Platform/X11/X11Input.cs:
* Source/OpenTK/Platform/X11/X11Factory.cs:
* Source/OpenTK/Platform/Windows/WMInput.cs:
* Source/OpenTK/Platform/IPlatformFactory.cs:
* Source/OpenTK/Platform/MacOS/CarbonInput.cs:
* Source/OpenTK/Platform/Windows/WinFactory.cs:
* Source/OpenTK/Platform/MacOS/MacOSFactory.cs:
* Source/OpenTK/Platform/Windows/WinGLNative.cs:
* Source/OpenTK/Platform/Windows/WinRawMouse.cs:
* Source/OpenTK/Platform/Windows/WinRawInput.cs: Added new MouseDriver
interface and added stub internal implementations.
2010-10-20 14:58:38 +00:00
the_fiddler
e801660ff7
* Source/OpenTK/OpenTK.csproj:
...
* Source/OpenTK/Input/Keyboard.cs:
* Source/OpenTK/Input/InputDriver.cs:
* Source/OpenTK/Input/KeyboardState.cs:
* Source/OpenTK/Input/IKeyboardDriver.cs:
* Source/OpenTK/Platform/X11/X11Input.cs:
* Source/OpenTK/Platform/X11/Functions.cs:
* Source/OpenTK/Platform/X11/X11Factory.cs:
* Source/OpenTK/Platform/Windows/WMInput.cs:
* Source/OpenTK/Platform/X11/X11Keyboard.cs:
* Source/OpenTK/Platform/MacOS/CarbonInput.cs:
* Source/OpenTK/Platform/Windows/WinGLNative.cs:
* Source/OpenTK/Platform/Windows/WinRawInput.cs:
* Source/OpenTK/Platform/Windows/WinRawKeyboard.cs: Added initial
OpenTK.Input.Keyboard implementation for X11.
2010-10-20 14:33:23 +00:00
the_fiddler
9ec00014eb
Take into account the fact that ShowCursor(true/false) calls are cumulative (we want boolean behavior instead).
2010-10-19 09:25:09 +00:00
the_fiddler
00311cdb13
Added initial code for mouse grabbing. Modified GameWindowStates to test this.
2010-10-19 09:20:59 +00:00
the_fiddler
d5aaf4a794
* Source/OpenTK/Platform/Windows/API.cs:
...
* Source/OpenTK/Platform/Windows/WinGLNative.cs: Implemented
CursorVisible.
2010-10-18 16:14:38 +00:00
the_fiddler
42e0880cbb
* Source/OpenTK/NativeWindow.cs:
...
* Source/OpenTK/INativeWindow.cs:
* Source/OpenTK/Platform/X11/API.cs:
* Source/OpenTK/Platform/X11/X11GLNative.cs:
* Source/OpenTK/Platform/Windows/WinGLNative.cs:
* Source/OpenTK/Platform/MacOS/CarbonGLNative.cs:
* Source/Examples/OpenTK/Test/GameWindowStates.cs: Initial
implementation of CursorVisible API. See issue [#1560 ].
2010-10-18 15:25:25 +00:00
the_fiddler
1f4b5be7d0
Synced trunk with 1.0 branch.
2010-10-02 18:52:34 +00:00
the_fiddler
3f8f9b09e3
Synced with 1.0 branch.
2010-03-11 22:53:11 +00:00
the_fiddler
da7e4c7252
Backported bugfixes from 1.0 branch.
2010-02-03 19:04:42 +00:00
the_fiddler
f12cbf1cd5
Synced trunk with 1.0 branch.
2009-11-16 18:45:41 +00:00
the_fiddler
e1485cdfca
Added a second terminating 0 to attribute list, trying to work around issue [ #1352 ]: "Occasional AccessViolationExceptions when creating the GLControl".
2009-11-08 22:42:20 +00:00
the_fiddler
1cd2b8d076
Use SHOW command instead of SHOWNORMAL when making a window visible, since SHOWNORMAL will un-maximize a fullscreen or maximized window.
...
Do not force an invisible window to become visible when modifying its state or borders.
2009-11-07 10:44:31 +00:00
the_fiddler
8733dd7c2f
* Platform/Windows/WinDisplayDevice.cs:
...
* Platform/MacOS/QuartzDisplayDeviceDriver.cs: Updated to use the new
DisplayDevice constructors.
* Platform/X11/X11XrandrDisplayDevice.cs: Query Xinerama for the exact
bounds of each display device, if available.
Use global X lock to protect from multithreaded access.
2009-11-06 09:50:50 +00:00
the_fiddler
b36e6c64d7
Refactored timer installation/removal into their own methods.
2009-11-04 18:35:32 +00:00
the_fiddler
5142354cda
Renamed internal BindingsBase.LoadAll/Load methods to LoadEntryPoints/LoadEntryPoint, in order to avoid name clashes with the static GL.LoadAll() method.
...
Added GraphicsContext() constructor that takes an existing, valid OpenGL context. This can be used for interop with third-party toolkits which create the OpenGL context themselves.
2009-11-04 16:49:56 +00:00
the_fiddler
9f96fe71c1
Removed unnecessary debugging messages from main loop.
2009-11-04 10:03:50 +00:00
the_fiddler
765f54917e
Default window style flags can be constants rather than static readonly fields.
...
Throw an exception if we fail to register the window class, the previous solution (check for "class already exists" error) was a workaround for a threading issue that has been solved.
Set the small icon when registering the class.
2009-11-04 09:21:41 +00:00
the_fiddler
15ab0d3ea7
Fixed ClassName and ModalLoopTimerId when constructing multiple WinGLNative windows in parallel.
...
WinGLNative windows are now correctly focused when clicked on the client area.
2009-11-03 23:42:06 +00:00
the_fiddler
544cf9d405
Serialize context construction to avoid threading issues with shared contexts.
2009-11-03 23:39:03 +00:00
the_fiddler
7e1ebfea6b
Avoid static caching of extension strings and improve multithreading behavior - WGL extension checking is fast enough that caching is not very useful.
2009-11-03 23:36:37 +00:00
the_fiddler
c8c652131e
Added experimental Icon and IconConverter implementations from Mono.
...
Modified INativeWindow implementations to not qualify Icon class fully, so we can change the implementation between System.Drawing and OpenTK at will (using the EXPERIMENTAL #define).
2009-11-02 09:33:53 +00:00
the_fiddler
ff572e83b7
Added experimental OpenTK.Point/Size/Rectangle alternatives to System.Drawing, to make OpenTK usable without referencing System.Drawing (disabled by default, #define EXPERIMENTAL to test). Modified a number of using directives and namespace qualifiers to accommodate this change.
2009-11-01 12:44:38 +00:00
the_fiddler
3d0a3dfb4e
Implemented INativeWindow.MouseEnter/MouseLeave events on Win32 and X11.
2009-10-27 23:57:44 +00:00
the_fiddler
a7ccef9ae8
Set default class cursor to avoid invalid cursors when entering the window.
2009-10-21 20:08:04 +00:00
the_fiddler
f1fc4b5b4e
Added LoadCursor method.
...
Added CursorName enum (only default arrow cursor is defined for now).
2009-10-21 20:07:32 +00:00
the_fiddler
bdfa5fc9ec
Avoid accessing OpenTK.Graphics.OpenGL from platform-specific code. Reduces coupling and code-duplication.
2009-10-21 10:16:32 +00:00
the_fiddler
25c646639b
Trap WM_SYSCHAR to avoid generating system beeps on Alt+[Key] combinations.
2009-10-20 11:35:35 +00:00
the_fiddler
ddcf5f6e44
Revert WindowBorder and WindowState value changes.
...
Use Nullable types to detect when WindowBorder and WindowState is not set.
2009-10-19 21:32:33 +00:00
the_fiddler
e551881f1b
Implemented icon support.
2009-10-18 16:52:07 +00:00
the_fiddler
76ae6999cd
Focused property now returns correct values. FocusedChanged event is now correctly raised.
2009-10-18 15:11:41 +00:00
the_fiddler
590789a684
Improved handling if WindowBorder changes when the window is WindowState is Maximized or Fullscreen. Maximized windows now correctly retain their maximized state, while fullscreen windows do not become non-fullscreen when their border is modified.
2009-10-18 14:56:53 +00:00
the_fiddler
6be563211f
* API.cs: added MonitorFromWindow/MonitorFromPoint methods.
...
* WinGLNative.cs: fixed handling of WindowState.Maximized when WindowBorder is Hidden.
WindowStateChanged events are now correctly raised on all state changes.
2009-10-18 09:42:41 +00:00
the_fiddler
c5464bc5d0
Do not print window title to debug stream inside the set_Title property. Instead, log an error only when the method call fails. Fixes issue [ #1239 ]: "Debug.Print in Title property".
2009-10-17 22:02:08 +00:00
the_fiddler
4abe4416a8
Added LoadIcon method.
...
Made SHFILEINFO non-public.
Modified WinGLNative.cs to use Icon.ExctractAssociatedIcon() to set the application icon (needs work).
2009-10-14 22:48:19 +00:00
the_fiddler
ef1a4488d0
Added support for setting the application (use SHGetFileInfo to retrieve the correct icon and set it when constructing a new window).
2009-10-14 21:50:40 +00:00
the_fiddler
973839ef2b
Restore previous window size when leaving fullscreen mode.
2009-10-14 19:46:39 +00:00
the_fiddler
d76279565f
Workaround for modal loop blocking in ENTERMENULOOP event.
2009-10-12 13:15:12 +00:00
the_fiddler
ab138bfb37
Post a close message instead of destroying the window outright, when the user calls the Close() method. Ensures that the user can stop the exit sequence through the IsClosing event.
2009-10-07 16:18:48 +00:00
the_fiddler
e441e9d067
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
a6984a7a48
Added timer callback to WM_ENTERSIZEMOVE messages to avoid stalling the rendering during the modal size/move loop (which occurs when the user clicks the window bar or borders). Still need to find a way to notify the frontend (GameWindow) to process queued up UpdateFrame/RenderFrame events.
2009-10-07 13:07:36 +00:00
the_fiddler
eaac78008b
Added SetTimer, KillTimer and TimerProc bindings.
2009-10-07 13:03:32 +00:00
the_fiddler
69cfe6b56a
Raise KeyPress events (handle WindowsMessage.CHAR message).
2009-09-26 21:56:42 +00:00
the_fiddler
87683d533e
Renamed IsWindowVisisble to the correct IsWindowVisible.
2009-09-19 20:30:12 +00:00
the_fiddler
76e338ce5e
Removed obsolete comment.
2009-09-08 16:55:41 +00:00
the_fiddler
4e86dd1381
Remove System.Windows.Forms.Control dependency in favor of OpenTK.NativeWindow.
2009-09-08 13:09:50 +00:00
the_fiddler
542144ac7c
Construct windows invisible by default. Use 'Visible = true' or 'GameWindow.Run' to display them.
2009-09-08 13:04:22 +00:00
the_fiddler
b41877e771
Added IsWindowVisible method.
2009-09-08 13:03:21 +00:00
the_fiddler
c573869322
Made GraphicsMode.Index public, as it is necessary when extending OpenTK.
...
Removed OpenTK.Platform.Utilities.CreateWindowInfo and made the platform-specific CreateWindowInfo methods public (e.g. CreateX11WindowInfo).
Moved Mono Windows.Forms-specific code into X11GLControl.
Removed OpenTK.Platform.Utilities.IsIdle.
Removed obsolete methods from OpenTK.Platform.Utilities.
Marked OpenTK.Platform.Utilities.CreateGraphicsContext as obsolete (use GraphicsContext constructor instead).
Made IWindowInfo implementations private.
2009-09-04 21:11:25 +00:00
the_fiddler
f6da09177e
Fixed line endings and set svn:eol-style to native and svn:mime-type to text/plain for .cs files.
2009-09-03 19:01:11 +00:00
the_fiddler
2f5a0bfe3b
* Source/OpenTK/Platform/Egl/EglContext.cs:
...
* Source/OpenTK/Graphics/GraphicsContext.cs:
* Source/OpenTK/Graphics/IGraphicsContext.cs:
* Source/OpenTK/Platform/MacOS/AglContext.cs:
* Source/OpenTK/Platform/X11/X11GLContext.cs:
* Source/OpenTK/Graphics/GraphicsContextBase.cs:
* Source/OpenTK/Platform/Windows/WinGLContext.cs:
* Source/OpenTK/Platform/Dummy/DummyGLContext.cs: Added IsDisposed
property to IGraphicsContext and implemented in all context classes.
Removed 'bool disposed' fields from these classes in favor of the
new property.
2009-09-03 12:23:11 +00:00
the_fiddler
9d3561dc4e
Merged nativewindow branch to trunk.
2009-09-02 13:36:34 +00:00
the_fiddler
c6516c2255
Moved OpenTK.GLControl to its own project.
2009-08-19 14:17:47 +00:00
the_fiddler
7f970763a7
Moved GdiPlus wrappers to OpenTK.Compatibility.
...
Moved TextPrinter to OpenTK.Compatibility.
2009-08-17 10:29:51 +00:00
the_fiddler
775f158269
Removed Destroy event and RegisterForDisposal method from IGraphicsContext.
...
Added GraphicsContextBase, which acts as the foundation of all IGraphicsContext implementations.
Added DesktopGraphicsContext, which acts as the foundation of all desktop (i.e. not ES) IGraphicsContext implementations.
Modified all IGraphicsContext implementations to inherit from GraphicsContextBase and/or DesktopGraphicsContext.
2009-08-17 10:23:16 +00:00
the_fiddler
1bcc012f35
Implemented INativeWindow.WindowBorderChanged and INativeWindow.WindowStateChanged events.
2009-08-17 09:34:15 +00:00
the_fiddler
9a6a539d26
Modified GraphicsMode.Index to be a nullable property. Modified consuming classes to check Index.HasValue prior to first use.
2009-08-15 16:44:43 +00:00
the_fiddler
3462e80978
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
81b06b8a08
Ensure Wgl core entry points are loaded prior to first use, even without a Wgl context.
...
Do not query actual GraphicsMode.Default in DummyGLContext constructor. Doing so creates a temporary context, which should not be done when creating a dummy context.
Fixed issue [#993 ]: "Possible bug in GraphicsContext.CreateDummyContext()".
2009-08-11 21:45:32 +00:00
the_fiddler
8f74430e23
Made class public.
...
Added missing license information.
2009-08-11 20:55:43 +00:00
the_fiddler
58e58e8885
Implemented CreateKeyboardDriver (currently disabled).
2009-08-04 08:49:15 +00:00
the_fiddler
503d86267a
Marked all IPlatformFactory interface implementations as virtual.
2009-07-24 21:52:01 +00:00
the_fiddler
b1a6202269
Replaced tabs with spaces.
2009-07-19 17:50:41 +00:00
the_fiddler
67bdd39d08
Added INativeWindow.CreateKeyboardDriver()
...
Added INativeWindow.KeyPress event (KeyPressEventArgs).
Removed INativeWindow.Icon property.
2009-07-19 17:49:51 +00:00
the_fiddler
f46e9b1564
Removed obsolete code.
...
Implemented X11GLNative.IconChanged event.
2009-06-24 14:42:40 +00:00
the_fiddler
daed9943a8
Removed obsolete code.
2009-06-24 14:38:48 +00:00
the_fiddler
83bcde95f9
Marked platform-specific APIs as internal.
...
Added ObsoleteAttribute to obsolete functionality.
2009-06-04 11:21:33 +00:00
the_fiddler
7df9a448d6
Merged gw-next2 branch to trunk.
2009-06-02 15:49:39 +00:00
the_fiddler
ac21b13246
Fixed recursion that between WinGraphicsMode.SelectGraphicsModeARB and GraphicsMode.Default.
...
Fixed acceleration attribute in WinGraphicsMode.SelectGraphicsModeARB. Now, antialiasing works on nvidia drivers, too.
2009-06-01 13:24:18 +00:00
the_fiddler
98e39f16a2
WinGraphicsMode now uses wglChoosePixelFormatARB, if available. This allows the use of FSAA modes.
2009-06-01 11:05:31 +00:00
the_fiddler
76641d46d6
Added GraphicsContext.GetCurrentContextDelegate to IPlatformFactory.
...
Improved CreateDummyContext logic to detect and use the context handle of the current thread or a specified handle.
Removed GetCurrentContext() methods from platform-specific context implementations (everything now goes through the relevant IPlatformFactories).
2009-05-30 19:27:52 +00:00
the_fiddler
deadbdf6cb
Merged TextPrinter optimization changes from gw-next2 branch.
2009-05-27 18:40:29 +00:00
the_fiddler
d686adb42a
Ensured IWindowInfo.Dispose() is called when the GLControl handle is destroyed.
...
WinGLContext.SwapBuffers now throws an exception on failure.
2009-05-19 09:48:47 +00:00
the_fiddler
9bdc21cabd
Added diagnostic message when ReleaseDC fails.
2009-05-19 09:45:36 +00:00
the_fiddler
2277bf8576
Modified Wgl.SupportsExtension to be more defensive when calling Wgl.Arb.GetExtensionString. It now bails out if the extension string is empty.
2009-05-19 09:44:47 +00:00
the_fiddler
c02b693062
Added initial support for GameWindow.PointToClient.
2009-05-07 19:48:22 +00:00
the_fiddler
e5df36036b
Fixed potential crash-bug in the WGL_ARB_create_context path (missing 0 attribute).
2009-04-29 11:02:12 +00:00
the_fiddler
3f41f1eaf5
Added stack traces to automatic error checking.
...
Added GraphicsContext.ErrorChecking property to temporarily disable error checking if necessary.
Error checking is now added to all functions in debug mode (the generator would miss specific CLS-compliant overloads before).
2009-03-29 21:41:30 +00:00
the_fiddler
d4aef922bc
Fixed all known build warnings, apart from missing xml comments.
2009-03-25 21:53:12 +00:00
the_fiddler
c7adcbb79b
Moved GraphicsMode to IGraphicsContext as it is universally useful.
...
Implemented GraphicsMode property on X11 and Mac OS X.
Replaced tabs with spaces in AglContext.cs.
2009-03-23 11:41:11 +00:00
the_fiddler
ca1e416a53
Relaxed checks to allow input devices that do not contain any axes and/or buttons (e.g. tablets or keyboard extensions).
2009-03-08 20:03:33 +00:00
the_fiddler
fda108701c
Added new GLControl constructors that allow you specify the desired GraphicsContext (OpenGL) version and flags.
2009-03-07 11:03:41 +00:00
the_fiddler
0759beaebf
Added new GameWindow constructors that specify the desired GraphicsContext (OpenGL) version and flags.
2009-03-07 10:49:32 +00:00
the_fiddler
4a2a223751
Added the capability to specify the desired OpenGL version and parameters (debug / forward-compatible context).
...
Added OpenGL 3.0 support for GLX contexts.
Added support for creating dummy contexts (useful if you are creating contexts from an external library).
Cleaned up unused and stale code.
2009-03-07 10:36:51 +00:00
the_fiddler
03cf3ee512
WinMM devices with 0 axes and no POV hats are not joysticks/joypads.
2009-03-07 05:55:33 +00:00
the_fiddler
67f9358bd3
* X11/X11Joystick.cs: Flip vertical axes so that +1 points up.
...
* Windows/WinMMJoystick.cs: Move Z-axis before R-axis.
2009-03-01 09:17:19 +00:00