Commit graph

464 commits

Author SHA1 Message Date
Jacob Hauberg Hansen
af74d97903 Fix NullPointerException on Windows 8. 2013-01-26 14:27:26 +01:00
Andy Korth
0f64af130a Committing artfunkel patch for scan codes 2013-01-24 15:48:01 -06:00
Robert Rouhani
b5591e1eee Started implementing GamePad 2013-01-16 17:56:31 -08:00
Andy Korth
fa422dca2a Fix Windows 8 Keyboard, OpenTK issue 3198 2013-01-14 13:09:55 -06:00
Andy Korth
5b0db16a89 Mouse up events in Windows occur regardless of where on the screen the cursor is. OpenTK issue 2133 2012-12-21 21:12:59 -06:00
Andy Korth
224a296220 Address mouse on windows 8 for OpenTK issue 3198 2012-12-20 15:18:52 -06:00
the_fiddler
1e739bb4ff Added minimal SystemEvents definition to allow compilation on mobile devices. 2011-12-08 00:14:36 +00:00
the_fiddler
4fde3c4dab 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
809d369c52 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
9c6a4bb2df Fixed coordinate transform for CursorVisible = false on Windows. Fixes issue [#2416]: "Hided mouse cursor problem".
Removed unnecessary constructors from Win32Rectangle struct.
2011-08-25 13:38:08 +00:00
the_fiddler
da5371e92b Added PFD_SUPPORT_COMPOSITION on Vista and higher, to avoid inadvertently disabling Aero.
Allow non-accelerated formats when all accelerated ones fail. Fixes issue [#2224]: "Getting GraphicsModeException from WinGraphicsMode constructor".
2011-02-09 00:23:43 +00:00
the_fiddler
d19244feb5 Add DrawToWindow and SupportOpenGL flags to GetModesARB and check whether Wgl.Arb.ChoosePixelFormat() worked correctly (to avoid undefined results). 2011-01-18 22:34:06 +00:00
the_fiddler
26075f0243 Do not try to register device when device description is empty. 2010-12-03 12:29:01 +00:00
the_fiddler
1d33d1000e [Win32] Implemented Mouse.SetPosition via SetCursorPos. This was refreshingly simple, the function works exactly as expected! (unlike XWarpPointer on X11) 2010-11-23 22:10:49 +00:00
the_fiddler
23eaef0c70 Avoid loading Wgl entry points automatically. This is now explicitly done through WinGLContext. 2010-11-23 22:08:53 +00:00
the_fiddler
07cbb9dd8b * Input/Mouse.cs:
* Input/IMouseDriver2.cs:
* Platform/X11/X11Mouse.cs:
* Platform/X11/XI2Mouse.cs:
* Platform/X11/Functions.cs:
* Platform/Windows/WMInput.cs:
* Platform/X11/X11GLNative.cs:
* Platform/Windows/WinRawMouse.cs: Added ability to set the position
  of the mouse cursor.
[X11] Avoid grabbing the pointer, as this causes unexpected
  side-effects (XInput2 stops working, debugging becomes difficult).
  We now use XWarpPointer and try to discard the spurious MouseMove
  events it generates.
[X11] Make cursor visible when window loses focus, to make debugging
  easier. Restore previous state when it regains focus.
2010-11-23 17:17:13 +00:00
the_fiddler
6c0da79687 Refactored and simplified DisplayDevice detection (devices are now stored in the platform-specific drivers instead of the frontend).
Made XRR resolution changes more robust.
Resolution changes now refresh the DisplayDevices on Windows.
2010-11-21 20:16:18 +00:00
the_fiddler
d9eaf4562c Improved and simplified behavior of RelaxParameters. Removed unused code. 2010-11-11 19:32:22 +00:00
the_fiddler
e0736a69bc Added workaround for zoom-in/zoom-out keys on Microsoft Digital 3000 keyboard. These keys report 0 as a device id, but no such device exists. 2010-11-09 15:19:58 +00:00
the_fiddler
daf7c83dc8 Capture ButtonUp events after ButtonDown even if the mouse leaves the window. 2010-11-09 08:55:55 +00:00
the_fiddler
e8373def1b Use async input to poll the keyboard/mouse. 2010-11-08 22:19:44 +00:00
the_fiddler
2e0a6c8a96 Reverted to wait for messages. 2010-11-08 22:19:19 +00:00
the_fiddler
c2d6f0c091 Refactored input drivers in terms of WinInputBase to reduce code duplication. 2010-11-08 21:43:29 +00:00
the_fiddler
0533a6be23 Minor spelling fix.
Use POINT structure instead of System.Drawing.Point.
2010-11-08 21:41:44 +00:00
the_fiddler
e5928f2b8d WinRawInput requires Windows 5.1 (XP) or higher. 2010-11-08 21:40:43 +00:00
the_fiddler
13a07273ba Removed unimplement SetPixelFormatARB - no such function exists.
Added aggressive locking during context creation and delegate loading in order to avoid potential race conditions.
Now uses Wgl.Imports directly wherever possible in order to improve performance and avoid race conditions.
Slightly improved debugging messages.
2010-11-08 21:38:32 +00:00
the_fiddler
452d8924e6 Minor cosmetic fixes. Removed unused code. 2010-11-08 21:36:10 +00:00
the_fiddler
e1e1be49c4 Removed WinForms dependency and performed general code cleanup. 2010-11-08 19:48:01 +00:00
the_fiddler
6bb01d4cbb Added GraphicsModeComparer for GraphicsMode comparisons.
Added WinInputBase as a base abstraction for all win32 input class.
2010-11-08 19:45:58 +00:00
the_fiddler
fd3e1850b7 Retrieve all pixel formats at once and select the correct one through a custom selection predicate. Simplifies the code significantly and reduces the chance of race conditions. 2010-11-08 19:41:24 +00:00
the_fiddler
d08438785e Avoid reference to System.Windows.Forms.
Pass a concrete GraphicsMode to the context constructor in SelectPixelFormatARB to avoid NRE.
2010-11-08 16:01:50 +00:00
the_fiddler
206a6530a4 Removed duplicate success message. 2010-11-08 15:58:42 +00:00
the_fiddler
d65e0aad47 Release both shift keys when one is released. Otherwise, we end up with stuck keys. 2010-11-08 08:59:32 +00:00
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
the_fiddler
51e2d93e38 Added support for POV hats with WinMM.
Reversed vertical axes, so that down is -1 and up is +1.
2009-03-01 08:44:39 +00:00
the_fiddler
44e4971a38 Added JoystickAxis and JoystickButton enumerations, as well as their respective collections.
Implemented necessary Poll() functions.
2009-03-01 01:17:24 +00:00
the_fiddler
6118f4fdec Initial joystick support (not public yet). 2009-02-28 23:11:27 +00:00
the_fiddler
132c2ab856 Merged initial GL3 support from branches/gl3. 2009-02-28 19:56:08 +00:00
the_fiddler
cf20b474f6 Added support for wglCreateContextAttribsARB. 2009-02-28 19:51:58 +00:00
the_fiddler
e5ad57e13d Suppressed a large amount of warnings for unused methods / fields in the platform bindings.
Replaced tab stops with spaces.
2009-02-22 12:10:36 +00:00
the_fiddler
69b17fa43f 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
kanato
c2fd0e5eb2 Merged in macos branch for Mac OS X support. 2009-02-20 18:57:57 +00:00
the_fiddler
c6f5131491 Fixed SetWindowPos function (IntPtr instead of int parameter).
Add NcCalcSizeOptions enum.
2009-02-13 21:45:50 +00:00
the_fiddler
db690b144f Merged text branch and updated changelog. 2009-02-13 19:09:38 +00:00
the_fiddler
44b3a10794 Removed call to Console.WriteLine when changing WindowState. 2008-12-09 21:26:48 +00:00
the_fiddler
6edd78879d Fixed build warnings. 2008-12-09 10:06:25 +00:00
the_fiddler
62da31df48 Made ContextHandle a struct to reduce GC pressure (ContextHandles are created per frame).
Added xml documentation for the ContextHandle.
Made the casts between ContextHandles and IntPtrs explicit.
Updated all ContextHandle consumers to reflect the explicit cast.
2008-11-23 20:17:50 +00:00
the_fiddler
3f54e573e5 Removed unusued IGLControlHelper interface. 2008-11-23 09:39:52 +00:00
the_fiddler
dbfc38202b Library should not use Trace output. 2008-11-23 09:34:33 +00:00
the_fiddler
d018b4825d Final fix for mousewheel support on x64. 2008-11-09 23:42:54 +00:00
the_fiddler
9bbef90088 Use UIntPtr instead of IntPtr to avoid overflow exceptions in x64 mode. 2008-11-09 11:43:02 +00:00
the_fiddler
e6baa0a42f Possible fix for overflow exception on mouse wheel movement in x64 mode. 2008-11-08 21:44:36 +00:00
the_fiddler
bca0eef6d4 Implemented X11GdiPlusInternals.
Added missing license headers.
2008-11-03 23:55:53 +00:00
the_fiddler
44f0828425 Moved GdiPlus to OpenTK.Platform where it belongs.
Removed unused fields in WinGdiPlusInternals.cs.
2008-11-03 23:51:16 +00:00
the_fiddler
f218071fa7 Use different implementations for accessing GDI+ internals on .Net and Mono. 2008-11-03 23:34:54 +00:00
the_fiddler
98aec7ce1c Fix overflow exception on right shift key press/release when running on x64 mode. 2008-11-02 17:27:12 +00:00
the_fiddler
c084833d48 Removed unused variables and relevant warnings. 2008-09-19 20:57:35 +00:00
the_fiddler
2dbf21a64a Make WinWindowInfo public.
Fixed X11WindowInfo line endings.
2008-05-19 20:57:36 +00:00
the_fiddler
48807bb5e1 Initial support for external contexts. 2008-05-19 20:54:07 +00:00
the_fiddler
7164e4596b Added a work around for the "stuck cursor" issue, where the mouse cursor would stay at the resize state when entering the GameWindow. 2008-05-04 19:09:18 +00:00
the_fiddler
f65fd4b221 Fixed mouse delta handling. 2008-05-04 17:42:19 +00:00
the_fiddler
3d07e2597f Normalized line endings. 2008-05-03 16:34:39 +00:00
the_fiddler
6f1c9b6daf Minor stylistic change (word wrap at 120 characters). 2008-04-25 21:02:54 +00:00
the_fiddler
2d4d4b922e Completed implementation of WindowBorder and WindowState properties. 2008-04-21 20:18:39 +00:00
the_fiddler
8c0662030f Added GetWindowInfo function and WindowInfo structure. 2008-04-21 20:18:04 +00:00
the_fiddler
cad6f0d2da Added FlagsAttribute to WindowStyle enum. 2008-04-21 18:55:17 +00:00
the_fiddler
c5731cb986 Completed WindowBorder and WindowState implementation. 2008-04-21 18:36:16 +00:00
the_fiddler
d94643c6f2 Added WindowState and WindowBorder support on Windows. Removed GameWindow.Fullscreen property. Removed some chunks of unused code. 2008-04-20 17:54:16 +00:00
the_fiddler
3c4068e33b Fixed formatting on pixel format setting debug message.
Added error handling to DestroyContext().
2008-04-20 17:52:27 +00:00
the_fiddler
5b4db2b1a6 Added GetClientRect. Fixed GetWindowLong on 32bit platforms. 2008-04-20 17:45:06 +00:00
the_fiddler
a90a6c6e3d Added stub for WindowState. 2008-04-13 21:32:04 +00:00
the_fiddler
1be3b167c7 Fixed context sharing on windows. 2008-04-13 13:54:24 +00:00
the_fiddler
84f117b3d3 Removed obsolete GetDisplayModes() function. 2008-04-04 21:08:09 +00:00
the_fiddler
9c4d81c4f2 Fixed an arithmetic overflow exception in extended bit checking at WMInput.cs. 2008-04-04 20:05:38 +00:00
the_fiddler
7001076f5a Moved OpenTK.OpenAL to OpenTK.Audio.
Added SoundReader class.
Added OpenTK.Math.Functions.NextPowerOfTwo 
Fixed several AL functions, and added overloads to AL.BufferData.
Added OpenAL wave playback sample.
2008-04-04 19:46:08 +00:00
the_fiddler
14f544ff5e Added some missing SetLastError attributes. 2008-03-29 16:15:57 +00:00
the_fiddler
f23d7929be Can now distinguish between left and right control, shift, alt and enter keys. 2008-03-10 08:50:19 +00:00
the_fiddler
bb84178f20 Added detection of left and right shift/control/alt buttons. 2008-03-08 17:35:58 +00:00
the_fiddler
03825f1241 Initial commit. 2008-03-03 12:47:35 +00:00
the_fiddler
223c742648 Renamed ColorDepth to ColorFormat, to avoid class with System.Drawing.ColorDepth.
Update X11 stack to use System.Windows.Forms.XPlatUI for its Display, Screen and RootWindow.
Fixed mode setting for X11GLControl.
Fixed X11 shutdown (was generating X11 errors).
Added DeviceContext getter to WinWindowInfo.
Made IWindowInfo disposable.
Added documentation to many public methods.
Worked around a Mono 1.2.4 bug with Handle creation on Windows.Forms.Control.
Updated GL.BuildExtensionList to correctly parse GL_VERSION when in indirect rendering mode.
Fixed crash errors in X11GLContext.CreateContext and X11GraphicsMode.
Added a ref overload to Glx.ChooseVisual()
IGraphicsContext.MakeCurrent now takes an IWindowInfo parameter. This allows the user to change to window is context is bound to (untested).
Renamed XyzWindowInfo.Handle to XyzWindowInfo.WindowHandle.
2008-03-03 12:44:56 +00:00
the_fiddler
e477631ad7 Major update: fixed context construction on X11.
Fixed vsync on X11.
Updated GraphicsContext interface, for better extensibility. Some public functions were moved to IGraphicsContextInternal.
Renamed DisplayDevice.PrimaryDisplay to DisplayDevice.Default.
Updated and documented new GameWindow constructors.
Improved GameWindow.Exit, added GameWindow.ExitAsync() and improved error handling.
Improved GraphicsContext and NativeGLWindow APIs (construction in constructor).
Made ContextHandle public.
2008-03-01 13:15:31 +00:00
the_fiddler
65f2b432d8 Fixed a struct != null comparison. 2008-02-28 16:09:02 +00:00
the_fiddler
c89abaee72 Renamed GraphicsFormat to GraphicsMode. 2008-02-28 15:28:40 +00:00
the_fiddler
7d6d34c686 Renamed GraphicsFormat to GraphicsMode. 2008-02-28 15:26:13 +00:00
the_fiddler
42c6a6818c Removed obsolete WindowInfo.cs 2008-02-28 14:00:45 +00:00
the_fiddler
9abcb5d92e Updated to use new IWindowInfo interface.
Updated to use GraphicsFormat instead of DisplayMode.
Updated to use ColorDepth instead of ColorMode.
Improved GameWindow Exit handling, and handling of failed context creation.
Improved WinGLContext creation code, to allow for FSAA support in the future.
Fixed several shutdown bugs in WinGLContext and GraphicsContext.
Context creation no longer relies on IGLContextCreationHack.
X11GLContext is not working at the moment.
2008-02-28 13:57:07 +00:00
the_fiddler
64aa98f9c6 Initial commit. Can detect idle mode and can create a WinWindowInfo out of a Windows.Forms.Control. 2008-02-28 13:46:44 +00:00
the_fiddler
8d9b66ef18 Fixed PixelFormatDescriptorFlags.
Fixed SetWindowLongPtr on 32bit platforms.
Added DescribePixelFormat.
Added SetLastError to SetPixelFormat.
2008-02-28 13:45:38 +00:00
the_fiddler
009a4aa1b4 Initial commit. Takes the place of Windows.WindowInfo. 2008-02-28 13:43:19 +00:00
the_fiddler
c4e165bec9 Added SetLastError to a couple of Wgl functions. These are temporary, until the generator is updated. 2008-02-28 13:42:43 +00:00
the_fiddler
4fe6d37770 Completed move of OpenTK.OpenGL to OpenTK.Graphics.OpenGL. 2008-02-02 00:58:26 +00:00
the_fiddler
e5b5af7b11 Renamed KeyMap to WinKeyMap. 2008-02-01 23:13:50 +00:00
the_fiddler
3658987dc0 Added ChangeDisplaySettingsEnum.Fullscreen to resolution changes. At last, windows stopped resizing themselves! 2008-01-31 22:07:48 +00:00
the_fiddler
5b9991cba3 Moved and renamed OpenTK.GLContext to OpenTK.Graphics.GraphicsContext. 2008-01-31 14:39:54 +00:00
the_fiddler
1f9d04cd9d Moved and renamed OpenTK.GLContext to OpenTK.Graphics.GraphicsContext. 2008-01-31 14:22:37 +00:00
the_fiddler
1932e25689 Renamed IGLContext to IGraphicsContext. 2008-01-31 13:17:42 +00:00
the_fiddler
5c6a261030 Added setter to GLContext.CurrentContext and all implementations, so that the user can clear the context of any thread.
Updated GameWindow and its implementations to use GraphicsFormat instead of the obsolete DisplayMode.
Updated license.
Updated some docs.
Fixed CLSCopmliant warnings in XRamExtension.cs
2008-01-31 13:15:17 +00:00
the_fiddler
0af1e98a56 Fixed fullscreen mode size. 2008-01-27 15:59:43 +00:00
the_fiddler
e313460187 Renamed OpenTK.Platform.Windows.DisplayDevice to OpenTK.Platform.Windows.WindowsDisplayDevice. 2008-01-27 10:23:02 +00:00
the_fiddler
6f9deacc85 Added fadeout and fadein effect. 2008-01-26 14:02:58 +00:00
the_fiddler
58ae48833c Changed IDisplayDeviceDriver.RestoreResolution method to IDisplayDeviceDriver.TryRestoreResolution.
DisplayDevice now correctly reports original resolution.
2008-01-26 11:01:20 +00:00