Commit graph

298 commits

Author SHA1 Message Date
the_fiddler ea4b599d0e Set default class cursor to avoid invalid cursors when entering the window. 2009-10-21 20:08:04 +00:00
the_fiddler 7b8ba2eacb Added LoadCursor method.
Added CursorName enum (only default arrow cursor is defined for now).
2009-10-21 20:07:32 +00:00
the_fiddler b92198bccc Avoid accessing OpenTK.Graphics.OpenGL from platform-specific code. Reduces coupling and code-duplication. 2009-10-21 10:16:32 +00:00
the_fiddler 7ae6858ab5 Trap WM_SYSCHAR to avoid generating system beeps on Alt+[Key] combinations. 2009-10-20 11:35:35 +00:00
the_fiddler c80cac88ca 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 951ad35596 Implemented icon support. 2009-10-18 16:52:07 +00:00
the_fiddler 47a359d1a0 Focused property now returns correct values. FocusedChanged event is now correctly raised. 2009-10-18 15:11:41 +00:00
the_fiddler dd585e0479 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 449670f689 * 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 58b4f5c18f 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 cb1c73e827 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 a8231a5eb4 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 6ffe87813a Restore previous window size when leaving fullscreen mode. 2009-10-14 19:46:39 +00:00
the_fiddler 26ec28963e Workaround for modal loop blocking in ENTERMENULOOP event. 2009-10-12 13:15:12 +00:00
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