Commit graph

298 commits

Author SHA1 Message Date
the_fiddler 089b72c9c8 Protect all Xlib calls with XLockDisplay/XUnlockDisplay. Fixes issue [#1354]: "Application always run in windowed mode when using shared contexts". 2009-11-09 19:05:41 +00:00
the_fiddler e35f9d5374 Disabled OpenTK.Point, Size and Rectangle structures that were meant to replace their System.Drawing implementations until the correct course of action can be determined. This change is too disruptive to existing applications, especially if they are also using Windows.Forms (see discussion here: http://www.opentk.com/node/1348). 2009-11-08 23:02:53 +00:00
the_fiddler 0af0916ce0 Don't display window by default, unless "Visible = true" is called. Allows the creation of invisible windows for secondary GraphicsContexts. 2009-11-08 22:46:49 +00:00
the_fiddler e1485cdfca Added a second terminating 0 to attribute list, trying to work around issue [#1352]: "Occasional AccessViolationExceptions when creating the GLControl". 2009-11-08 22:42:20 +00:00
the_fiddler 8733dd7c2f * Platform/Windows/WinDisplayDevice.cs:
* Platform/MacOS/QuartzDisplayDeviceDriver.cs: Updated to use the new
  DisplayDevice constructors.

* Platform/X11/X11XrandrDisplayDevice.cs: Query Xinerama for the exact
  bounds of each display device, if available.
Use global X lock to protect from multithreaded access.
2009-11-06 09:50:50 +00:00
the_fiddler 39b4e329fd * X11GLNative.cs: Convert from ASCII to the default encoding before generating KeyPress events (allows support for simple scripts that do not use composition.) 2009-11-05 12:12:29 +00:00
the_fiddler 3e1ce4dfa5 * X11GLNative.cs: Implemented KeyPress event (no support for input
methods yet).

* Functions.cs: Added XLookupString and XRefreshKeyboardMapping
  methods for simple ANSI text input.
2009-11-05 11:49:24 +00:00
the_fiddler ada915fed0 Added missing TitleChanged event. 2009-11-04 20:49:38 +00:00
the_fiddler 3fd2b4b30b Removed unused code. 2009-11-04 20:48:35 +00:00
the_fiddler 5142354cda Renamed internal BindingsBase.LoadAll/Load methods to LoadEntryPoints/LoadEntryPoint, in order to avoid name clashes with the static GL.LoadAll() method.
Added GraphicsContext() constructor that takes an existing, valid OpenGL context. This can be used for interop with third-party toolkits which create the OpenGL context themselves.
2009-11-04 16:49:56 +00:00
the_fiddler 3ca21ed1b6 Initialize threads before calling any other X methods. 2009-11-04 10:04:16 +00:00
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 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 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 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 0abd2823d2 * X11GraphicsMode.cs: Protect the mode queries with XLockDisplay()/XUnlockDisplay(). 2009-09-25 08:28:51 +00:00
the_fiddler 3170c7aa0a * X11KeyMap.cs: Removed dependency on System.Windows.Forms. 2009-09-13 16:34:03 +00:00
the_fiddler 594f877021 Removed obsolete OnCreate and OnDestroy methods/events. 2009-09-04 23:23:46 +00:00
the_fiddler 1f0c7fe466 Removed unnecessary CLSCompliant attributes. 2009-09-04 23:22:44 +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 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 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 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 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 503d86267a Marked all IPlatformFactory interface implementations as virtual. 2009-07-24 21:52:01 +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 e8754784f8 Fixed XML docs and remove unnecessary CLSCompliance attributes. 2009-06-28 10:52:58 +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