thefiddler
f013c44ba1
Fixed Tilde and Number1 scancodes
2013-10-11 09:51:08 +02:00
thefiddler
8dcb8601a2
Normalized line endings
...
Hopefully this is the first and last time we have to do this.
2013-10-11 01:58:54 +02:00
Stefanos A
73e3614338
Merge branch 'scancodes'
...
Conflicts:
Source/OpenTK/OpenTK.csproj
Source/OpenTK/Platform/Windows/WinFactory.cs
2013-10-11 01:05:55 +02:00
Stefanos A
5aba35668b
Always Set HIDPI flag
...
It does not to set this flag on previous SDL2 versions, it is ignored silently when not supported.
2013-10-10 00:34:15 +02:00
Stefanos A
459313dca8
Fixed line endings
2013-10-10 00:18:59 +02:00
Stefanos A
fb86334835
HIDPI support requires SDL > 2.0.0
...
SDL_GL_GetDrawableSize was introduced after 2.0.0, so we need to check for that version before we call this method. Fixes MethodNotFounException on vanilla libsdl2-2.0.0 on linux.
2013-10-07 14:17:42 +03:00
Stefanos A
d81bedf5f8
Moved all input processing to Sdl2InputDriver
...
This reduces the duplication of code between Sdl2NativeWindow and
Sdl2InputDriver. Sdl2InputDriver is now solely responsible for handling
input.
2013-10-04 10:02:19 +02:00
Stefanos A
bad2b7b6d7
Implemented IDisposable in Sdl2Joystick
...
Sdl2Joystick calls SDL_JoystickOpen, which means we must call
SDL_JoystickClose on shutdown.
2013-10-04 10:00:57 +02:00
Stefanos A
79def664b8
No separate Factory.Embedded for SDL2
...
Sdl2Factory supports both desktop and embedded profiles, there is no
need to construct a separate Embedded profile.
2013-10-04 09:57:43 +02:00
Stefanos A
17b4f62151
Sdl2JoystickDriver.Poll() and axis fixes
2013-10-04 02:37:41 +02:00
Stefanos A
af67a96759
Initial implementation of IJoystickDriver API
2013-10-04 01:39:22 +02:00
Stefanos A
b4c29d802b
Add support for HiDPI modes
...
When HiDPI is enabled, the size of the OpenGL surface (specified in
pixels) may no longer correspond to the size of the window (specified
in points). Width, Height, ClientSize and ClientRectangle return the
size of the OpenGL surface in device-dependent pixel coordinates
(origin: top-left pixel of the surface). Bounds and Size return the
size of the window in device-independent point coordinates (origin:
desktop).
2013-10-04 01:38:19 +02:00
Stefanos A.
b3a0b78454
Use locale-independent scancodes
...
This significantly improves the usability of keyboard input, by allowing
a common input scheme to be used on different keyboard layouts. Text
input will be facilitated through a new API.
2013-10-03 20:53:34 +02:00
Stefanos A.
3f81bc26d4
Removed support for < Windows XP
...
The support burden for Windows versions prior to XP was too large, plus
the relevant code was completely untested. Removing that will allow us
to focus on the things that really matter.
2013-10-03 20:51:36 +02:00
Stefanos A
913c4f16e6
Throw extension if context creation fails
...
This aligns behavior with that of the other platforms.
2013-10-03 17:22:13 +02:00
Stefanos A.
0e221a0ce5
Load ES entry points even on desktop
...
Some drivers / operating systems export ES entry points as extensions on regular "desktop" GraphicsContexts. Attempt to load them even if the user has not explicitly asked for an ES context.
2013-10-03 16:42:38 +02:00
Stefanos A
be7200d37e
Merge branch 'sdl2' of https://github.com/thefiddler/opentk
...
Conflicts:
Source/OpenTK/Platform/SDL2/Sdl2NativeWindow.cs
2013-10-03 15:11:59 +02:00
Stefanos A.
f2eda16458
Serialize Sdl2NativeWindow methods
...
This change, along with moving DestroyWindow() to the Dispose() method
fixes crashes on shutdown.
2013-10-03 14:59:30 +02:00
Stefanos A.
3c867838e6
Reload WGL entry points in WinGLContext()
...
This fixes AccessViolationException when creating multiple contexts on
Intel hardware.
2013-10-03 14:04:34 +02:00
Stefanos A
d217e379d4
Added support for OpenGL ES through SDL2
...
If SDL2 is supported, the PlatformFactory will now use it for creating the OpenGL ES context. Previously, it would revert to the native drivers when GraphicsContextFlag.Embedded was specified.
2013-10-03 11:17:21 +02:00
Stefanos A.
5051190b01
MouseButtonUp and MouseMove fixes
...
MouseMove no longer leaves the window borders when the cursor is
invisible. MouseButtonUp events are now reported even when they occur
outside the window. This aligns SDL2 behavior with the native drivers.
2013-10-02 17:55:30 +02:00
Stefanos A.
b077597bc1
Create Sdl2NativeWindow hidden
...
This conforms to the other platform drivers and looks better in general
(no delay between window creation and OpenGL context creation.)
2013-10-02 16:31:22 +02:00
Stefanos A.
4d7ba20a03
Fixed unsetting current context in SDL2
...
SDL_GL_MakeCurrent(IntPtr.Zero, IntPtr.Zero) is the correct way to
remove the current OpenGL context from the calling thread. Fixes
threaded rendering on Windows.
2013-10-02 16:26:47 +02:00
Stefanos A
40cfcfaf25
Improved diagnostics in Dispose()
...
Leaked and disposed resources are now always reported.
2013-10-02 01:14:26 +02:00
Stefanos A
6360156d99
Added Sync object for SDL
2013-10-02 01:13:06 +02:00
Stefanos A
c77439ea6b
Marked class as partial
...
This allows extension of the class without touching the upstream code.
2013-10-02 01:12:12 +02:00
Stefanos A
31f2df094b
Fixed invalid version string on git
...
Git commit hashcodes are not compatible with the 16bit integer values found in .Net version numbers. Use the git commit count as a version number instead.
2013-10-02 00:05:59 +02:00
Stefanos A.
7460452b26
MakeCurrent(null) should make context non-current
...
This fixes the crash in the "GameWindow Threading" example.
2013-10-01 22:13:33 +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
Stefanos A
5bb23585b9
Merge remote-tracking branch 'origin/master' into sdl2
2013-09-30 18:29:55 +02:00
Stefanos A.
ddd070579a
Workaround for NRE on WinRawMouse driver
...
On some systems, the Windows Raw Input driver fails to find the name of
a mouse device, causing a NRE. Since the name is not vital information,
a dummy name is generated as a workaround.
2013-09-30 18:27:13 +02:00
Stefanos A.
ea0c845eb0
Attempted to fix key modifier state
...
SDL2 does not report keydown and keyup events on modifiers keys until
you release them. Attempted to fix this using SDL_GetModifierState, but
this does not appear to work. Should hit upstream.
2013-09-30 14:20:33 +02:00
Stefanos A.
c53773f4ec
Use scancodes for KeyboardDevice states
...
This resolves the issue where different layouts would return different
keys when pressing the same physical key. A new API must be introduced
for text input.
2013-09-30 13:51:31 +02:00
Stefanos A.
5e35411dd1
Fixed return values of keyboard functions
...
SDL_GetKeyFromScancode and SDL_GetScancodeFromKey should return a
SDL_Keycode or SDL_Scancode respectively, instead of void.
2013-09-30 13:49:53 +02:00
Stefanos A.
2d19edf3fe
Renamed Sdl2InputBase to Sdl2InputDriver
...
Sdl2InputDriver describes the role and function of this class more
accurately.
2013-09-30 13:13:02 +02:00
Stefanos A.
7cb3965e25
Made internal SDL2 API private
2013-09-30 12:22:51 +02:00
Stefanos A.
5a55cb5cca
Implemented SDL2 mouse and keyboard drivers
2013-09-30 12:22:25 +02:00
Stefanos A.
cfdb5bc95a
Free SDL surface after updating the window icon
...
The SDL surface is no longer needed and will cause a memory leak if not
freed. Additionally, the decoded BitmapData should not be unlocked until
after updating the window icon, as it may be moved by the GC otherwise.
2013-09-29 23:36:28 +02:00
Stefanos A.
420ec232f3
Fixed decoding of Icons
...
The rgba mask for decoding icon surfaces was incorrect. Icons should
appear as expected now.
2013-09-29 23:08:51 +02:00
Stefanos A.
6245ffe3ef
Updated license information
2013-09-27 23:07:23 +02:00
Stefanos A.
2666125b24
Implemented WindowState, WindowBorder and Icon
...
SDL2 suffers many of the issues we encountered when implementing
OpenTK.Platform.Windows. Workarounds are now in place to make
WindowState changes behave reasonably.
2013-09-27 23:01:46 +02:00
Stefanos A.
56d7e4e564
Use OpenGL window flag and switch to "fake" fullscreen mode
...
The OpenGL flag is required when using SDL2 on Windows. Fake fullscreen
works much better on modern monitors and systems with multiple monitors.
2013-09-27 18:57:05 +02:00
Stefanos A.
5df5447ff9
Add debug message when context creation fails
2013-09-27 18:55:58 +02:00
Stefanos A.
3398902940
Use Wgl.Import.GetCurrentContext DllImport directly
...
Wgl is implemented using the regular DllImport + delegate approach, in
order to support extensions. The delegates have not been armed at this
point, so we need to use the DllImport directly.
The whole wgl API should be revisited (we are using only a tiny
portion.)
2013-09-27 18:55:38 +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
thefiddler
89845d5ff9
Integrated sdl2-cs bindings for sdl2
...
This is using the sdl2/pure branch of https://github.com/thefiddler/SDL2-CS.git which contains the SDL2 bindings without MiniTK.
2013-09-27 14:33:52 +02:00
thefiddler
3989b94e68
Merge commit 'ed45dddb98c8250a33505c953b6c60bf7a854ffb' as 'Source/OpenTK/Platform/SDL2/sdl2-cs'
2013-09-27 14:26:50 +02:00
thefiddler
2e1bcaf280
Added support for high-dpi mode on Windows.
...
The platform factory for windows now calls SetProcessDPIAware
in order to enable support for high-dpi modes. The relevant
DllImport has been added to API.cs
2013-09-26 01:35:59 +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
zastrowm
e7ba5e789f
Update whitespace issues to conform to the rest of the document
2013-04-26 21:09:12 -05:00
zastrowm
5f336dd9f9
Change WinRawMouse.ProcessMouseEvents to call code directly instead of using lambdas
...
Change WinRawMouse.ProcessMouseEvents to call code directly instead of using lambdas. The lambdas caused memory allocations and were unneeded
2013-04-26 21:06:08 -05:00
Dean Ellis
9a39949249
Merge pull request #1 from elisee/fix-client-rectangle-setter
...
Fix ClientRectangle setter on Windows (WinGL) & Linux (X11)
2013-03-22 16:29:36 -05:00
Tom Edwards
6c35e8ef24
Merge remote-tracking branch 'origin/ScanCodeKeyboardBranch'
2013-02-17 14:58:16 +00:00
Jacob Hauberg Hansen
af74d97903
Fix NullPointerException on Windows 8.
2013-01-26 14:27:26 +01: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
bf1401e115
Fixed the issues caused by merging in our changes as patches from the old repo.
2013-01-16 18:08:03 -08:00
Robert Rouhani
819c02c445
More hacking for gamepads
2013-01-16 17:59:52 -08:00
Robert Rouhani
b5591e1eee
Started implementing GamePad
2013-01-16 17:56:31 -08:00
Andy Korth
fa422dca2a
Fix Windows 8 Keyboard, OpenTK issue 3198
2013-01-14 13:09:55 -06:00
Andy Korth
5b0db16a89
Mouse up events in Windows occur regardless of where on the screen the cursor is. OpenTK issue 2133
2012-12-21 21:12:59 -06: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
224a296220
Address mouse on windows 8 for OpenTK issue 3198
2012-12-20 15:18:52 -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
1e739bb4ff
Added minimal SystemEvents definition to allow compilation on mobile devices.
2011-12-08 00:14:36 +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
5d61e042a0
GraphicsMode was not set when initializing a DummyGLContext with an explicit handle. Corrected now.
2011-12-06 21:54:20 +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
9c6a4bb2df
Fixed coordinate transform for CursorVisible = false on Windows. Fixes issue [ #2416 ]: "Hided mouse cursor problem".
...
Removed unnecessary constructors from Win32Rectangle struct.
2011-08-25 13:38:08 +00:00
the_fiddler
544de30874
Fixed eglGetProcAddress entry point (was eglCopyBuffer).
2011-05-07 18:52:47 +00:00
the_fiddler
da5371e92b
Added PFD_SUPPORT_COMPOSITION on Vista and higher, to avoid inadvertently disabling Aero.
...
Allow non-accelerated formats when all accelerated ones fail. Fixes issue [#2224 ]: "Getting GraphicsModeException from WinGraphicsMode constructor".
2011-02-09 00:23:43 +00:00
the_fiddler
d19244feb5
Add DrawToWindow and SupportOpenGL flags to GetModesARB and check whether Wgl.Arb.ChoosePixelFormat() worked correctly (to avoid undefined results).
2011-01-18 22:34:06 +00:00
the_fiddler
774374efc0
* Egl.cs:
...
* EglContext.cs:
* EglGraphicsMode.cs: Added a parameter to indicate which ES renderer
version we wish to use. Fixes issue [#2247 ]: "CreateEGLGraphicsMode
should select the correct renderer".
2011-01-18 00:29:38 +00:00
the_fiddler
d22c7312d9
* EglWindowInfo.cs: Corrected error checking for
...
CreateWindowSurface. Fixes issue [#2248 ]: "EGL CreateWindowSurface
function is incorrect".
2011-01-17 23:55:48 +00:00
the_fiddler
a964d3a9de
* EglGraphicsMode.cs:
...
Removed unused Egl.GetConfigs call.
2011-01-14 10:28:37 +00:00
the_fiddler
b987b10c70
* EglGraphicsMode.cs:
...
Added missing RENDERABLE_TYPE bits to EGL mode selection. This is
required by the OpenGL ES spec.
2011-01-14 01:57:59 +00:00
the_fiddler
26075f0243
Do not try to register device when device description is empty.
2010-12-03 12:29:01 +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
1d33d1000e
[Win32] Implemented Mouse.SetPosition via SetCursorPos. This was refreshingly simple, the function works exactly as expected! (unlike XWarpPointer on X11)
2010-11-23 22:10:49 +00:00
the_fiddler
23eaef0c70
Avoid loading Wgl entry points automatically. This is now explicitly done through WinGLContext.
2010-11-23 22:08:53 +00:00
the_fiddler
45a623a873
* X11Mouse.cs: Updated comments to clarify the capabilities of the driver.
2010-11-23 19:26:35 +00:00
the_fiddler
32a564c990
* XI2Mouse.cs: Removed unused code.
2010-11-23 19:21:28 +00:00
the_fiddler
88cbcc3a04
* X11Mouse.cs: Added SetPosition() implementation.
...
Added detection of pointer warping and used it to fake relative
motion.
2010-11-23 19:21:17 +00:00