Commit graph

3638 commits

Author SHA1 Message Date
thefiddler 4406d2db0d [Linux] Fixed keyboard polling 2014-07-16 14:28:27 +02:00
thefiddler 468a8518cb [Linux] Fixed poll() in libinput event loop 2014-07-16 14:28:27 +02:00
thefiddler 67727d2e9b [Linux] Completed libinput keyboard driver implementation 2014-07-16 14:28:27 +02:00
thefiddler c5abbe8030 [Linux] Implemented libinput keyboard input 2014-07-16 14:28:27 +02:00
thefiddler 4a53a5511a [Linux] Disabled TTY keyboard driver in favor of libinput
The TTY keyboard driver requires a robust cleanup method to avoid
hogging the keyboard/console after the process exists. Without
this, it does not make sense to use enable this driver.
2014-07-16 14:28:27 +02:00
thefiddler e7bd311fbd [Linux] Improve checks for TTY 2014-07-16 14:28:27 +02:00
thefiddler 9e73358dd7 [Linux] Implemented TTY and libinput keyboard drivers 2014-07-16 14:28:27 +02:00
thefiddler 97a539258b [Linux] Added stub TTY and libinput IKeyboardDriver2 2014-07-16 14:28:27 +02:00
thefiddler 9bc774f78c [KMS] Query GPUs lazily 2014-07-16 14:28:27 +02:00
thefiddler 69dbdb7d67 [KMS] Fixed Gbm.DestroyDevice entry point 2014-07-16 14:28:27 +02:00
thefiddler 452bafdbb1 [KMS] Fixed NRE in Toolkit.Init(); improved resource cleanup 2014-07-16 14:28:27 +02:00
thefiddler 753032b844 [KMS] Added DRM/GBM framebuffer implementation 2014-07-16 14:28:27 +02:00
thefiddler 19b34446bb [ES][GL] Print name when loading bindings (debug only) 2014-07-16 14:28:27 +02:00
thefiddler d8adf92feb [EGL] Added support for desktop GL rendering
On Linux, EGL can be used to initialize a desktop GL context.
This is especially true on KMS, Wayland and Mir.
2014-07-16 14:28:27 +02:00
thefiddler 5da5ac0fa7 [EGL] Egl.GetError() now returns ErrorCode 2014-07-16 14:28:27 +02:00
thefiddler f9d20b5e3e [KMS] Improved GBM surface format selection 2014-07-16 14:28:27 +02:00
thefiddler 6454822116 [KMS] Create window surface 2014-07-16 14:28:27 +02:00
thefiddler 6f6798de62 [KMS] Added new Linux KMS driver 2014-07-16 14:28:27 +02:00
thefiddler c3451530a6 [KMS] Initial implementation 2014-07-16 14:28:27 +02:00
thefiddler c1c6b4269b Merge pull request #149 from thefiddler/mac_stability
[Mac] Improved stability for NSOpenGLPixelFormat
2014-07-15 06:06:41 +00:00
thefiddler 32958ffcce [Mac] Improved stability for NSOpenGLPixelFormat
Non-accelerated contexts are now considered iff no accelerated contexts
are available. Additionally, a GraphicsException will be thrown if
context construction fails for any reason, instead of causing a runtime
crash.
2014-07-14 12:27:28 +02:00
Fraser Waters 6dda84dc77 Change to correct throw statement to preserve stack trace. 2014-06-22 20:40:15 +01:00
thefiddler cb861446ab Merge pull request #140 from thefiddler/glspecs_june2014
[ES][GL] Sync with June 2014 specification
2014-06-20 11:35:54 +02:00
thefiddler 4acbc2268d Merge pull request #141 from Frassle/marshal
Fixes bugs in String marshalling.
2014-06-20 08:45:03 +02:00
Fraser Waters 22760a4032 Fixes bugs in String marshalling.
Fixes two issues:
1. FreeStringArrayPtr used the wrong variable in the offset to
ReadIntPtr causing an access violation.
2. Better cleanup of memory in MarshalStringArrayToPtr when any alloc
fails.
2014-06-19 22:51:47 +01:00
thefiddler 7629d45907 [ES][GL] Regenerated bindings 2014-06-19 16:24:49 +02:00
thefiddler f0fd13a23e Merge pull request #138 from thefiddler/xi2exitfix
[X11] Fix hang when exiting XI2 input thread
2014-06-18 10:26:06 +02:00
thefiddler f889835dd5 Merge pull request #135 from thefiddler/xquartz
XQuartz support (X11 on Mac)
2014-06-17 09:06:05 +02:00
thefiddler ea5f1ad1e8 [X11] Send ClientMessage to exit input event loop
To do that, we need a custom InputOnly window. This window is only used
for receiving the exit ClientMessage - XI2 input is still received
through the root window.

