Commit graph

739 commits

Author SHA1 Message Date
zastrowm 5f336dd9f9 Change WinRawMouse.ProcessMouseEvents to call code directly instead of using lambdas
Change WinRawMouse.ProcessMouseEvents to call code directly instead of using lambdas.  The lambdas caused memory allocations and were unneeded
2013-04-26 21:06:08 -05:00
Dean Ellis 9a39949249 Merge pull request #1 from elisee/fix-client-rectangle-setter
Fix ClientRectangle setter on Windows (WinGL) & Linux (X11)
2013-03-22 16:29:36 -05:00
Tom Edwards 6c35e8ef24 Merge remote-tracking branch 'origin/ScanCodeKeyboardBranch' 2013-02-17 14:58:16 +00:00
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
Andy Korth 2a0ad3ef6f A few minor comments 2013-01-17 14:45:57 -06:00
Robert Rouhani bf1401e115 Fixed the issues caused by merging in our changes as patches from the old repo. 2013-01-16 18:08:03 -08:00
Robert Rouhani 819c02c445 More hacking for gamepads 2013-01-16 17:59:52 -08: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 c98d9e4503 Supress printing of some keyboard non-errors. 2012-12-21 18:43:19 -06:00
Andy Korth 39c3f3f543 Replication project for Mac OS mouse input issue, and fix. OpenTK issues 3242 and 2800 2012-12-21 17:11:39 -06:00
Andy Korth 224a296220 Address mouse on windows 8 for OpenTK issue 3198 2012-12-20 15:18:52 -06:00
Andy Korth bef7ecd1ed Fix incorrect Mac OS key map, OpenTK issue 3220 2012-12-20 13:45:00 -06:00
the_fiddler e838aa7953 Use Debug.WriteLine instead of Debug.Print on a single-parameter string. Fixes compilation on mobile devices. 2011-12-08 00:17:08 +00:00
the_fiddler 1e739bb4ff Added minimal SystemEvents definition to allow compilation on mobile devices. 2011-12-08 00:14:36 +00:00
the_fiddler 41e0c65dcb Avoid using the global namespace in the MINIMAL configuration, as it confuses the Mono compiler. 2011-12-08 00:10:03 +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 5d61e042a0 GraphicsMode was not set when initializing a DummyGLContext with an explicit handle. Corrected now. 2011-12-06 21:54:20 +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 544de30874 Fixed eglGetProcAddress entry point (was eglCopyBuffer). 2011-05-07 18:52:47 +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 774374efc0 * Egl.cs:
* EglContext.cs:
* EglGraphicsMode.cs: Added a parameter to indicate which ES renderer
  version we wish to use. Fixes issue [#2247]: "CreateEGLGraphicsMode
  should select the correct renderer".
2011-01-18 00:29:38 +00:00
the_fiddler d22c7312d9 * EglWindowInfo.cs: Corrected error checking for
CreateWindowSurface. Fixes issue [#2248]: "EGL CreateWindowSurface
  function is incorrect".
2011-01-17 23:55:48 +00:00
the_fiddler a964d3a9de * EglGraphicsMode.cs:
Removed unused Egl.GetConfigs call.
2011-01-14 10:28:37 +00:00
the_fiddler b987b10c70 * EglGraphicsMode.cs:
Added missing RENDERABLE_TYPE bits to EGL mode selection. This is
required by the OpenGL ES spec.
2011-01-14 01:57:59 +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 1bfd143b96 * Platform/MacOS/HIDInput.cs, Platform/MacOS/MacOSFactory.cs:
Added support for raw keyboard input.
2010-11-30 23:23:42 +00:00
the_fiddler 5b3c08f463 * Platform/MacOS/CarbonGLNative.cs:
Fixed handling of key repeat.
Fixed crash when unknown key is pressed.
2010-11-30 23:22:56 +00:00
the_fiddler 455acac6f8 * MacOS/CarbonGLNative.cs:
Removed unnecessary debug information.
2010-11-26 13:32:52 +00:00
the_fiddler df4339433a * EventInfo.cs, AglContext.cs, MacOSKeyMap.cs, Application.cs,
CarbonInput.cs, CarbonGLNative.cs, MacOSException.cs,
CarbonBindings/Agl.cs, CarbonBindings/CarbonAPI.cs,
CarbonBindings/MacOSKeys.cs, CarbonBindings/SpeechChannel.cs,
CarbonBindings/CoreFoundation.cs,
CarbonBindings/QuartzDisplayServicesAPI.cs:
Normalized licensing information.
2010-11-26 11:41:45 +00:00
the_fiddler 75aa2a1dc1 * Platform/MacOS/CarbonGLNative.cs:
Implemented CursorVisible property. Aligned mouse behavior to win32 &
x11. General code cleanup.
2010-11-26 11:01:51 +00:00
the_fiddler ed08f068c7 * Platform/MacOS/CarbonBindings/QuartzDisplayServicesAPI.cs:
Added support for mouse control.
2010-11-26 11:00:57 +00:00
the_fiddler 42663d1a70 * Platform/MacOS/CarbonBindings/CarbonAPI.cs:
Added support for mouse delta events.
2010-11-26 11:00:27 +00:00
the_fiddler 859216b94b Disabled event suppression after cursor movements. 2010-11-26 10:59:08 +00:00
the_fiddler 2c0b024158 Implemented SetPosition in terms of CGWarpMouseCursorPosition.
Added constructors to HIPoint.
2010-11-25 00:30:16 +00:00
the_fiddler 1fc495a06f Implemented new multi-mouse API on Mac
OS X.
2010-11-24 23:49:40 +00:00
the_fiddler efc864de76 Use main run loop for input callbacks. This way we don't have to run the loop ourselves.
Unregister callbacks for removed devices.
2010-11-24 13:13:14 +00:00
the_fiddler 72a38b36cb Device discovery now works correctly. Added support for input value callbacks. 2010-11-24 12:50:08 +00:00
the_fiddler 1626b3a835 * MacOSGraphicsMode.cs:
* CarbonBindings/Agl.cs: Added AGL-based GraphicsMode detection on Mac
  OS X. Fixes issue [#1679]: "GraphicsMode returns hardcoded mode on
  Mac OS X".
2010-11-24 00:55:19 +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 45a623a873 * X11Mouse.cs: Updated comments to clarify the capabilities of the driver. 2010-11-23 19:26:35 +00:00
the_fiddler 32a564c990 * XI2Mouse.cs: Removed unused code. 2010-11-23 19:21:28 +00:00
the_fiddler 88cbcc3a04 * X11Mouse.cs: Added SetPosition() implementation.
Added detection of pointer warping and used it to fake relative
  motion.
2010-11-23 19:21:17 +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 4fd279534b * OpenTK.csproj:
* Platform/MacOS/HIDInput.cs:
* Platform/MacOS/MacOSFactory.cs:
* Platform/MacOS/CarbonBindings/CoreFoundation.cs: Initial work on HID
  input manager.
2010-11-22 15:57:26 +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 529a376d77 * X11GLNative.cs: Added missing KeyDown/KeyUp events. 2010-11-09 11:52:14 +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 3726c9b94f Removed obsolete System.Windows.Forms reference. 2010-11-08 21:47:24 +00:00
the_fiddler 9706c9040b Added new KeyDown and KeyUp events. 2010-11-08 21:45:15 +00:00
the_fiddler a3177540b7 Removed dependency on System.Windows.Forms. 2010-11-08 21:44:56 +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 666355103b * XI2Mouse.cs:
* X11Factory.cs: Removed window hooking, as it complicates code
  unnecessarily.
2010-11-04 18:01:07 +00:00
the_fiddler b646cfa06c * X11KeyMap.cs: Added AltGr keycode.
* X11Mouse.cs: Use XQueryPointer instead of trying to hook events.

* X11Keyboard.cs: Improved handling of key modifiers.

* X11Factory.cs: Use new X11Mouse API.

* Functions.cs: Added XButtonGrab/XButtonUngrab.

* API.cs: Added missing XF86 keysyms.
2010-11-04 17:57:09 +00:00
the_fiddler 7e344e2ac2 * EventInfo.cs:
* AglContext.cs:
* MacOSKeyMap.cs:
* CarbonInput.cs:
* Application.cs:
* MacOSFactory.cs:
* CarbonGLNative.cs:
* CarbonWindowInfo.cs:
* MacOSGraphicsMode.cs:
* QuartzDisplayDeviceDriver.cs: Normalized code formatting.
2010-11-02 19:49:24 +00:00
the_fiddler 915f8e559f * X11Keyboard.cs: Use XQueryKeymap to discover key state.
* X11Factory.cs: Use new X11Keyboard interface.
Temporarily disabled XI2Mouse for testing.

* Functions.cs: Fixed type declaration for Time.
Added support for XIGrabDevice, XIUngrabDevice, XGrabKey, XUngrabKey,
  XAllowEvents and XKeycodeToKeysym/XKeysymToKeycode.

* API.cs: Enumerate modes for XAllowEvents.
2010-11-01 08:01:44 +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 b7a0a7c800 Removed unused field. 2010-10-28 09:01:54 +00:00
the_fiddler ec01b1caae Don't shadow class field. 2010-10-28 09:01:43 +00:00
the_fiddler 5ff74aa685 Suppressed unused field warnings. The fields are necessary for interop, even if not explicitly accessed. 2010-10-28 09:01:25 +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 bb01babfbd * XI2Mouse.cs:
* X11Factory.cs: Detect whether XInput2 is not supported without
  throwing an exception.
2010-10-22 07:41:56 +00:00
the_fiddler d49b315ced * Input/Mouse.cs:
* Platform/X11/X11Mouse.cs:
* Platform/X11/XI2Mouse.cs: Added internal list of mouse devices in
  preparation for multi-mouse support.
2010-10-21 14:53:10 +00:00
the_fiddler 671457b60a * OpenTK.csproj:
* Input/MouseState.cs:
* Platform/X11/Structs.cs:
* Platform/X11/XI2Mouse.cs:
* Platform/X11/Functions.cs:
* Platform/X11/X11Factory.cs: Added XInput2 driver for mice.
  Multi-mouse support pending.

* Platform/X11/X11Mouse.cs: Log the driver type for debugging
  purposes.
2010-10-21 12:32:00 +00:00
the_fiddler e638652d01 * Platform/X11/X11Keyboard.cs: Added index bounds check for
GetState.
2010-10-21 07:56:48 +00:00
the_fiddler 7947cad6f8 * OpenTK.csproj:
* Input/MouseState.cs:
* Input/ButtonState.cs:
* Platform/X11/X11Mouse.cs:
* Platform/X11/X11Factory.cs: Added initial implementation of
  OpenTK.Input.Mouse for X11.
2010-10-21 07:56:37 +00:00
the_fiddler 1529f811ac * X11Keyboard.cs: Do not allocate an X11WindowInfo unnecessarily. 2010-10-20 15:16:55 +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 7c0dbf7dcf * Source/OpenTK/Platform/X11/X11GLNative.cs: Confine pointer to
window when it becomes invisible.
2010-10-20 09:50:49 +00:00
the_fiddler 3b72054480 * Source/OpenTK/Platform/X11/X11GLNative.cs: Refactored empty cursor
creation into its own function. Create one empty cursor for the
  lifetime of the window.
2010-10-20 09:19:34 +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 a18825a062 * Source/OpenTK/Platform/MacOS/CarbonGLNative.cs: Removed unused
code.
2010-10-18 16:14:50 +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 8f9cd3decf Report Xinerama as not supported when it fails to detect any devices. Fixes issue on Nvidia drivers when Twinview is enabled. 2010-10-09 19:11:45 +00:00
the_fiddler ddb51b25f7 Added XF86VM fallback when XRandR is missing (many thanks to jdomnitz!) 2010-10-09 19:10:39 +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
kanato ea5b4f9f06 * Platform/MacOS/CarbonGLNative.cs: Fix width/height properties on Mac OS X. 2010-01-11 22:08:00 +00:00
the_fiddler f12cbf1cd5 Synced trunk with 1.0 branch. 2009-11-16 18:45:41 +00:00
the_fiddler 089b72c9c8 Protect all Xlib calls with XLockDisplay/XUnlockDisplay. Fixes issue [#1354]: "Application always run in windowed mode when using shared contexts". 2009-11-09 19:05:41 +00:00
kanato 62b65af462 MacOS: Hack for AGL to have access to the display device specified when a NativeWindow is created. 2009-11-09 07:50:21 +00:00
kanato 56412367c4 MacOS: Detect display boundaries so created windows are placed in the right spot. 2009-11-09 07:39:38 +00:00
kanato c605a05ffb MacOS: Fix event from user clicking close box to properly report that window doesn't exist anymore. 2009-11-09 07:18:54 +00:00
the_fiddler e35f9d5374 Disabled OpenTK.Point, Size and Rectangle structures that were meant to replace their System.Drawing implementations until the correct course of action can be determined. This change is too disruptive to existing applications, especially if they are also using Windows.Forms (see discussion here: http://www.opentk.com/node/1348). 2009-11-08 23:02:53 +00:00
the_fiddler 0af0916ce0 Don't display window by default, unless "Visible = true" is called. Allows the creation of invisible windows for secondary GraphicsContexts. 2009-11-08 22:46:49 +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 2e418e5b6b Update the context when the native window is resized. 2009-11-06 21:56:35 +00:00
the_fiddler 70eba0eb20 MacOS can have an X server installed. Modified the code so that it prefers the native Carbon/Quartz platform driver over X in this case. 2009-11-06 17:58:35 +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 39b4e329fd * X11GLNative.cs: Convert from ASCII to the default encoding before generating KeyPress events (allows support for simple scripts that do not use composition.) 2009-11-05 12:12:29 +00:00
the_fiddler 3e1ce4dfa5 * X11GLNative.cs: Implemented KeyPress event (no support for input
methods yet).

* Functions.cs: Added XLookupString and XRefreshKeyboardMapping
  methods for simple ANSI text input.
2009-11-05 11:49:24 +00:00
the_fiddler ada915fed0 Added missing TitleChanged event. 2009-11-04 20:49:38 +00:00
the_fiddler 3fd2b4b30b Removed unused code. 2009-11-04 20:48:35 +00:00
the_fiddler b36e6c64d7 Refactored timer installation/removal into their own methods. 2009-11-04 18:35:32 +00:00
the_fiddler 9f4eca541f Support external EGL contexts. 2009-11-04 17:00:52 +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 3ca21ed1b6 Initialize threads before calling any other X methods. 2009-11-04 10:04:16 +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 bd3334dd2b Added SyncRoot object to BindingsBase that can be used to protect shared state in the various bindings. 2009-11-03 23:26:57 +00:00
the_fiddler 74bae3e196 Use more aggressive xlib locking following the advice of the multithreaded X manpages (needs work). 2009-11-02 22:37:13 +00:00
the_fiddler 0bfb7897b0 Do not allow MakeCurrent() to change the display connection of the context. This would result in an X error and the change allows us to simplify shutdown/cleanup logic. 2009-11-02 20:50:16 +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