Commit graph

282 commits

Author SHA1 Message Date
the_fiddler 37c40f16eb 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 e10d37418f 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 1d3c358512 Renamed GraphicsFormat to GraphicsMode. 2008-02-28 15:28:40 +00:00
the_fiddler ee1431279f Renamed GraphicsFormat to GraphicsMode. 2008-02-28 15:26:13 +00:00
the_fiddler bb88b25239 Initial commit. 2008-02-28 14:02:17 +00:00
the_fiddler 83afd98314 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 b373674564 API.cs: Disabled cleanup code on AppDomain.ProcessExit, as it would cause X errors.
Renamed libXrandr to libXrandr.so.2 for DllImports.
2008-02-23 21:48:32 +00:00
the_fiddler 3ee626a08f Fixed a few warnings.
Added [assembly: CLSCompliant(true)] attribute to GameWindow.cs
2008-02-02 13:39:23 +00:00
the_fiddler a9e2ce4a00 Completed move of OpenTK.OpenGL to OpenTK.Graphics.OpenGL. 2008-02-02 00:58:26 +00:00
the_fiddler 17bb298a33 2008-02-01 23:29:27 +00:00
the_fiddler 3718b6625d Moved keyboard and mouse code inside X11Input.cs 2008-02-01 23:28:23 +00:00
the_fiddler d87e79268f Moved and renamed OpenTK.GLContext to OpenTK.Graphics.GraphicsContext. 2008-01-31 14:39:54 +00:00
the_fiddler c7045ab92f Moved and renamed OpenTK.GLContext to OpenTK.Graphics.GraphicsContext. 2008-01-31 14:22:37 +00:00
the_fiddler 019cf966e3 Renamed IGLContext to IGraphicsContext. 2008-01-31 13:17:42 +00:00
the_fiddler 56cbbb8cbb 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 2c96123ff4 Even more work on hiding gnome panels. 2008-01-27 18:13:26 +00:00
the_fiddler d5e3a3d8ed Added XChangeWindowAttributes / trying to get gnome panels to hide. 2008-01-27 16:34:45 +00:00
the_fiddler 109166d928 Try to debug why gnome panels do not get hidden. 2008-01-27 16:01:38 +00:00
the_fiddler 9275ab63fc Try to debug why gnome panels do not get hidden. 2008-01-27 15:59:57 +00:00
the_fiddler a785d45b9c Fixed error in X11 display. 2008-01-27 15:53:04 +00:00
the_fiddler 7763c403ff Trying to hide gnome panels on fullscreen modes. 2008-01-27 15:50:44 +00:00
the_fiddler 7e61214d78 Restore resolution available on OpenTK startup, not on X11 startup. 2008-01-27 14:23:13 +00:00
the_fiddler a7bb91c023 Trying to get fullscreen on X11 to hide gnome panels. 2008-01-27 14:10:18 +00:00
the_fiddler 0dc60c6a44 Try to cover gnome panels. 2008-01-27 11:30:57 +00:00
the_fiddler a60ffb6c61 Remove/activate decorations through gnome. 2008-01-27 11:28:37 +00:00
the_fiddler 1443dec66b Added call to XSetTransientForHint after disabling/activating window decorations. 2008-01-27 11:12:21 +00:00
the_fiddler ab1bac702a Re-enable decorations on windowed mode. 2008-01-27 10:29:28 +00:00
the_fiddler 50bc64d55e Added fullscreen->window change, and window resizing on fullscren change. 2008-01-27 10:23:46 +00:00
the_fiddler d2cde0ddf0 Working on fullscreen support. 2008-01-26 16:24:57 +00:00
the_fiddler 3b9dbd1209 Added debug information. 2008-01-26 15:47:00 +00:00
the_fiddler b48e3bec8c Added initial support for fullscreen mode change. 2008-01-26 15:44:08 +00:00
the_fiddler 7f1309a796 Changed IDisplayDeviceDriver.RestoreResolution method to IDisplayDeviceDriver.TryRestoreResolution.
DisplayDevice now correctly reports original resolution.
2008-01-26 11:01:20 +00:00
the_fiddler 989f22dc75 Fixed another NRE in TryChangeResolution. 2008-01-26 10:45:13 +00:00
the_fiddler 285e2c694d Small hack to test for resolution restoration. 2008-01-26 10:43:00 +00:00
the_fiddler 0bbad4e8b9 Fixed a bug where wrong resolutions were saved in the DisplayResolution<->resolution_index mapping. 2008-01-26 10:33:42 +00:00
the_fiddler 8e3ccb8082 Now saves DisplayDevice<->X11 screen, DisplayResolution<->resolution_index mappings. Added support for resolution changes. 2008-01-26 10:29:13 +00:00
the_fiddler 36e4909a11 XRRTimes parameter should be out, not ref. 2008-01-26 10:28:19 +00:00
the_fiddler 6fdf20e30a Added discovery of default color depth. 2008-01-25 16:11:46 +00:00
the_fiddler e4186aac66 Added discovery of depths. 2008-01-25 15:31:38 +00:00
the_fiddler 7273a3f28b Added XListDepths and made "libX11" string a constant. 2008-01-25 15:31:26 +00:00
the_fiddler 00e0b6ce52 Implemented default refresh rate discovery. 2008-01-25 15:04:10 +00:00
the_fiddler 6977937b3b Added code to obtain refresh rates. 2008-01-25 14:32:51 +00:00
the_fiddler 14376644f9 Improved XRRScreenSize. Added XRRRates wrapper. 2008-01-25 14:32:42 +00:00
the_fiddler ed45d3590d Now adds all available resolutions, not just the default one. 2008-01-25 14:01:07 +00:00
the_fiddler f77e45a829 Add temporary bits per pixel value (24) for testing purposes. 2008-01-25 13:58:16 +00:00
the_fiddler afb44ac3fe Screen and resolution enumeration should now work. 2008-01-25 13:56:52 +00:00
the_fiddler daba18ac5d Do not free XRRScreenSize pointer in XRRSizes. 2008-01-25 13:50:50 +00:00
the_fiddler 0a61071ab5 Trying to debug deadlock on screen resolution enumeration. 2008-01-25 13:45:32 +00:00
the_fiddler 72569e734f Added debug information to XOpenDisplay etc calls. 2008-01-25 13:42:51 +00:00
the_fiddler f56450476d Can't use Marshal.PtrToStructure(IntPtr, object) with boxed value types. Reverting to object Marshal.PtrToStructure(IntPtr, Type). 2008-01-25 13:38:39 +00:00
the_fiddler 49d3b00bf1 *Really* fixed libxrandr.so name. 2008-01-25 13:21:20 +00:00
the_fiddler c8a80916d2 Fixed libxrandr.so name. 2008-01-25 13:17:04 +00:00
the_fiddler 1578d18666 Added debug code to dump the number of screens. 2008-01-25 13:13:05 +00:00
the_fiddler ddd812cff4 Use new properties from the API class. 2008-01-25 13:12:53 +00:00
the_fiddler a3ba77f35d Added several properties to get the default screen, default display, screen count and default root window. Updated XRRSizes to abstract away the memory marshaling. 2008-01-25 13:12:33 +00:00
the_fiddler 605f04bf3d Added a bogus default device for testing. 2008-01-25 10:21:00 +00:00
the_fiddler a1656c6830 Added return value to X11XrandrDisplayDevice.TryChangeResolution 2008-01-25 10:03:13 +00:00
the_fiddler f35e6e1e07 Added X11XrandrDisplayDevice.cs implementation. 2008-01-25 10:02:05 +00:00
the_fiddler d24cc61a23 Completed Xrandr functions and structs. 2008-01-24 22:39:06 +00:00
the_fiddler ca36fcedb1 Disabled Status struct. 2008-01-24 22:38:50 +00:00
the_fiddler 112732353d Started adding Xrandr functions. 2008-01-24 21:21:17 +00:00
the_fiddler 5462307a97 Public X11 classes made internal. 2008-01-24 21:18:23 +00:00
the_fiddler 1a100aaff3 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 53e9ad11d7 Added LoadDelegate method. 2008-01-23 00:26:58 +00:00
the_fiddler 8b3f5afa4c Added loading of Glx extensions. Added vsync support. 2008-01-23 00:18:52 +00:00
the_fiddler e5d9fa8e53 Added Glx.SupportsExtension function. 2008-01-23 00:18:18 +00:00
the_fiddler ca37cfc643 Renamed Glx.Sgi.SwapIntervalSGI to Glx.Sgi.SwapInterval 2008-01-23 00:18:05 +00:00
the_fiddler 9551a569c2 Added glXSwapIntervalSGI method. 2008-01-23 00:01:03 +00:00
the_fiddler 4fa393a03f Updated a comment. 2008-01-20 22:04:30 +00:00
the_fiddler 40f32f4867 Documentation updates. Getting rid of all remaining warnings in debug build. 2008-01-20 19:29:42 +00:00
the_fiddler fd04dbf95f Small cosmetic fix. 2008-01-15 23:23:32 +00:00
the_fiddler 21322323ba Re-added mouse input events. 2008-01-15 13:12:31 +00:00
the_fiddler 262de30201 Trying async mouse input. 2008-01-15 13:04:35 +00:00
the_fiddler 8c3011f405 Fixed a possible cast problem. 2008-01-15 12:48:03 +00:00
the_fiddler 9c214032b9 Added some IGLContextInternal explicit implementations 2008-01-15 12:47:51 +00:00
the_fiddler 9bfa325620 Added GetCurrentContext() 2008-01-15 12:46:47 +00:00
the_fiddler 5c16b522a3 Possible InvalidCastException fix. 2008-01-15 12:32:38 +00:00
the_fiddler 22d6e1a7a4 X11/GameWindow context creation should be fixed. 2008-01-15 11:14:16 +00:00
the_fiddler c0ea86437c Possible fix for cast exception in CreateWindow. 2008-01-15 11:10:40 +00:00
the_fiddler 68370f6d23 Debugging an issue with X11GLNative and it's visual creation. 2008-01-15 11:08:03 +00:00
the_fiddler 8b14881538 Fixed a NRE. 2008-01-15 11:02:23 +00:00
the_fiddler 15956016b4 Possible fix for X11GLContext crash. 2008-01-15 10:59:36 +00:00
the_fiddler 50f6bd2807 Changed the INativeGLWindow.CreateWindow interface to return an IGLContext instead of a GLContext. 2008-01-15 10:48:48 +00:00
the_fiddler dc151f3929 Added some debugging information to context creation. 2008-01-15 10:36:47 +00:00
the_fiddler 33d0193e7f 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 2cc221998c Hacks to get the visual before creating a context. 2008-01-11 20:23:41 +00:00
the_fiddler 408bdc3f3c CreateWindow now takes a GLContext. 2008-01-11 20:23:17 +00:00
the_fiddler 523b712cec Fixed NRE on mode.ToString(). 2008-01-06 11:02:38 +00:00
the_fiddler 6ef09165b2 Added PointToClient and PointToScreen placeholders. 2008-01-06 02:29:14 +00:00
the_fiddler 107951c4d1 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 6c43d97cf4 Removed a couple of unused lines of code. 2007-11-11 20:22:51 +00:00
the_fiddler 0590fa91ca 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 f1ece1b265 X11GLContext plays better with Windows.Forms. 2007-11-11 19:28:55 +00:00
the_fiddler 04560794ad 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 24a2140872 Reverted to 0.3.12 way of handling input events. 2007-11-10 18:24:56 +00:00
the_fiddler 8efe76ca92 Removed some warnings. 2007-11-06 13:37:04 +00:00
the_fiddler df733c7719 Removed InputDriver. 2007-11-04 15:38:39 +00:00
the_fiddler e633395202 Now initializes GL class. Slight layout improvements. Removed useless constructors. 2007-11-04 15:37:41 +00:00
the_fiddler db6b583030 Took care of a couple of warnings. 2007-10-26 15:51:07 +00:00
the_fiddler 961cf9d54c Constructor now throws ArgumentNullException instead of ArgumentException. 2007-10-05 06:54:36 +00:00
the_fiddler 5f9a8921b2 Fixed issue with multiple GLControls becoming invisible. Simplified GLControl, the platform dependent code now resides in GLContext and WindowInfo - GLControl itself is platform independent, just like GameWindow. This allowed to remove IGLControl.cs, WinGLControl.cs, X11GLControl.cs and DummyGLControl.cs 2007-10-05 06:52:40 +00:00
the_fiddler e932f8e162 Fixed a warning. 2007-09-30 12:42:43 +00:00
the_fiddler 4e421d30fb Added VSync property to IGLContext. 2007-09-29 15:24:55 +00:00
the_fiddler 69dec33ef7 Fix build on Mono 1.2.4 2007-09-27 00:40:28 +00:00
the_fiddler 21efddea04 Commented out Keymap struct in X11/API.cs, due to a bug in Mono's 1.2.5 gmcs compiler. 2007-09-26 16:57:43 +00:00
the_fiddler 94da72a196 Problem with mouse wheel not getting updated. 2007-09-26 16:12:31 +00:00
the_fiddler 28f90f3d17 Polled mouse input through XQueryPointer. 2007-09-26 15:41:14 +00:00
the_fiddler ee4a5cc7ac Added Title property. Foundation of atoms. 2007-09-26 15:40:22 +00:00
the_fiddler 78b8f274ee 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 ec34bed972 Added X11 Mouse support. X11 Keyboard support is faster now.
Made GameWindow.Dispose() virtual.
2007-09-25 16:45:12 +00:00
the_fiddler 38d779eb1a Enabled X11Input mouse driver. 2007-09-24 21:23:27 +00:00
the_fiddler 4743d5afd6 InputDriver now correctly interfaces with its mouseDriver. 2007-09-24 21:10:52 +00:00
the_fiddler 9bd06cf09e Added X11Mouse driver. 2007-09-24 20:56:50 +00:00
the_fiddler 130951343a Work on X11 mouse driver. 2007-09-24 20:10:14 +00:00
the_fiddler 1c8b77cd1b Windows raw input now works. 2007-09-22 13:13:17 +00:00
the_fiddler 39fa68a29f Work on MouseDriver. Windows raw driver works. 2007-09-21 20:34:07 +00:00
the_fiddler f2b92be34f Enhanced WindowInfo API. A WindowInfo struct can now be initialized from any Control, Form, NativeWindow or GameWindow. 2007-09-21 20:07:30 +00:00
the_fiddler 98bf228a3d Added KeyRepeat to IKeyboard.
Multiple keyboards correctly reported under Windows (Raw input driver).
Corrected some key maps in X11 and Windows Raw keyboards.
2007-09-21 20:03:53 +00:00
the_fiddler 95318a8366 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 2de33d9d8d 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 06c0468091 Glu is now initialized under X11GLNative 2007-09-02 23:18:50 +00:00
the_fiddler cc23dac7a8 Merged with Bind. Added GLU bindings. Corrected OpenGL overload trimming. 2007-09-02 22:52:00 +00:00
the_fiddler 6fb1fe1e1b 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 9b257a97e9 Trunk now compiles again. 2007-09-02 00:53:24 +00:00
the_fiddler 9120a732ea Merged with bind branch: updated GL.cs wrappers, Glx and Glu implementation suppoort files, faster Bind. 2007-09-02 00:40:43 +00:00
the_fiddler 0dbf3c04b2 Added IDisposable to all input drivers.
Updated Cube.cs to use System.Drawing.Colors.
Improved DefRawInputProc in windows API.cs
2007-08-22 00:30:16 +00:00
the_fiddler 951f14f459 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 fcc621c9e5 Added AdjustWindowRect to Windows.API. The client are in WinGLNative is now correctly specified. 2007-08-21 12:04:01 +00:00
the_fiddler 0b5a0b4e1f 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 022b37e3cc Fixed a CLSCompliance issue. 2007-08-21 09:43:50 +00:00
the_fiddler 2e94140592 Fixed CLS-Compliance. 2007-08-21 09:34:05 +00:00
the_fiddler c47893dae6 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 7b1d590819 Improved GLControl event handling on initialization sequence (Resize event is now raised after loading the GL class).
Improved WinForms.Cube example to hook the GLControl events instead of the parent Form's ones.
Improved Debug output in X11GLContext and X11GLControl
2007-08-20 14:12:57 +00:00
the_fiddler e54aadad22 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 c689f50a21 Added KeyDown and KeyUp events to IKeyboard and Keyboard.
Improved input logger test to hook on the aforementioned events.
Removed Debug printing of keys in OpenTK.Input.Keyboard.
Beautified X11Keyboard.cs
Added experimental code to handle X11 keyboard events (not used yet).
2007-08-20 13:45:04 +00:00
the_fiddler ffe8ce7795 Merged with bind branch. 2007-08-20 12:25:48 +00:00
the_fiddler 9295a44c60 2007-08-20 10:46:37 +00:00
the_fiddler f9fc027bb4 Removed unused code files. Changed endings to CRLF. 2007-08-14 16:57:25 +00:00
the_fiddler 3833030a9a Improved shutdown sequence in WinGLNative and GameWindow 2007-08-10 16:55:24 +00:00
the_fiddler e220f3a71a Updated Build.exe to correctly generate sharpdev and sharpdev2 projects.
Removed some unused variables.
Added licensing information.
2007-08-10 09:27:13 +00:00
the_fiddler c6ed3a0fac Fixed X11GLContext.MakeCurrent. X11GLControl was not setting the handle correctly. 2007-08-09 12:14:00 +00:00
the_fiddler ee05b9e5c1 Debugging X11GLControl crash on MakeCurrent. 2007-08-09 12:06:09 +00:00
the_fiddler cccbb9823b Fixed crash bug in X11GLNative. Almost ready for release. Niar! 2007-08-09 11:07:12 +00:00
the_fiddler 7287e5d5a4 Fixed build error. 2007-08-07 20:59:18 +00:00
the_fiddler 4497fcfc1b Debugging crash on X11 32bits. 2007-08-07 20:32:26 +00:00
the_fiddler 81a26ab792 Updated ToString function for ColorDepth and DisplayMode.
Corrected two warnings in GLHelper.cs
Updated X11GLContext to use the correct DisplayMode.
2007-08-07 18:08:06 +00:00
the_fiddler 39a8a8d190 Corrected build error (stray ',') 2007-08-07 17:24:03 +00:00
the_fiddler 8e88fd9393 Keyboard handling now plays well with normal event handling on X11.
One more issue to go: GLControl on X11 throws when calling MakeCurrent.
2007-08-06 12:13:50 +00:00
the_fiddler e6950a6128 Added Create and Destroy events to NativeGLWindow. 2007-08-06 11:22:18 +00:00
the_fiddler a707ef91a5 Major updates to shutdown sequence (should correct bug where GameWindow hangs on exit). Enhanced the IGameWindow interface by adding the Keyboard and IsExiting properties.
Fully implemented keyboard on X11. Renamed some OpenTK keys.
2007-08-06 09:22:04 +00:00