Fixes issue https://github.com/mono/MonoGame/issues/2711
2014-06-17 09:05:29 +02:00
thefiddler 7accefea3e [X11] Remove unused XCreateWindow overloads 2014-06-17 08:51:00 +02:00
thefiddler e39e4fbb37 [X11] Construct X11 Factory first if enabled
This allows us to use X11 on Windows and Mac, if explicitly requested
by the user via `ToolkitOptions.Backend`.
2014-06-15 14:32:43 +02:00
thefiddler 9d840e5969 [X11] Added glXQueryVersion DllImport. 2014-06-15 14:30:40 +02:00
thefiddler 9075129df0 [X11] Throw exception if GLX is not supported
You cannot create an X11/OpenGL context without the GLX extension.
OpenTK will now throw a `NotSupportedException` when this condition is
encountered.

In some cases, it may be possible to enable the EGL backend by passing
`GraphicsContextFlags.Embedded` to the `GraphicsContext` constructor.
2014-06-15 14:30:23 +02:00
thefiddler c657b3d11e [X11] Check before monitoring /dev/input
This avoids a crash on non-Linux systems that do not support /dev/input.
2014-06-15 14:29:07 +02:00
thefiddler 40f1668989 [X11] Implement support for XQuartz (X11 on Mac) 2014-06-15 14:28:23 +02:00
thefiddler ef0ebb0a64 Merge branch 'xquartz' of https://github.com/thefiddler/opentk into xquartz 2014-06-15 14:24:44 +02:00
thefiddler 8373782fad [Mac] Fix Mouse.GetState() h-wheel
External mice will now report horizontal scrolling in the low-level
`Mouse.GetState()` API. The touchpad apparently creates an emulated
mouse device that does not report horizontal wheel scrolling events.

Touchpad support probably requires a proper multitouch implementation.
2014-06-10 17:43:31 +02:00
thefiddler 5e63c5fa5c [Mac] Add note for higher precision pixel scroll 2014-06-10 16:41:09 +02:00
thefiddler 2a4f634848 [Mac] Match win32 scrolling coordinates 2014-06-10 16:40:44 +02:00
thefiddler 525af589f1 [X11] Match win32 wheel coordinate system
OpenTK uses the win32 wheel coordinate system, where
(+h, +v) = (right, up). XI2 uses (+h, +v) = (right, down)
instead, so we need to flip the vertical offset.

Fixes issue #133 and https://github.com/mono/MonoGame/issues/2686
2014-06-10 14:53:23 +02:00
thefiddler 829185a68b [ES][GL] Regenerated bindings 2014-06-08 09:58:01 +02:00
thefiddler aa4e8ef9aa Merge pull request #128 from Frassle/half-fix
Fix a bug in single->half conversion.
2014-06-02 13:03:30 +02:00
Fraser Waters 5481aa7097 Fix a bug in single->half conversion.
The original C code had if(m & 0x00800000) which is true if the
expresssion does not evaluate to zero. This was inncorretly translated
to the C# code if((m & 0x00800000) == 1) which only evaluates true if
the expression evalaute to 1, which it never does. The correct test is
to test not equal to zero (!= 0).
2014-06-02 11:16:43 +01:00
thefiddler 897c4d7540 [SDL] Removed unnecessary if-branch 2014-05-30 13:50:11 +02:00
thefiddler 7153a69466 [SDL] Do not attempt to use versions < 2.0.0
Versions prior to 2.0.0 are not ABI-compatible with 2.0.x and
attempting to use those will result in random instability. We now
explicitly check the SDL2 version before enabling the SDL2 backend.
2014-05-30 13:47:27 +02:00
thefiddler 256266c9a6 [X11] Added dllmap for Mac OS X (XQuartz) 2014-05-20 18:36:58 +02:00
thefiddler 0fcd47132c Merge pull request #125 from thefiddler/r112
Prepare for 1.1.2 release
2014-05-20 01:11:41 +02:00
thefiddler 5b529647c9 [Mac] Fixed NRE and initial position on 64bit 2014-05-20 01:00:54 +02:00
thefiddler c65e2a4d9e [Mac] Added NSFloat implementation 2014-05-20 00:14:57 +02:00
thefiddler ea0ab3243e Merge pull request #123 from thefiddler/eglfix
[EGL] Fix initialization and extension loading
2014-05-19 23:14:41 +02:00