Commit graph

284 commits

Author SHA1 Message Date
the_fiddler 01a8748416 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 64c6148f53 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 05158536cf 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 8b33230160 Added SetTimer, KillTimer and TimerProc bindings. 2009-10-07 13:03:32 +00:00
the_fiddler bee2c0808a Raise KeyPress events (handle WindowsMessage.CHAR message). 2009-09-26 21:56:42 +00:00
the_fiddler 045453fbf2 Renamed IsWindowVisisble to the correct IsWindowVisible. 2009-09-19 20:30:12 +00:00
the_fiddler abcad58092 Removed obsolete comment. 2009-09-08 16:55:41 +00:00
the_fiddler b6f1590636 Remove System.Windows.Forms.Control dependency in favor of OpenTK.NativeWindow. 2009-09-08 13:09:50 +00:00
the_fiddler 6a9317bf07 Construct windows invisible by default. Use 'Visible = true' or 'GameWindow.Run' to display them. 2009-09-08 13:04:22 +00:00
the_fiddler 4c3f16e183 Added IsWindowVisible method. 2009-09-08 13:03:21 +00:00
the_fiddler 8b60cc2018 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 d6c4c801e1 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 95c88baf3d * 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 7970282d7b Ensured System.Windows.Forms.NativeWindow is resolved correctly.
Renamed OpenTK.NativeWindow0 to OpenTK.NativeWindow.
2009-08-21 19:34:20 +00:00
the_fiddler d72a75f2fc Moved OpenTK.GLControl to its own project. 2009-08-19 14:17:47 +00:00
the_fiddler 244084c99e Moved GdiPlus wrappers to OpenTK.Compatibility.
Moved TextPrinter to OpenTK.Compatibility.
2009-08-17 10:29:51 +00:00
the_fiddler b1915d8ef3 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 5e80a061b8 Implemented INativeWindow.WindowBorderChanged and INativeWindow.WindowStateChanged events. 2009-08-17 09:34:15 +00:00
the_fiddler 0204082308 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 0e02f67749 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 9c0a472ba7 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 fbec76e858 Made class public.
Added missing license information.
2009-08-11 20:55:43 +00:00
the_fiddler e9d34a62ce Implemented CreateKeyboardDriver (currently disabled). 2009-08-04 08:49:15 +00:00
the_fiddler a3f61f6d65 Marked all IPlatformFactory interface implementations as virtual. 2009-07-24 21:52:01 +00:00
the_fiddler 2e345ed6c8 Replaced tabs with spaces. 2009-07-19 17:50:41 +00:00
the_fiddler 4847646cc8 Added INativeWindow.CreateKeyboardDriver()
Added INativeWindow.KeyPress event (KeyPressEventArgs).
Removed INativeWindow.Icon property.
2009-07-19 17:49:51 +00:00
the_fiddler 8c800d619d Removed obsolete code.
Implemented X11GLNative.IconChanged event.
2009-06-24 14:42:40 +00:00
the_fiddler 623015650b Removed obsolete code. 2009-06-24 14:38:48 +00:00
the_fiddler 783c38446b Marked platform-specific APIs as internal.
Added ObsoleteAttribute to obsolete functionality.
2009-06-04 11:21:33 +00:00
the_fiddler cb661c2dca Merged gw-next2 branch to trunk. 2009-06-02 15:49:39 +00:00
the_fiddler b1b3706e64 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 66efa41a8f WinGraphicsMode now uses wglChoosePixelFormatARB, if available. This allows the use of FSAA modes. 2009-06-01 11:05:31 +00:00
the_fiddler b7390e11d2 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 14eefe7e5c Merged TextPrinter optimization changes from gw-next2 branch. 2009-05-27 18:40:29 +00:00
the_fiddler d1ab1df7f4 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 28e4f5f615 Added diagnostic message when ReleaseDC fails. 2009-05-19 09:45:36 +00:00
the_fiddler 42d467d57f 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 2f54b29ed8 Added initial support for GameWindow.PointToClient. 2009-05-07 19:48:22 +00:00
the_fiddler 67d8b1f54c Fixed potential crash-bug in the WGL_ARB_create_context path (missing 0 attribute). 2009-04-29 11:02:12 +00:00
the_fiddler eb183f4cfe 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 9265747541 Fixed all known build warnings, apart from missing xml comments. 2009-03-25 21:53:12 +00:00
the_fiddler 93a467a11f 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 fc0ca5631f 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 4e5d758fa1 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 d43123f219 Added new GameWindow constructors that specify the desired GraphicsContext (OpenGL) version and flags. 2009-03-07 10:49:32 +00:00
the_fiddler a0e0613420 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 b958f912a8 WinMM devices with 0 axes and no POV hats are not joysticks/joypads. 2009-03-07 05:55:33 +00:00
the_fiddler 5f2a4b3d8c * 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 3360df3af9 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 f6f196c90b 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 9b43e11ff5 Initial joystick support (not public yet). 2009-02-28 23:11:27 +00:00
the_fiddler 529702a317 Merged initial GL3 support from branches/gl3. 2009-02-28 19:56:08 +00:00
the_fiddler cee4a44e76 Added support for wglCreateContextAttribsARB. 2009-02-28 19:51:58 +00:00
the_fiddler 8da8023c97 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 a22019d890 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 81e09a2066 Merged in macos branch for Mac OS X support. 2009-02-20 18:57:57 +00:00
the_fiddler ab852cae58 Fixed SetWindowPos function (IntPtr instead of int parameter).
Add NcCalcSizeOptions enum.
2009-02-13 21:45:50 +00:00
the_fiddler 7651a7a3bb Merged text branch and updated changelog. 2009-02-13 19:09:38 +00:00
the_fiddler db54fa79b3 Removed call to Console.WriteLine when changing WindowState. 2008-12-09 21:26:48 +00:00
the_fiddler 057759177b Fixed build warnings. 2008-12-09 10:06:25 +00:00
the_fiddler d9eeb2bd90 Add debug output to SwapBuffers. 2008-11-26 21:55:43 +00:00
the_fiddler 73cb7a5dd2 Add SuppressUnmanagedCodeSecurity and SetLastError attributes. 2008-11-26 21:54:35 +00:00
the_fiddler 820e2af20e 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 6dcc5b841d Removed unusued IGLControlHelper interface. 2008-11-23 09:39:52 +00:00
the_fiddler 62ae3698ad Library should not use Trace output. 2008-11-23 09:34:33 +00:00
kanato ec92b72469 Added fix from trunk for mouse wheel under 64-bit windows. 2008-11-12 16:42:09 +00:00
the_fiddler 0769c375db Final fix for mousewheel support on x64. 2008-11-09 23:42:54 +00:00
the_fiddler 0f1df127d5 Use UIntPtr instead of IntPtr to avoid overflow exceptions in x64 mode. 2008-11-09 11:43:02 +00:00
the_fiddler b519f2b04c Possible fix for overflow exception on mouse wheel movement in x64 mode. 2008-11-08 21:44:36 +00:00
kanato e66d796bdb Added WinFactory.cs and X11Factory.cs 2008-11-04 18:39:45 +00:00
kanato 8b65201145 Initial commit with Mac OS support. 2008-11-04 18:35:17 +00:00
the_fiddler 244de27aa2 Implemented X11GdiPlusInternals.
Added missing license headers.
2008-11-03 23:55:53 +00:00
the_fiddler ca9e6262ef Moved GdiPlus to OpenTK.Platform where it belongs.
Removed unused fields in WinGdiPlusInternals.cs.
2008-11-03 23:51:16 +00:00
the_fiddler 6cbe67fa2a Use different implementations for accessing GDI+ internals on .Net and Mono. 2008-11-03 23:34:54 +00:00
the_fiddler 8c4a36b8a7 Fix overflow exception on right shift key press/release when running on x64 mode. 2008-11-02 17:27:12 +00:00
the_fiddler 573622bf0b Removed unused variables and relevant warnings. 2008-09-19 20:57:35 +00:00
the_fiddler 43aaa02745 Make WinWindowInfo public.
Fixed X11WindowInfo line endings.
2008-05-19 20:57:36 +00:00
the_fiddler b48202324b Initial support for external contexts. 2008-05-19 20:54:07 +00:00
the_fiddler a2335092c9 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 e9e9ee5f9c Fixed mouse delta handling. 2008-05-04 17:42:19 +00:00
the_fiddler 8905630f12 Normalized line endings. 2008-05-03 16:34:39 +00:00
the_fiddler a4908fd011 Minor stylistic change (word wrap at 120 characters). 2008-04-25 21:02:54 +00:00
the_fiddler aba6cdadef Completed implementation of WindowBorder and WindowState properties. 2008-04-21 20:18:39 +00:00
the_fiddler 26f91baaec Added GetWindowInfo function and WindowInfo structure. 2008-04-21 20:18:04 +00:00
the_fiddler 752b1dfaf6 Added FlagsAttribute to WindowStyle enum. 2008-04-21 18:55:17 +00:00
the_fiddler a264b8406c Completed WindowBorder and WindowState implementation. 2008-04-21 18:36:16 +00:00
the_fiddler 35b58ffda7 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 ccdc4be460 Fixed formatting on pixel format setting debug message.
Added error handling to DestroyContext().
2008-04-20 17:52:27 +00:00
the_fiddler 03269ead9c Added GetClientRect. Fixed GetWindowLong on 32bit platforms. 2008-04-20 17:45:06 +00:00
the_fiddler a567f6604f Added stub for WindowState. 2008-04-13 21:32:04 +00:00
the_fiddler 037761c764 Fixed context sharing on windows. 2008-04-13 13:54:24 +00:00
the_fiddler 4b45494433 Removed obsolete GetDisplayModes() function. 2008-04-04 21:08:09 +00:00
the_fiddler acccba0bfb Fixed an arithmetic overflow exception in extended bit checking at WMInput.cs. 2008-04-04 20:05:38 +00:00
the_fiddler 5ff51ba9fe 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 78911ac4d4 Added some missing SetLastError attributes. 2008-03-29 16:15:57 +00:00
the_fiddler 8386c20b6a Can now distinguish between left and right control, shift, alt and enter keys. 2008-03-10 08:50:19 +00:00
the_fiddler bc1801d5d5 Added detection of left and right shift/control/alt buttons. 2008-03-08 17:35:58 +00:00
the_fiddler 46e0d1d719 Initial commit. 2008-03-03 12:47:35 +00:00
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