Commit graph

173 commits

Author SHA1 Message Date
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 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
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 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 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 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 2b7ed38569 * X11GLNative.cs: Added more defensive checks for the existence of the window before issuing XDestroyWindow.
Do not allow multiple calls to XDestroyWindow once the shutdown sequence has been initialized. Fixes issue [#1190]: "GameWindow dispose on linux".
2009-10-19 19:46:37 +00:00
the_fiddler 162faad8e3 * X11GLNative.cs: Correctly set all necessary ClientMessage fields
for XSendEvent call in Close() method.
2009-10-19 19:03:17 +00:00
the_fiddler 0c9657c5e7 * X11GLNative.cs: Implemented Icon property for WMs that do not
respect _NET_WM_ICON (e.g. Gnome/Metacity/Compiz).
2009-10-19 10:42:28 +00:00
the_fiddler 594f877021 Removed obsolete OnCreate and OnDestroy methods/events. 2009-09-04 23:23:46 +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 d3fadd0be1 Suppressed documentation warnings and ensured public structures follow the class library design guidelines. 2009-08-11 21:11:39 +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 7df9a448d6 Merged gw-next2 branch to trunk. 2009-06-02 15:49:39 +00:00
the_fiddler c02b693062 Added initial support for GameWindow.PointToClient. 2009-05-07 19:48:22 +00:00
the_fiddler 3914aaa1e6 * X11GLNative.cs: Ensure that Width and Height properties return valid values in the OnLoad event. 2009-03-23 11:57:49 +00:00
the_fiddler 94b70b7bb7 * Platform/X11/X11GLNative.cs: Removed stale comments and unused code. 2009-03-20 23:15:16 +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 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
the_fiddler 6edd78879d Fixed build warnings. 2008-12-09 10:06:25 +00:00
the_fiddler 61d951c741 Fixed regression from conflict resolution. 2008-05-04 16:10:53 +00:00
the_fiddler 523c4de774 * X11GLNative.cs: Fix behavior of WindowState when WindowBorder is
Fixed.
2008-05-04 16:09:09 +00:00
the_fiddler 6ee92bb453 Fixed a WindowState reference that confused the compiler. 2008-05-03 16:42:25 +00:00
the_fiddler a5455cc4e7 * Platform/X11/X11GraphicsMode.cs, Platform/X11/X11GLNative.cs,
Platform/X11/Structs.cs, Platform/X11/Functions.cs,
  Platform/X11/API.cs: Working on WindowBorder and WindowState
  support.
2008-05-03 16:33:00 +00:00
the_fiddler c086ee3a99 * Platform/X11/X11GLNative.cs: Completed support for NET WM WindowState
modes.
2008-04-25 22:09:13 +00:00
the_fiddler 7cc4eb9615 * Platform/X11/X11GLNative.cs: Fullscreen toggling support through NET
WM.
2008-04-25 21:49:24 +00:00
the_fiddler 6a7c304850 Added support for minimized WindowState. 2008-04-25 21:32:01 +00:00
the_fiddler bebd056751 Added initial support for maximized window states. 2008-04-25 21:04:46 +00:00
the_fiddler 3590ba5d29 Initial work on WindowState support. 2008-04-25 08:42:53 +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 a90a6c6e3d Added stub for WindowState. 2008-04-13 21:32:04 +00:00
the_fiddler 76825a36c7 Updates to GameWindow shutdown and X11 locking behavior. 2008-03-26 19:43:57 +00:00
the_fiddler 26f1ac30d0 Added support for higher mouse buttons under X11.
Use XCheckWindowEvent instead of XNextEvent.
2008-03-24 18:18:26 +00:00
the_fiddler 034d524a87 Use one display connection for all X11 communication. Seems to fix (not 100%) the crash problems encountered. 2008-03-24 13:12:02 +00:00
the_fiddler ac0209a575 Open a different X11 display connection - reusing the one from Windows.Forms results in messages getting routed to the wrong windows. 2008-03-10 11:37:41 +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 c89abaee72 Renamed GraphicsFormat to GraphicsMode. 2008-02-28 15:28:40 +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 4fe6d37770 Completed move of OpenTK.OpenGL to OpenTK.Graphics.OpenGL. 2008-02-02 00:58:26 +00:00
the_fiddler effc907171 Moved keyboard and mouse code inside X11Input.cs 2008-02-01 23:28:23 +00:00
the_fiddler 5b9991cba3 Moved and renamed OpenTK.GLContext to OpenTK.Graphics.GraphicsContext. 2008-01-31 14:39:54 +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 fef3329a54 Even more work on hiding gnome panels. 2008-01-27 18:13:26 +00:00
the_fiddler 24c78747af Added XChangeWindowAttributes / trying to get gnome panels to hide. 2008-01-27 16:34:45 +00:00
the_fiddler 02cf500a2a Try to debug why gnome panels do not get hidden. 2008-01-27 16:01:38 +00:00
the_fiddler 337d260aad Try to debug why gnome panels do not get hidden. 2008-01-27 15:59:57 +00:00
the_fiddler cf41a23fb1 Fixed error in X11 display. 2008-01-27 15:53:04 +00:00
the_fiddler fa68e80d9f Trying to hide gnome panels on fullscreen modes. 2008-01-27 15:50:44 +00:00
the_fiddler 5776585303 Trying to get fullscreen on X11 to hide gnome panels. 2008-01-27 14:10:18 +00:00
the_fiddler 1b5156e216 Try to cover gnome panels. 2008-01-27 11:30:57 +00:00
the_fiddler e6e27ea3ea Remove/activate decorations through gnome. 2008-01-27 11:28:37 +00:00
the_fiddler ec2df7ffc6 Added call to XSetTransientForHint after disabling/activating window decorations. 2008-01-27 11:12:21 +00:00
the_fiddler 42feedb851 Re-enable decorations on windowed mode. 2008-01-27 10:29:28 +00:00
the_fiddler bae8d5ba49 Added fullscreen->window change, and window resizing on fullscren change. 2008-01-27 10:23:46 +00:00
the_fiddler 1592abdbdc Working on fullscreen support. 2008-01-26 16:24:57 +00:00
the_fiddler a8c1206c0f Added debug information. 2008-01-26 15:47:00 +00:00
the_fiddler 0136441fb3 Added initial support for fullscreen mode change. 2008-01-26 15:44:08 +00:00
the_fiddler 84d2748c5e Use new properties from the API class. 2008-01-25 13:12:53 +00:00
the_fiddler d1f2d7b33e Updated everything to use plain (int width, int height parameters) instead of DisplayMode.Width/.Height. 2008-01-23 14:17:09 +00:00
the_fiddler 878af03601 Documentation updates. Getting rid of all remaining warnings in debug build. 2008-01-20 19:29:42 +00:00
the_fiddler cf5640d2a9 Re-added mouse input events. 2008-01-15 13:12:31 +00:00
the_fiddler 8e991b93e9 Fixed a possible cast problem. 2008-01-15 12:48:03 +00:00
the_fiddler e404e9791e X11/GameWindow context creation should be fixed. 2008-01-15 11:14:16 +00:00
the_fiddler 64cf1ee3c8 Possible fix for cast exception in CreateWindow. 2008-01-15 11:10:40 +00:00
the_fiddler 59eb05c532 Debugging an issue with X11GLNative and it's visual creation. 2008-01-15 11:08:03 +00:00
the_fiddler a2673bf5ff Changed the INativeGLWindow.CreateWindow interface to return an IGLContext instead of a GLContext. 2008-01-15 10:48:48 +00:00
the_fiddler c08d2785ce Added some debugging information to context creation. 2008-01-15 10:36:47 +00:00
the_fiddler 4a5b8e81d8 Refactored context creation to be done inside the *GLNative classes, instead of the GameWindow class. Should refactor in the next version. 2008-01-15 10:31:03 +00:00
the_fiddler 2e1837b8f0 CreateWindow now takes a GLContext. 2008-01-11 20:23:17 +00:00
the_fiddler b257b57494 Fixed NRE on mode.ToString(). 2008-01-06 11:02:38 +00:00
the_fiddler ababd601cd Added PointToClient and PointToScreen placeholders. 2008-01-06 02:29:14 +00:00
the_fiddler 938b2b8519 Hooks for garbage-collectable OpenGL resources.
the [...]GLNative classes now use GLContext instead of the platform-specific [...]GLContext implementations.
Updated the IGLContext interface with functions to query the current context.
2007-12-09 18:15:51 +00:00
the_fiddler 42e36a31c6 Removed a couple of unused lines of code. 2007-11-11 20:22:51 +00:00
the_fiddler 6dc133d9eb Fixed shutdown sequence on Linux. GameWindow.Exit() and clicking the 'close' button now produce the same result. 2007-11-11 20:10:08 +00:00
the_fiddler acc916a734 Reverted to 0.3.12 way of handling input events. Added Close button press handling (X no longer crashes). 2007-11-10 18:25:16 +00:00
the_fiddler 3727da3a91 Removed InputDriver. 2007-11-04 15:38:39 +00:00
the_fiddler d6a001f878 Added Title property. Foundation of atoms. 2007-09-26 15:40:22 +00:00
the_fiddler ff871cff50 Updated Keyboard and Mouse handling. Mouse now uses XQueryPointer. Keyboard relies on X11 events. Still missing mouse delta support. 2007-09-26 11:58:55 +00:00
the_fiddler 42c1affe34 Added X11 Mouse support. X11 Keyboard support is faster now.
Made GameWindow.Dispose() virtual.
2007-09-25 16:45:12 +00:00
the_fiddler 2ca6e6c617 Added OpenTK.Platform.WindowInfo and OpenTK.Platform.IMutableWindowInfo. Split IWindowInfo implementation to IWindowInfo and IMutableWindowInfo. Added several methods.
X11 and Windows GLControl and GLNative implementation now use IGLContext interfaces instead of direct X11GLContext and WinGLContext. Decouples the two (good!).
Updated all Native, Control, Context classes to use the new interfaces.
2007-09-09 15:10:21 +00:00
the_fiddler c1fa34087c Decoupled GLContext from GLControl/GameWindow even more, by using IWindowInfo to pass data between them.
Implemented the IWindowInfo.GetInfoFrom methods.
Removed said methods from OpenTK/Platform/Utilities.
2007-09-09 11:52:09 +00:00
the_fiddler 105902336e Glu is now initialized under X11GLNative 2007-09-02 23:18:50 +00:00
the_fiddler 437d8fe627 Updated T10_GLSL_Cube to remove NRE exception on Mono 1.2.x.
Added debug info to the GL.LoadAll function.
Added W03_Extensions.cs example.
2007-09-02 13:34:44 +00:00
the_fiddler df70c0c531 Corrected a bug where GL.LoadAll wasn't called on time in X11GLNative.
Moved MakeCurrent call to X11GLNative and WinGLNative, instead of GameWindow.
2007-08-21 12:21:01 +00:00
the_fiddler 7cf8aa3d95 Added AdjustWindowRect to Windows.API. The client are in WinGLNative is now correctly specified. 2007-08-21 12:04:01 +00:00
the_fiddler 9e536a72e0 Improved X11GLControl compatibility - now sets a safe DisplayMode.
Added utility that control's whether xplatui should throw exceptions on X11 errors.
2007-08-21 10:48:32 +00:00
the_fiddler 0133eb1222 Corrected critical bug in X11/API.cs: VisualInfo.visualid was int where it should have been IntPtr, causing incorrect visuals to be created on 64bit platforms.
Removed the OnCreate/OnDestroy methods from INativeGLWindow.
Added convenience overloads to OpenTK.OpenGL.GL: Color3 and Color4 can now take a System.Drawing.Color directly.
2007-08-21 09:01:24 +00:00
the_fiddler 3b5d61a337 Improved exception handling in GameWindow
X11GLContext now requests formats with alpha channels. Removed debug output from X11 SwapBuffers.
Corrected X11GLNative window creation (context is now made current). Beautified X11GLNative.cs
2007-08-20 13:47:14 +00:00
the_fiddler 2254388903 Merged with bind branch. 2007-08-20 12:25:48 +00:00