Commit graph

700 commits

Author SHA1 Message Date
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
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 47c1cc69e5 * Functions.cs: Added helper function for XSendEvent, so that we
don't need to cast the EventMask to IntPtr.
2009-10-19 19:02:07 +00:00
the_fiddler e2dd2cb58f * X11GLContext.cs: Correctly set GraphicsMode in constructor (resolves issue [#1175]: "Graphics] GraphicsContext.GraphicsMode property returns null on Linux"). 2009-10-19 18:11:32 +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 a05d06b2d8 * Functions.cs: Added a number of missing methods relating to
XWMHints, images, pixmaps and root windows.
Implemented Create[Mask|Pixmap]FromImage methods.

* Structs.cs: Added ImageFormat enum.
2009-10-19 10:41:41 +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 d3a56a15ef * Graphics/ES10/Helper.cs:
* Graphics/ES11/Helper.cs:
* Graphics/ES20/Helper.cs:
* Graphics/BindingsBase.cs:
* Platform/X11/GlxHelper.cs:
* Graphics/OpenGL/GLHelper.cs:
* Platform/X11/X11GLContext.cs: Modified BindingsBase to define
  abstract GetAddress method (reason: removes OpenTK.Graphics-specific
  code from BindingsBase and allows it to be used in different
  bindings).
Implemented GraphicsBindingsBase and modified the OpenGL and OpenGL|ES
  bindings to use this.
Modified the GLX bindings to inherit from BindingsBase (reason:
  reduces code duplication for extension loading).
2009-10-07 10:44:45 +00:00
the_fiddler 69cfe6b56a Raise KeyPress events (handle WindowsMessage.CHAR message). 2009-09-26 21:56:42 +00:00
the_fiddler 0abd2823d2 * X11GraphicsMode.cs: Protect the mode queries with XLockDisplay()/XUnlockDisplay(). 2009-09-25 08:28:51 +00:00
the_fiddler 87683d533e Renamed IsWindowVisisble to the correct IsWindowVisible. 2009-09-19 20:30:12 +00:00
the_fiddler 3170c7aa0a * X11KeyMap.cs: Removed dependency on System.Windows.Forms. 2009-09-13 16:34:03 +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 594f877021 Removed obsolete OnCreate and OnDestroy methods/events. 2009-09-04 23:23:46 +00:00
the_fiddler 72eb674817 Silenced a few compiler warnings. 2009-09-04 23:23:13 +00:00
the_fiddler 1f0c7fe466 Removed unnecessary CLSCompliant attributes. 2009-09-04 23:22:44 +00:00
the_fiddler 2606d0d6e8 Set disposed to true when calling Dispose() method. 2009-09-04 21:46:39 +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 37f5c99d58 * DesktopGraphicsContext.cs: Removed unecessary using directives. 2009-08-25 10:36:46 +00:00
the_fiddler b5244f22c2 Added EmbeddedGraphicsContext as the foundation of all ES context implementations and modified EglContext to inherit from this. 2009-08-25 10:36:14 +00:00
the_fiddler 63314b0f82 * X11GLContext.cs: Remove context field in favor of GraphicsContextBase.Handle. Fixes issue 1121: "GraphicsContext fails with KeyNotFoundException on SVN trunk". 2009-08-25 09:03:19 +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 7a8bfc60ee Modified CreateX11WindowInfo to check GraphicsMode.Index.HasValue prior to using it. 2009-08-15 16:46:33 +00:00
the_fiddler 5d5f598707 Implemented EglContext construction according to AMD's OpenGL|ES samples. 2009-08-15 16:45:59 +00:00
the_fiddler 5515c59173 Added OutAttribute to array parameters that return values.
Added Egl.GetProcAddress method.
2009-08-15 16:45:21 +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 5464be873f Removed duplicate GetConfigAttrib calls. 2009-08-14 15:32:38 +00:00
the_fiddler d436bf5e14 Use Egl.GetDisplay to get a display connection from an EGLNativeDisplayType. 2009-08-14 15:19:37 +00:00
the_fiddler b5928c6dd4 Replaced libGLES_CM.dll by libEGL.dll, which is provided by the AMD OpenGL|ES emulator. 2009-08-14 15:17:42 +00:00
the_fiddler 6336246f57 Ensure UnsupportedPlatform is used for Factory.Embedded if OpenGL|ES is not supported. 2009-08-14 14:10:56 +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 245f45c7eb Added support for IPlatformFactory implementations for embedded devices that use EGL. The embedded implementation can be used side-by-side with the normal implementations (useful for platforms that support both desktop GL and EGL). 2009-08-13 11:52:51 +00:00
the_fiddler fec018e921 Normalized line endings. 2009-08-13 11:41:14 +00:00
the_fiddler d9fc224f72 Added IsSupported property, which checks for the existence of EGL libraries. 2009-08-13 11:40:16 +00:00
the_fiddler a905b3ce24 * Egl.cs: Added workaround for gmcs 2.4.2 bug #530270 (https://bugzilla.novell.com/show_bug.cgi?id=530270). 2009-08-12 10:58:23 +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 e0f6300c5b Missed part of the refactored X11 bindings. 2009-08-11 21:15:29 +00:00
the_fiddler d9d2cfd735 Added missing license information. Made public. Added documentation. 2009-08-11 21:11:46 +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 682d371cbe Made types used by X11WindowInfo public. 2009-08-11 21:02:52 +00:00
the_fiddler bf5decd472 Added missing license information and removed unused code. 2009-08-11 20:57:54 +00:00
the_fiddler 8f74430e23 Made class public.
Added missing license information.
2009-08-11 20:55:43 +00:00
the_fiddler 791be928cb Removed unused code. 2009-08-11 20:51:02 +00:00
the_fiddler a906a70146 Merged fix for issue [#1074]: " X11XrandrDisplayDevice on Xming ---> Argument is out of range." from 0.9.8 branch. 2009-08-10 11:36:26 +00:00
the_fiddler d2ed387c67 Merged improved XRandR handling from 0.9.8 branch. 2009-08-04 09:35:31 +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 aff44002b1 Added new EglWindowInfo constructor.
Added missing license information.
2009-07-24 21:51:06 +00:00
the_fiddler e0c88b92e6 Initial implementation. 2009-07-24 21:50:21 +00:00
the_fiddler e7fd9eb296 Implemented IDisposable pattern. 2009-07-24 21:19:42 +00:00
the_fiddler f031e34ecf Initial implementation. 2009-07-24 21:13:46 +00:00
the_fiddler 46632376a8 Removed EGL_ prefix from all EGL constants. 2009-07-24 21:12:59 +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 5ef2a59306 Replaced tabs with spaces. 2009-07-19 16:09:46 +00:00
the_fiddler 0b107a9880 * EglContext.cs: Fixed build error (class committed by mistake - it is not yet implemented). 2009-07-16 13:36:41 +00:00
the_fiddler 2a96551355 Added EGL bindings based on http://www.koushikdutta.com/2008/08/net-compact-framework-wrapper-for.html 2009-07-15 23:17:41 +00:00
the_fiddler e8754784f8 Fixed XML docs and remove unnecessary CLSCompliance attributes. 2009-06-28 10:52:58 +00:00
the_fiddler 3dcb9e17e4 Implemented multisampling on MacOS (untested). 2009-06-26 20:06:31 +00:00
the_fiddler b4359c51ac Implemented multisampling on X11. 2009-06-26 20:01:22 +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 f230535dfc Removed obsolete IResizable, DisplayMode and ColorMode APIs.
Marked carbon API class as internal.
Added a large number of missing XML comments.
2009-06-04 11:31:02 +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 4a8d9c582c Made X11 structs, enums and functions internal. OpenTK should not expose platform-specific APIs. 2009-06-04 10:57:26 +00:00
the_fiddler b4d35e7d03 Marked as obsolete. 2009-06-04 10:56:17 +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 ad602ecc92 Use GraphicsMode.Default for DummyGLContext. 2009-05-31 16:02:15 +00:00
the_fiddler 0498b3e92a Replaced XAutoRepeatOff by XkbSetDetectableAutoRepeat, because the former must be reset before the program exits (and this is not always possible). 2009-05-30 21:41:45 +00:00
the_fiddler 407d6fdf08 Added XAutoRepeatOn() method. 2009-05-30 21:40:42 +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 9c98321c76 Added call to XAutoRepeatOff() to disable keyboard autorepeat on X11Input. 2009-05-30 18:15:13 +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 6a17953ba0 Fixed potential NRE during extension loading. 2009-05-11 10:31:50 +00:00
kanato 5817a46f65 Implement PointToClient for MacOS. 2009-05-11 01:10:09 +00:00
kanato 768528ca81 Add overload to OpenTK.Platform.Utilities.CreateGraphicsContext which takes version number and flag parameters. Deprecate old CreateGraphicsContext methods. 2009-05-10 04:49:31 +00:00
the_fiddler c02b693062 Added initial support for GameWindow.PointToClient. 2009-05-07 19:48:22 +00:00
kanato 889822e06c Fix AGL buffer rectangle when destination control is inside a container inside a form. 2009-05-07 16:32:15 +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 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 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 c7b9c7f0c5 * Platform/X11/X11GLContext.cs: Added workaround for buggy Amd linux drivers. Added "None" to context attributes, as specified by the specs. 2009-03-20 23:16:52 +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 6484f08e04 * Platform/X11/Bindings/Glx.cs: Added glXIsDirect method and made all enums private. Added ErrorCodes enum. 2009-03-20 23:13:24 +00:00
the_fiddler 6076dc7529 * Platform/X11/X11GraphicsMode.cs: Major clean up. Refactored
ChooseFBConfig and ChooseVisual codepaths into different methods.
  Fixed bug [#728].
2009-03-20 19:38:52 +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 4cfaaf6077 Made extension loading more forgiving (delegates can be either public or non-public now). 2009-03-07 10:20:55 +00:00
the_fiddler 70963b09af Use Glx.ChooseFBConfig instead of the deprecated Glx.ChooseVisual, if the first is available. This is necessary for OpenGL 3.0 contexts. 2009-03-07 07:16:46 +00:00
the_fiddler 4efee1f1ef Removed unused types. 2009-03-07 07:14:52 +00:00
the_fiddler 300abf1a1c Added support for the glx functions ChooseFBConfig, GetVisualFromFBConfig and CreateContextAttribsARB. 2009-03-07 07:13:48 +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
kanato 3c1676ee40 Add MacOS code to call gestalt to detect OS version. 2009-03-02 01:49:23 +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 1a0c3ff31f Add description to joysticks opened from the legacy path. 2009-03-01 01:26:04 +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 d79a9ca5d3 Time should be IntPtr, not uint.
Fixed KeypadEnter detection (was mistakenly mapped to vanilla Enter key).
2009-02-09 15:33:32 +00:00
the_fiddler 44b3a10794 Removed call to Console.WriteLine when changing WindowState. 2008-12-09 21:26:48 +00:00
the_fiddler 033d4722af Moved DummyGLContext and DummyGLControl to the OpenTK/Platform/Dummy directory and namespace.
Fixed a regression where the GLControl would try to instantiate a normal context inside the VS designer, instead of a dummy one.
2008-12-09 10:09:03 +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 df8e411ea9 Fixed some whitespace and normalized line-endings. 2008-11-18 12:44:18 +00:00
the_fiddler 991dc7dfab Use IntPtr instead of HandleRef. 2008-11-14 00:03:02 +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
kanato cb0848f154 Added CreateGraphicsContext and CreateWindowInfo code. 2008-10-31 20:09:09 +00:00
the_fiddler c084833d48 Removed unused variables and relevant warnings. 2008-09-19 20:57:35 +00:00
the_fiddler 0209dd7ac4 Fixed extension loading. 2008-07-18 23:08:50 +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 58cd07ec2a Fixed mouse motion events on Linux. 2008-05-04 18:23:42 +00:00
the_fiddler f65fd4b221 Fixed mouse delta handling. 2008-05-04 17:42:19 +00:00
the_fiddler dda7624efa Fixed line endings. 2008-05-04 17:18:02 +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 3d07e2597f Normalized line endings. 2008-05-03 16:34:39 +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 2c8d377097 Added two helper functions for sending NET WM and client WM messages.
--This line, and those below, will be ignored--
M    Functions.cs
2008-04-25 21:04:05 +00:00
the_fiddler 6f1c9b6daf Minor stylistic change (word wrap at 120 characters). 2008-04-25 21:02:54 +00:00
the_fiddler 5f60b5da26 Moved to Bindings folder. 2008-04-25 09:03:38 +00:00
the_fiddler 5b8fef5f7a Removed unused code. 2008-04-25 08:45:12 +00:00
the_fiddler 3590ba5d29 Initial work on WindowState support. 2008-04-25 08:42:53 +00:00
the_fiddler 435b031833 Moved PlatformException to the OpenTK namespace. Removed an invalid Debug.Unindent() call. 2008-04-21 21:31:21 +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 34717ecae2 Commented out an unused line in DummyGLContext. Moved TexturePacker. 2008-04-13 16:38:22 +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 76825a36c7 Updates to GameWindow shutdown and X11 locking behavior. 2008-03-26 19:43:57 +00:00
the_fiddler db29304aa8 Initial commit. 2008-03-24 19:01:35 +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 653f9a812f Unique handles for different contexts (makes multiple contexts work under Visual Studio designer). 2008-03-24 13:25:38 +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 d9143c7654 Moved GraphicsContext creation to the HandleCreated event. 2008-03-10 13:25:33 +00:00
the_fiddler b2b9cd1353 Fixed multiple GLControls under Mono/X11. 2008-03-10 13:23:09 +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 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 532594c1b2 Initial commit. 2008-03-03 12:48:13 +00:00
the_fiddler 9f7d858136 Initial commit. 2008-03-03 12:48:00 +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 afc5f84b21 Initial commit. 2008-02-28 14:02:17 +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 f6b2e63381 New IWindowInfo interface. 2008-02-28 13:54:07 +00:00
the_fiddler 97ccade80f Obsoleted. 2008-02-28 13:53:28 +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 4e7978105b 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 af638d4795 Fixed a few warnings.
Added [assembly: CLSCompliant(true)] attribute to GameWindow.cs
2008-02-02 13:39:23 +00:00
the_fiddler 4fe6d37770 Completed move of OpenTK.OpenGL to OpenTK.Graphics.OpenGL. 2008-02-02 00:58:26 +00:00
the_fiddler fda2092106 2008-02-01 23:29:27 +00:00
the_fiddler effc907171 Moved keyboard and mouse code inside X11Input.cs 2008-02-01 23:28:23 +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 73591c128c Moved and renamed OpenTK.IGLContext to OpenTK.Graphics.IGraphicsContext. 2008-01-31 14:42:21 +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 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 0af1e98a56 Fixed fullscreen mode size. 2008-01-27 15:59:43 +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 7198c69f11 Restore resolution available on OpenTK startup, not on X11 startup. 2008-01-27 14:23:13 +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