thefiddler
3a63496b6d
Merge branch 'gamepad' into develop
...
Conflicts:
Source/OpenTK/OpenTK.csproj
2014-01-03 02:23:02 +01:00
thefiddler
b9a8e365de
[Input] Added IJoystickDriver2.GetGuid() API
2013-12-31 14:09:17 +01:00
thefiddler
cf76aa6085
[Mac] Moved GetAddress implementation to its own class
...
The functions defined in libdl.dylib are useful in more places than
just AglContext. Moving them to their own class ensures we can access
these from wherever we might need them.
2013-12-28 01:06:33 +01:00
thefiddler
b79d951e62
[Mac] Use Cgl.GetCurrentContext instead of Agl
...
CGL appears to work with both AGL and NSOpenGL contexts, whereas AGL is
limited to AGL contexts. This allows us to be more flexible in terms of
implementation (i.e. we can use Cgl.GetCurrentContext to retrieve a
handle to a context created through SDL, which uses NSOpenGL
internally.)
2013-12-28 01:04:22 +01:00
thefiddler
1eb807bb64
Use IGamePadDriver through MappedGamePadDriver
2013-12-24 17:18:05 +01:00
Stefanos A
7e5307bd4a
Added IJoystickDevice2 interface
2013-12-24 17:18:03 +01:00
thefiddler
8f7eebb58d
Enabled HIDInput IGamePadDriver implementation
2013-12-24 17:18:02 +01:00
thefiddler
d7fefe495e
Removed unused constructors
2013-12-23 21:43:17 +01:00
thefiddler
95270c877d
Added Compositing and FrameworkScaled flags
2013-12-23 21:42:16 +01:00
thefiddler
1189b33ed5
Fixed OpenTK/Carbon key repeat behavior to match the other backends
2013-12-23 20:40:27 +01:00
thefiddler
c13d80d6d8
Fixed GameWindow.{Bounds, Location, Size, X, Y} setters on OpenTK/Carbon
2013-12-23 20:21:02 +01:00
thefiddler
c6a21a2239
Implemented KeyDown & KeyUp events on OpenTK/Carbon
2013-12-23 19:32:16 +01:00
Stefanos A
dfd683ef49
Merge master into no-reflect
2013-12-15 16:36:37 +01:00
Stefanos A
ca5a5b4d16
Reduce temporary string allocations
...
Instead of modifying the name of an OpenGL symbol on the managed side,
before copying it to the unmanaged side, we perform the modification
directly on the unmanaged side. This reduces the total amount of
allocations in OpenTK by ~30% (673496 bytes in 10750 objects compared
to 930272 bytes in 15243 objects before this modification.)
2013-12-05 11:20:58 +01:00
Stefanos A.
c53c0bc66f
Added GetProcAddress(IntPtr) overloads
...
This might allow us to improve startup performance, by avoiding string
marshaling during extension loading.
2013-11-28 23:21:19 +01:00
Stefanos A.
f9fdddea64
Re-added WindowHandle property
...
There are projects that use reflection to access
*WindowInfo.WindowHandle directly. This change ensures we don't break
them.
2013-11-13 18:25:49 +01:00
Stefanos A
6edaf8c3cf
Deduplicate MacOSGraphicsMode and AglContext
...
The IGraphicsMode interface is gradually being removed and the
MacOSFactory will now throw an exception if an instance is requested.
AglContext no longer duplicates MacOSGraphicsMode functionality.
2013-11-08 18:44:02 +01:00
Stefanos A
70818d97e1
Fixed compilation on desktop platforms.
2013-10-12 05:14:51 +02:00
Stefanos A
1130d988b0
Use OpenTK.Minimal to stub out missing System.Drawing functionality
...
when building on Android or iOS platforms.
2013-10-12 05:06:54 +02:00
Stefanos A
a85cecdc59
Improved resource disposal
...
Added IDisposable interface to all classes holding native data that must be freed. OpenTK.Toolkit.Init() now returns an IDisposable instance that can be used to cleanup all native data held by OpenTK. This is useful when re-initializing OpenTK (possibly in a new AppDomain), as is the case in the Example browser.
2013-10-01 22:01:27 +02:00
Stefanos A.
b57e58dc47
Implemented Sdl2GLControl
...
SDL2 still fails with "not an OpenGL window".
2013-09-30 20:47:29 +02:00
thefiddler
6d0b5eb49f
Implemented SDL2 platform using sdl2-cs
...
This is a new platform that can be used then sdl2 is installed on the target system. SDL2 is commercially supported by Valve and provides better support for MacOS compared to our current implementation (Cocoa vs Carbon). It will also help us introduce faster support for new platforms. Existing platforms remain as a fallback and will be automatically used if sdl2 is not installed.
Please note that this is still a work in progress. The new mouse and keyboard API is not supported yet. Due to limitations of sdl2, multiple mice/keyboards are also not supported.
2013-09-27 14:41:37 +02:00
David Jeske
cce40d60b0
fix MacOS bug mapping modifier keys to the scancode array
2013-08-10 19:50:05 -07:00
David Jeske
2c29df6296
added support for smooth trackpad scrolling on macos
2013-08-09 23:20:49 -07:00
Andy Korth
0f64af130a
Committing artfunkel patch for scan codes
2013-01-24 15:48:01 -06:00
Andy Korth
2a0ad3ef6f
A few minor comments
2013-01-17 14:45:57 -06:00
Robert Rouhani
b5591e1eee
Started implementing GamePad
2013-01-16 17:56:31 -08:00
Andy Korth
c98d9e4503
Supress printing of some keyboard non-errors.
2012-12-21 18:43:19 -06:00
Andy Korth
39c3f3f543
Replication project for Mac OS mouse input issue, and fix. OpenTK issues 3242 and 2800
2012-12-21 17:11:39 -06:00
Andy Korth
bef7ecd1ed
Fix incorrect Mac OS key map, OpenTK issue 3220
2012-12-20 13:45:00 -06:00
the_fiddler
e838aa7953
Use Debug.WriteLine instead of Debug.Print on a single-parameter string. Fixes compilation on mobile devices.
2011-12-08 00:17:08 +00:00
the_fiddler
41e0c65dcb
Avoid using the global namespace in the MINIMAL configuration, as it confuses the Mono compiler.
2011-12-08 00:10:03 +00:00
the_fiddler
4fde3c4dab
Added conditional compilation and the necessary classes to compile OpenTK without referencing System.Drawing.dll. To build without System.Drawing, add "MINIMAL" to the conditional compilation symbols. Note that this is an experimental feature that will result in a source- and binary-incompatible dll.
2011-12-08 00:03:14 +00:00
the_fiddler
809d369c52
Implemented IGraphicsContext.SwapInterval property that supersedes IGraphicsContext.VSync. Fixes issue [ #2671 ]: "Expose SwapInterval to GameWindow".
2011-09-06 12:06:30 +00:00
the_fiddler
1bfd143b96
* Platform/MacOS/HIDInput.cs, Platform/MacOS/MacOSFactory.cs:
...
Added support for raw keyboard input.
2010-11-30 23:23:42 +00:00
the_fiddler
5b3c08f463
* Platform/MacOS/CarbonGLNative.cs:
...
Fixed handling of key repeat.
Fixed crash when unknown key is pressed.
2010-11-30 23:22:56 +00:00
the_fiddler
455acac6f8
* MacOS/CarbonGLNative.cs:
...
Removed unnecessary debug information.
2010-11-26 13:32:52 +00:00
the_fiddler
df4339433a
* EventInfo.cs, AglContext.cs, MacOSKeyMap.cs, Application.cs,
...
CarbonInput.cs, CarbonGLNative.cs, MacOSException.cs,
CarbonBindings/Agl.cs, CarbonBindings/CarbonAPI.cs,
CarbonBindings/MacOSKeys.cs, CarbonBindings/SpeechChannel.cs,
CarbonBindings/CoreFoundation.cs,
CarbonBindings/QuartzDisplayServicesAPI.cs:
Normalized licensing information.
2010-11-26 11:41:45 +00:00
the_fiddler
75aa2a1dc1
* Platform/MacOS/CarbonGLNative.cs:
...
Implemented CursorVisible property. Aligned mouse behavior to win32 &
x11. General code cleanup.
2010-11-26 11:01:51 +00:00
the_fiddler
ed08f068c7
* Platform/MacOS/CarbonBindings/QuartzDisplayServicesAPI.cs:
...
Added support for mouse control.
2010-11-26 11:00:57 +00:00
the_fiddler
42663d1a70
* Platform/MacOS/CarbonBindings/CarbonAPI.cs:
...
Added support for mouse delta events.
2010-11-26 11:00:27 +00:00
the_fiddler
859216b94b
Disabled event suppression after cursor movements.
2010-11-26 10:59:08 +00:00
the_fiddler
2c0b024158
Implemented SetPosition in terms of CGWarpMouseCursorPosition.
...
Added constructors to HIPoint.
2010-11-25 00:30:16 +00:00
the_fiddler
1fc495a06f
Implemented new multi-mouse API on Mac
...
OS X.
2010-11-24 23:49:40 +00:00
the_fiddler
efc864de76
Use main run loop for input callbacks. This way we don't have to run the loop ourselves.
...
Unregister callbacks for removed devices.
2010-11-24 13:13:14 +00:00
the_fiddler
72a38b36cb
Device discovery now works correctly. Added support for input value callbacks.
2010-11-24 12:50:08 +00:00
the_fiddler
1626b3a835
* MacOSGraphicsMode.cs:
...
* CarbonBindings/Agl.cs: Added AGL-based GraphicsMode detection on Mac
OS X. Fixes issue [#1679 ]: "GraphicsMode returns hardcoded mode on
Mac OS X".
2010-11-24 00:55:19 +00:00
the_fiddler
4fd279534b
* OpenTK.csproj:
...
* Platform/MacOS/HIDInput.cs:
* Platform/MacOS/MacOSFactory.cs:
* Platform/MacOS/CarbonBindings/CoreFoundation.cs: Initial work on HID
input manager.
2010-11-22 15:57:26 +00:00
the_fiddler
6c0da79687
Refactored and simplified DisplayDevice detection (devices are now stored in the platform-specific drivers instead of the frontend).
...
Made XRR resolution changes more robust.
Resolution changes now refresh the DisplayDevices on Windows.
2010-11-21 20:16:18 +00:00
the_fiddler
9706c9040b
Added new KeyDown and KeyUp events.
2010-11-08 21:45:15 +00:00
the_fiddler
a3177540b7
Removed dependency on System.Windows.Forms.
2010-11-08 21:44:56 +00:00
the_fiddler
7e344e2ac2
* EventInfo.cs:
...
* AglContext.cs:
* MacOSKeyMap.cs:
* CarbonInput.cs:
* Application.cs:
* MacOSFactory.cs:
* CarbonGLNative.cs:
* CarbonWindowInfo.cs:
* MacOSGraphicsMode.cs:
* QuartzDisplayDeviceDriver.cs: Normalized code formatting.
2010-11-02 19:49:24 +00:00
the_fiddler
2934c9d004
Decoupled new driver API from old public interface.
...
WinRawMouse can now detect mouse disconnection/connection events.
2010-10-29 11:27:40 +00:00
the_fiddler
a070918e93
Removed events that are not part of the INativeWindow interface.
2010-10-28 09:34:13 +00:00
the_fiddler
e13a8e25ae
Added code to raise all available events. Removed unused events from old OpenTK versions. Fixed potential race condition when raising events (an event might become null between the null check and the actual raising).
2010-10-28 09:31:00 +00:00
the_fiddler
86588ea60c
* Source/OpenTK/Input/Mouse.cs:
...
* Source/OpenTK/Platform/Factory.cs:
* Source/OpenTK/Input/InputDriver.cs:
* Source/OpenTK/Input/IMouseDriver.cs:
* Source/OpenTK/Platform/X11/X11Input.cs:
* Source/OpenTK/Platform/X11/X11Factory.cs:
* Source/OpenTK/Platform/Windows/WMInput.cs:
* Source/OpenTK/Platform/IPlatformFactory.cs:
* Source/OpenTK/Platform/MacOS/CarbonInput.cs:
* Source/OpenTK/Platform/Windows/WinFactory.cs:
* Source/OpenTK/Platform/MacOS/MacOSFactory.cs:
* Source/OpenTK/Platform/Windows/WinGLNative.cs:
* Source/OpenTK/Platform/Windows/WinRawMouse.cs:
* Source/OpenTK/Platform/Windows/WinRawInput.cs: Added new MouseDriver
interface and added stub internal implementations.
2010-10-20 14:58:38 +00:00
the_fiddler
e801660ff7
* Source/OpenTK/OpenTK.csproj:
...
* Source/OpenTK/Input/Keyboard.cs:
* Source/OpenTK/Input/InputDriver.cs:
* Source/OpenTK/Input/KeyboardState.cs:
* Source/OpenTK/Input/IKeyboardDriver.cs:
* Source/OpenTK/Platform/X11/X11Input.cs:
* Source/OpenTK/Platform/X11/Functions.cs:
* Source/OpenTK/Platform/X11/X11Factory.cs:
* Source/OpenTK/Platform/Windows/WMInput.cs:
* Source/OpenTK/Platform/X11/X11Keyboard.cs:
* Source/OpenTK/Platform/MacOS/CarbonInput.cs:
* Source/OpenTK/Platform/Windows/WinGLNative.cs:
* Source/OpenTK/Platform/Windows/WinRawInput.cs:
* Source/OpenTK/Platform/Windows/WinRawKeyboard.cs: Added initial
OpenTK.Input.Keyboard implementation for X11.
2010-10-20 14:33:23 +00:00
the_fiddler
a18825a062
* Source/OpenTK/Platform/MacOS/CarbonGLNative.cs: Removed unused
...
code.
2010-10-18 16:14:50 +00:00
the_fiddler
42e0880cbb
* Source/OpenTK/NativeWindow.cs:
...
* Source/OpenTK/INativeWindow.cs:
* Source/OpenTK/Platform/X11/API.cs:
* Source/OpenTK/Platform/X11/X11GLNative.cs:
* Source/OpenTK/Platform/Windows/WinGLNative.cs:
* Source/OpenTK/Platform/MacOS/CarbonGLNative.cs:
* Source/Examples/OpenTK/Test/GameWindowStates.cs: Initial
implementation of CursorVisible API. See issue [#1560 ].
2010-10-18 15:25:25 +00:00
the_fiddler
1f4b5be7d0
Synced trunk with 1.0 branch.
2010-10-02 18:52:34 +00:00
the_fiddler
3f8f9b09e3
Synced with 1.0 branch.
2010-03-11 22:53:11 +00:00
the_fiddler
da7e4c7252
Backported bugfixes from 1.0 branch.
2010-02-03 19:04:42 +00:00
kanato
ea5b4f9f06
* Platform/MacOS/CarbonGLNative.cs: Fix width/height properties on Mac OS X.
2010-01-11 22:08:00 +00:00
the_fiddler
f12cbf1cd5
Synced trunk with 1.0 branch.
2009-11-16 18:45:41 +00:00
kanato
62b65af462
MacOS: Hack for AGL to have access to the display device specified when a NativeWindow is created.
2009-11-09 07:50:21 +00:00
kanato
56412367c4
MacOS: Detect display boundaries so created windows are placed in the right spot.
2009-11-09 07:39:38 +00:00
kanato
c605a05ffb
MacOS: Fix event from user clicking close box to properly report that window doesn't exist anymore.
2009-11-09 07:18:54 +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
2e418e5b6b
Update the context when the native window is resized.
2009-11-06 21:56:35 +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
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
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
e551881f1b
Implemented icon support.
2009-10-18 16:52:07 +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
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
c6516c2255
Moved OpenTK.GLControl to its own project.
2009-08-19 14:17:47 +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
d9d2cfd735
Added missing license information. Made public. Added documentation.
2009-08-11 21:11:46 +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
3dcb9e17e4
Implemented multisampling on MacOS (untested).
2009-06-26 20:06:31 +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
7df9a448d6
Merged gw-next2 branch to trunk.
2009-06-02 15:49:39 +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
kanato
5817a46f65
Implement PointToClient for MacOS.
2009-05-11 01:10:09 +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
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