Commit graph

451 commits

Author SHA1 Message Date
the_fiddler 9f96fe71c1 Removed unnecessary debugging messages from main loop. 2009-11-04 10:03:50 +00:00
the_fiddler 765f54917e Default window style flags can be constants rather than static readonly fields.
Throw an exception if we fail to register the window class, the previous solution (check for "class already exists" error) was a workaround for a threading issue that has been solved.
Set the small icon when registering the class.
2009-11-04 09:21:41 +00:00
the_fiddler 15ab0d3ea7 Fixed ClassName and ModalLoopTimerId when constructing multiple WinGLNative windows in parallel.
WinGLNative windows are now correctly focused when clicked on the client area.
2009-11-03 23:42:06 +00:00
the_fiddler 544cf9d405 Serialize context construction to avoid threading issues with shared contexts. 2009-11-03 23:39:03 +00:00
the_fiddler 7e1ebfea6b Avoid static caching of extension strings and improve multithreading behavior - WGL extension checking is fast enough that caching is not very useful. 2009-11-03 23:36:37 +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 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 69cfe6b56a Raise KeyPress events (handle WindowsMessage.CHAR message). 2009-09-26 21:56:42 +00:00
the_fiddler 87683d533e Renamed IsWindowVisisble to the correct IsWindowVisible. 2009-09-19 20:30:12 +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 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 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 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 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 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 8f74430e23 Made class public.
Added missing license information.
2009-08-11 20:55:43 +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 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 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 83bcde95f9 Marked platform-specific APIs as internal.
Added ObsoleteAttribute to obsolete functionality.
2009-06-04 11:21:33 +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 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 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 c02b693062 Added initial support for GameWindow.PointToClient. 2009-05-07 19:48:22 +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 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 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 03cf3ee512 WinMM devices with 0 axes and no POV hats are not joysticks/joypads. 2009-03-07 05:55:33 +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 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 44b3a10794 Removed call to Console.WriteLine when changing WindowState. 2008-12-09 21:26:48 +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 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
the_fiddler c084833d48 Removed unused variables and relevant warnings. 2008-09-19 20:57:35 +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 f65fd4b221 Fixed mouse delta handling. 2008-05-04 17:42:19 +00:00
the_fiddler 3d07e2597f Normalized line endings. 2008-05-03 16:34:39 +00:00
the_fiddler 6f1c9b6daf Minor stylistic change (word wrap at 120 characters). 2008-04-25 21:02:54 +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 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 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 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 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 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 4fe6d37770 Completed move of OpenTK.OpenGL to OpenTK.Graphics.OpenGL. 2008-02-02 00:58:26 +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 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 0af1e98a56 Fixed fullscreen mode size. 2008-01-27 15:59:43 +00:00
the_fiddler e313460187 Renamed OpenTK.Platform.Windows.DisplayDevice to OpenTK.Platform.Windows.WindowsDisplayDevice. 2008-01-27 10:23:02 +00:00
the_fiddler 6f9deacc85 Added fadeout and fadein effect. 2008-01-26 14:02:58 +00:00
the_fiddler 58ae48833c Changed IDisplayDeviceDriver.RestoreResolution method to IDisplayDeviceDriver.TryRestoreResolution.
DisplayDevice now correctly reports original resolution.
2008-01-26 11:01:20 +00:00
the_fiddler 033a394c9d Clarified what the DisplayDevice constructor does. 2008-01-25 10:20:44 +00:00
the_fiddler eabee7c147 Add docs to static constructor. 2008-01-25 10:01:23 +00:00
the_fiddler e17439384b Fullscreen mode changes now work! 2008-01-24 12:36:40 +00:00
the_fiddler 793744402e WinDisplayDevice is now multiple-monitor aware.
Added SelectResolution function to DisplayDevice.
Updated test to change settings on all available monitors.
2008-01-24 10:50:39 +00:00
the_fiddler e12d986f24 Fixed DisplayDevice enumeration. 2008-01-24 09:30:49 +00:00
the_fiddler 785f654e88 Removed implementation of GetDisplayModes() 2008-01-24 09:14:24 +00:00
the_fiddler e6f5d43404 Added DisplayDevice driver for Windows. 2008-01-24 09:14:08 +00:00
the_fiddler 88c4c5db32 Fixed capitalization of Texture2D (was Texture2d) 2008-01-24 09:13:08 +00:00
the_fiddler 4cd670f14d Added DisplayDevice struct, ChangeDisplaySettingsEnum and ChangeDisplaySettingsEx. 2008-01-24 09:12:47 +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 99b2c90b8e Don't use obsolete DisplayMode.Width/Height anymore. 2008-01-23 13:26:14 +00:00
the_fiddler 6a6c2322a5 Added a couple of #region directives. 2008-01-23 12:42:27 +00:00
the_fiddler e4d7c3f8b3 Removed unused summary. 2008-01-23 00:26:47 +00:00
the_fiddler c7837ac381 Updated SupportsExtension functions. 2008-01-23 00:19:42 +00:00
the_fiddler 8041f1fe29 Internal Device getter. 2008-01-23 00:19:22 +00:00
the_fiddler 5598019f01 Refactored extension loading to remove duplicate code. The logic is now contained in OpenTK/Platform/Utilities.cs 2008-01-22 23:58:50 +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 5a66d44f19 Documentation updates. Getting rid of warnings. 2008-01-20 19:00: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 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 dcaf917fc2 Internal to public. 2008-01-15 00:43:51 +00:00
the_fiddler 491843adbf Disabled CLSCompliant attribute not checked warnings. 2008-01-15 00:43:23 +00:00
the_fiddler 5a61371284 Updated with the latest generator. Disabled missing XML doc warnings. 2008-01-15 00:42:29 +00:00
the_fiddler 1aa19633f9 Fixed window destruction. 2008-01-15 00:10:56 +00:00
the_fiddler cc3239d466 Set window on top during creation. 2008-01-15 00:02:58 +00:00
the_fiddler 7b0ff73c85 Fixed an issue where WMInput did not detach on the Destroy message, causing the application to stay open. 2008-01-14 23:44:22 +00:00
the_fiddler 935db198ea Fixed a GameWindow exit bug, where the GameWindow didn't send the destroy message on GameWindow.Exit(). 2008-01-14 23:43:56 +00:00
the_fiddler 2ad50d33b6 Got rid of some warnings. 2008-01-11 20:54:06 +00:00
the_fiddler a522ce47bb Major update. Explicitly implemented internal interfaces. 2008-01-11 20:24:48 +00:00
the_fiddler f50c0b06c2 Now uses GLContext directly, instead of WinGLContext. 2008-01-11 20:24:20 +00:00
the_fiddler 2ab661a472 Minor cosmetic change. 2008-01-06 10:40:50 +00:00
the_fiddler df7d4f9508 Fixed GetRawInputData call. 2008-01-06 02:35:57 +00:00
the_fiddler b71519eac5 Implemented mouse and keyboard driver. 2008-01-06 02:28:51 +00:00
the_fiddler 8d6872f8b8 Fixed starting coordinates (should now report position in absolute coordinates.) Updated data packet handling. 2008-01-06 02:28:27 +00:00
the_fiddler 9a50727029 Moved KeyMap from WinRawKeyboard to its own class. 2008-01-06 02:27:03 +00:00
the_fiddler 22dfa79f08 Changed all public items to internal. 2008-01-06 02:26:11 +00:00
the_fiddler 3fbd780097 Added PointToClient and PointToScreen functions. Changed default input driver implementation from RawInput to WMInput due to invalid RawInput data. 2008-01-06 02:25:56 +00:00
the_fiddler ab69227070 Changed all public items to internal. 2008-01-06 02:24:49 +00:00
the_fiddler 1413de464a Changed all public classes to internal. Added missing WM_* mouse events. Added functions to get mouse position. Updated the RawInput structures. 2008-01-06 02:24:33 +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 815eb7ef55 Fixed shutdown sequence in Windows, so that GameWindow.Exit() and pressing the 'close' button behave the same. 2007-11-11 20:23:25 +00:00
the_fiddler 25946dc406 Reverted to 0.3.12 way of handling input events. 2007-11-10 18:25:33 +00:00
the_fiddler 8d8842ea62 Commented out some unused code. 2007-11-06 13:36:47 +00:00
the_fiddler eac6aaa72a Corrected a few warnings. 2007-11-06 13:35:40 +00:00
the_fiddler db3b1d52c9 Added check to disable swap control, if the relevant extension is not supported. 2007-11-04 15:35:31 +00:00
the_fiddler f2fadfe890 Removed Wgl.Ext.SupportsExtension. Updated code to use the new naming conventions. 2007-11-04 15:34:54 +00:00
the_fiddler 85f3be4365 Bindings (with new naming conventions) re-generated with Bind 0.9.9 2007-11-04 15:28:20 +00:00
the_fiddler 8bf372af28 Regenerated using the latest Bind version. 2007-10-31 17:44:45 +00:00
the_fiddler 71f5efc5c9 Added GdiCharset enum. Not used for now. 2007-10-20 13:40:55 +00:00
the_fiddler 91b52b5143 Added WMInput driver. 2007-10-19 20:02:34 +00:00
the_fiddler c8f6708acc Removed the InputDriver from the INativeGLWindow interface. It now resides lower, in the GameWindow class. 2007-10-19 20:00:45 +00:00
the_fiddler cfd383fd03 Now loads GL and Glu functions. 2007-10-15 11:14:41 +00:00
the_fiddler fa5e22da79 Removed loading of GL and Glu functions. This now happens lower in the hierarchy, inside GameWindow. 2007-10-15 11:06:58 +00:00
the_fiddler 8eb779558c Disabled support for multiple devices to minimize memory and CPU usage. 2007-10-15 11:02:14 +00:00
the_fiddler 5467bc9567 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 f86e6583e3 Added Wgl.EXT.SupportsExtension and optimized Wgl.ARB.SupportsExtension function. Fixed a bug in Wgl.Load() function, where wglGetProcAddress was never called. 2007-09-29 15:26:39 +00:00
the_fiddler 34d3a715a5 Added VSync property to IGLContext. 2007-09-29 15:24:55 +00:00
the_fiddler 6f3e74b688 Added TODO caption to Visible property. 2007-09-26 15:44:32 +00:00
the_fiddler d3da5a219a Improved mouse delta handling. WheelDelta is broken. 2007-09-26 15:42:01 +00:00
the_fiddler ae1c9d8642 Updated to reflect renames (Windows.API -> Windows.Functions, Keyboard/Mouse -> Keyboard-/MouseDevice) 2007-09-26 11:57:32 +00:00
the_fiddler 8026e15c5b Implemented Visible and Title properties. 2007-09-26 11:55:55 +00:00
the_fiddler 547e85a8cf Renamed Windows.API to Windows.Functions 2007-09-26 11:55:24 +00:00
the_fiddler 308ffef918 Renamed Windows.API to Windows.Functions, in accordance to X11.Functions 2007-09-26 11:54:43 +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 0712635670 Fixed build. 2007-09-22 15:07:28 +00:00
the_fiddler 26f5d0dff4 Updated BindStreamWriter to better handle endlines. Reverted WinRawInput to standard reads. 2007-09-22 14:59:33 +00:00
the_fiddler e277e3b272 Windows raw input now works. 2007-09-22 13:13:17 +00:00
the_fiddler 52a6690150 Removed Move event from IMouse (too inefficient). Polled input only.
S04 now polls for the mouse position.
Keyboard now handles events generated from code and not from physical devices.
2007-09-21 22:49:42 +00:00
the_fiddler 21d6030a6a Corrected Windows.API.RawMouse class. Mouse input now works! 2007-09-21 22:39:16 +00:00
the_fiddler b660f5af9b Updated Input Logger example. Better handling of mice. 2007-09-21 21:30:18 +00:00
the_fiddler 980e7138d2 Work on MouseDriver. Windows raw driver works. 2007-09-21 20:34:07 +00:00
the_fiddler 0424887db2 Corrected some struct definitions in Windows.API 2007-09-21 20:31:47 +00:00
the_fiddler dbb2d1a3d6 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 66b046a58c 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 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 5e28f31660 Improved GL loading speed.
Added background worker thread to W03_Extensions.
Added debug output to failed WinGLContext.MakeCurrent() calls.
Removed object field from Windows.MSG struct.
2007-09-03 21:47:34 +00:00
the_fiddler 45a0efd9d1 Removed redudant GL.LoadAll call in WinGLNative
Added Glu.LoadAll call to GLControl.cs
2007-09-02 23:04:11 +00:00
the_fiddler a813684176 Merged with Bind. Added GLU bindings. Corrected OpenGL overload trimming. 2007-09-02 22:52:00 +00:00
the_fiddler b89d2231d4 Changed API.* to * in order to reflect changes in OpenTK.Platform.Windows.API.
Improved Disposable pattern implementation in most Windows classes.
2007-09-02 00:16:22 +00:00
the_fiddler 794ba2fa41 Corrected a couple of compiler warnings. 2007-08-31 16:10:38 +00:00
the_fiddler 1d62f8521c Corrected bug affecting the GL.Load and Wgl.Load functions, where the delegates where not retrieved by the GetFields call. 2007-08-22 16:13:41 +00:00
the_fiddler 6ae06d82bd 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 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 2254388903 Merged with bind branch. 2007-08-20 12:25:48 +00:00
the_fiddler 7efeeda3ca 2007-08-20 10:46:37 +00:00
the_fiddler 2e467d1aa3 Added wgl binding generator. 2007-08-12 16:14:23 +00:00
the_fiddler 2256864b92 Improved shutdown sequence in WinGLNative and GameWindow 2007-08-10 16:55:24 +00:00
the_fiddler 7a2da17f5c 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 f98b344cdf Fixed build error in WinGLNative. 2007-08-09 12:08:03 +00:00
the_fiddler 863a8e9557 Added Create and Destroy events to NativeGLWindow. 2007-08-06 11:22:18 +00:00
the_fiddler f30e7f6df8 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
the_fiddler 94e738bb9a Enahnaced X11 keymap. Renamed some OpenTK keys. 2007-08-06 00:08:51 +00:00
the_fiddler 3c5797b15c Added visual for InputOnly window X11Input 2007-08-05 18:51:07 +00:00
the_fiddler 6ccbfb266e Hooked up Keyboard event handling in X11Input
Added ProcessEvents() function to IInputDriver. Does nothing on WinRawInput, but is needed by X11Input
2007-08-05 18:26:14 +00:00
the_fiddler 0531e20287 Added preliminary key handling to X11Keyboard.
Removed stupid hack in WinRawKeyboard.
2007-08-05 18:10:08 +00:00
the_fiddler 91d71b754e Corrected NRE in X11Keyboard 2007-08-05 16:54:14 +00:00
the_fiddler a56ababd8b Corrected NRE in WindowInfo.ToString functions, when referring to non-existent parent. 2007-08-05 16:47:07 +00:00
the_fiddler a987a5daf6 Overrode ToString in WindowInfo implementations.
Debugging NRE in X11Keyboard constructor.
2007-08-05 16:44:31 +00:00
the_fiddler 40add1aaef Renamed OpenTK.Input.Keys to OpenTK.Input.Key.
Added keymap to X11/X11Keyboard.cs (not complete).
Added GetKeyboardMapping(), DisplayFlags() and XKey enum to OpenTK.Platform.X11.API.cs
2007-08-05 16:04:39 +00:00
the_fiddler 2357f54af6 Removed exceptions from Fullscreen properties. 2007-08-05 13:51:07 +00:00
the_fiddler b630d84add Added IWindowInfo.cs, X11/WindowInfo.cs and Windows/WindowInfo.cs, which hold information regarding a platform specific window object.
Updated everything to not use raw window handles, but rather WindowInfo objects.
Added code that (hopefully) creates an invisible input window for X11.
2007-08-05 13:42:31 +00:00
the_fiddler 0172ff101c Updated documentation on the *GLNative classes. X11/X11GLNative.cs now doesn't create a render window during the constructor call, but rather when CreateWindow is called explicitly. 2007-08-05 10:33:23 +00:00
the_fiddler 47a3a3f62c Started implementing X11Input.cs, X11Keyboard.cs and X11Mouse.cs drivers. Removed some warnings from X11Api.cs 2007-08-05 09:03:22 +00:00
the_fiddler 73e0509a06 Updated Windows.Api to be CLS-Compliant. 2007-08-05 00:09:42 +00:00
the_fiddler 6812739418 Renamed InputDevices.cs to InputDriver.cs.
Added IMouseDriver.cs and WinRawMouse.
2007-08-04 13:28:16 +00:00
the_fiddler 59b503b3c3 Bumped version numbers.
WinRawInput now correctly subclasses WinGLNative or WinGLControl. WinRawKeyboard now correctly responds to events.
Removed T10_GLSL_Cube.cs which was erroneously moved outside the Examples/Tutorial directory.
Updated INativeWindow, IGameWindow and IGLControl interfaces.
Updated examples to use the new GameWindow interface.
Added documentation to GameWindow.
Improved GameWindow error handling. More defensive programming.
2007-08-04 12:09:58 +00:00
the_fiddler 2f64fb372e Major updates to keyboard input. The infrastructure (drivers etc) is ready. Windows raw input works (now implementing multiple devices). The examples need updating for the new input methods.
Updated the ExampleLauncher to not process exceptions. Updated the IExample interface to contain the Launch method. Updated examples and the ExampleLauncher according to the IExample interface.
Synced with gl3 branch.
2007-08-03 00:14:31 +00:00
the_fiddler 8f90c9d50f Added Windows.API.VirtualKeys enum.
Started VirtualKeus --> OpenTK.Input.Keys keymap .
Removed Keyboard.Key set property.
2007-07-31 21:50:29 +00:00
the_fiddler 43a37e3ac2 Fixed Raw Input keyboard registration under windows.
Fixed marshalling in GetRawInputData.
2007-07-27 01:37:12 +00:00
the_fiddler 8f159aef72 IKeyboard is now public. Updated the GameWindow to not create the Keyboard itself (it is done further up).
Added all Raw Input structs, functions and enums in Windows.API.
WinRawKeyboard implements IKeyboard using Raw Input on Windows.
2007-07-27 01:20:55 +00:00
the_fiddler 7f9fe25e3a IKeyboard interface. Updated Keyboard.cs and the examples to use the new interface.
Major additions to Windows.API: Implemented all functions and structures for Raw Input.
2007-07-26 22:56:55 +00:00