Commit graph

190 commits

Author SHA1 Message Date
Victor Berger bfc709fdd1 wayland: fix events Moved -> MouseMoved 2015-08-21 18:47:54 +02:00
Peter Atashian 9d387b4f98 Cleanup unused import stuff
Also support i686-pc-windows-msvc

Signed-off-by: Peter Atashian <retep998@gmail.com>
2015-08-21 11:49:10 -04:00
Paul Rouget cb78383da0 Do not call nextEventMatchingMask twice
wait_event used to call nextEventMatchingMask twice. Once with untilDate:distantFuture,
and dequeue:NO to wait until the next event but witout consuming it, and again with
untilDate:distantPast and dequeue:YES to retrieve the event (via poll_events).

For some reason, with osx 10.11, calling nextEventMatchingMask with dequeue:NO never
returns if the user scrolls, freezing the app.

So we now call nextEventMatchingMask only once, with dequeue:YES.
2015-08-20 10:53:44 +02:00
Matt Brubeck 93ce9c24f5 Handle touch events on X11 2015-08-18 15:17:25 -07:00
Colin Sherratt 72fc0dc3a3 Enable grave key on X11 2015-08-17 23:28:34 -04:00
Victor Berger f7f52c21a0 wayland: properly handle 'decorated' option. 2015-08-16 16:21:26 +02:00
Victor Berger 1cea6a65a4 Update wayland backend to draw decorations.
Integrate with wayland-window crate to draw decorations
allowing resize & move of the window.

Leaving the wayland backend as disabled until full usability
is ensured.
2015-08-16 14:12:21 +02:00
Zetok Zalbavar 6c73209746
Prefer GLX over EGL
fixes #314 for me.

I've "tested" change by running examples (which prior to change simply
crashed), but since I did not run those examples successfuly ever before,
I don't know whether they worked as intended.
2015-08-14 15:08:44 +01:00
tomaka 5c60456e16 Merge pull request #567 from paulrouget/opengl-profile-selection-fix
Fix OpenGL profile selection
2015-08-13 08:14:44 +02:00
Paul Rouget 26139f8c5c Fix OpenGL profile selection 2015-08-11 04:41:59 +02:00
Glenn Watson 86408438fc Fix a rare crash in some X11 implementations (details below). 2015-08-11 04:16:01 +02:00
Pierre Krieger 587dedaa9e Correctly handle eglGetDisplay 2015-08-07 16:22:31 +02:00
Pierre Krieger bee3e0e0f0 Get the list of extensions only once 2015-08-07 15:33:33 +02:00
tomaka be0440666b Merge pull request #553 from tomaka/egl-default
Use EGL by default with X11
2015-08-02 14:00:50 +02:00
Pierre Krieger be9c8c0186 Try libEGL.so.1 before libEGL.so 2015-07-28 20:48:12 +02:00
tomaka 829d7a6afc Merge pull request #551 from tomaka/android-headless
Implement headless contexts on android
2015-07-28 19:59:49 +02:00
Pierre Krieger 743cc317d7 Use EGL by default with X11 2015-07-28 19:54:17 +02:00
Pierre Krieger 1f6c4d65a6 Implement headless contexts on android 2015-07-27 10:18:45 +02:00
Pierre Krieger c9b1b91b8c Load the EGL library in platform/windows 2015-07-27 09:52:51 +02:00
tomaka 991b15df87 Merge pull request #548 from tomaka/egl-pbuffer
Add support for creating a pbuffer with EGL
2015-07-27 09:21:13 +02:00
Pierre Krieger 653fbde987 Add support for creating a pbuffer with EGL 2015-07-27 08:33:48 +02:00
Pierre Krieger 6f7a2fa1e7 Indicate the exact error when eglMakeCurrent or eglSwapBuffers fail 2015-07-26 16:56:13 +02:00
Pierre Krieger a97cbd1729 Attempt to fix issues with sRGB 2015-07-25 15:11:29 +02:00
Daggerbot 6d6290df6e Implement Window.set_inner_size on X11. 2015-07-23 22:50:25 +00:00
Akos Kiss 07c8154cb7 Add aarch64-unknown-linux-gnu support
* Adding dependencies
* Replacing `i8` with `c_char` ot `_` (since `c_char` can be
  unsigned on some platforms, aarch64 is one of them)
2015-07-23 06:19:54 +00:00
Pierre Krieger 4b17b7fdbb Filter invalid FBConfigs 2015-07-22 15:15:35 +02:00
tomaka 0e3ce75969 Merge pull request #536 from tomaka/fix-using-freed-memory
Fix calling XFree before reading from memory
2015-07-22 09:39:04 +02:00
Pierre Krieger 65d56e5521 Fix calling XFree before reading from memory 2015-07-22 08:39:31 +02:00
Robert Knight 602a737440 Only listen for mouse events from master devices
XInput2 has a concept of master and slave devices,
where a slave device is the actual physical device,
attached to a master device representing the cursor or keyboard
focus.

See http://who-t.blogspot.co.uk/2009/05/xi2-recipes-part-1.html

Mouse events were being received from both the master and slave
devices, but we are only interested in events from the master device.

Fixes #533
2015-07-22 06:44:51 +01:00
Pierre Krieger 57a1d546e7 Add CreationError::NoAvailablePixelFormat 2015-07-20 19:42:32 +02:00
Pierre Krieger 43dabf131a Add CreationError::OpenGlVersionNotSupported 2015-07-20 19:38:57 +02:00
Pierre Krieger ba5adfa1e1 Add CreationError::RobustnessNotSupported 2015-07-20 19:34:34 +02:00
tomaka 8c364d5cfc Merge pull request #530 from tomaka/glx-enumerate
Enumerate the FBConfigs instead of calling glxChoose
2015-07-19 21:41:26 +02:00
tomaka 8aa6fea832 Merge pull request #529 from tomaka/fix-win32
Fix the windows build
2015-07-19 16:13:24 +02:00
Pierre Krieger 3914d3f801 Enumerate the FBConfigs instead of calling glxChoose 2015-07-19 16:11:45 +02:00
tomaka d838ff7d44 Merge pull request #527 from tomaka/split-glx
Correct window creation on X11
2015-07-19 15:04:51 +02:00
Pierre Krieger b573a161a9 Fix the windows build 2015-07-19 15:03:48 +02:00
Pierre Krieger 9299de0256 Fix EGL context creation 2015-07-19 14:32:41 +02:00
Pierre Krieger baf9b92d3f Correct window creation on X11 2015-07-19 13:53:40 +02:00
tomaka 896640f2e0 Merge pull request #523 from tomaka/egl-split
Split creating an EGL context in two parts
2015-07-19 09:42:56 +02:00
tomaka 7d1d035d9a Merge pull request #510 from robertknight/x11_xinput2
Use XInput2 for event handling
2015-07-18 19:03:13 +02:00
Pierre Krieger 4eacfce59e Split creating an EGL context in two parts 2015-07-18 18:43:23 +02:00
Robert Knight d960753360 Address code review feedback
* Fix an issue where PollEventsIterator::next() would fail to return
   keyboard input and mouse events immediately but instead only
   return them on the next call to next()

 * Inline process_generic_event() and queue_event()
2015-07-13 07:26:07 +01:00
tomaka a15d42069e Merge pull request #519 from tomaka/win32-err
Better win32 error messages
2015-07-09 11:06:51 +02:00
tomaka bb96e8a58a Merge pull request #511 from thelink2012/drop-win32
[0.3] DroppedFile event for Win32
2015-07-09 11:06:38 +02:00
Pierre Krieger bbd31608e8 Better win32 error messages 2015-07-09 08:55:29 +02:00
tomaka 836e53e55a Merge pull request #477 from rozaliev/feature/ios
[WIP] ios support
2015-06-29 09:29:46 +02:00
Robert Knight 573a7aeaf1 Report focus in/out events under X11
Fixes #377
2015-06-28 22:16:43 +01:00
Robert Knight edc95d554d X11 - Ignore scroll events that happen outside of Glutin windows
Scroll deltas are calculated in X11 by comparing the current and
previous absolute values for the scroll axis when a scroll motion
event is received. If the user scrolls whilst the cursor is outside
of the window then an incorrect delta is reported when the cursor
re-enters the window.

Fix this by resetting the last-seen axis values whenever the cursor
re-enters the window.
2015-06-28 22:09:26 +01:00
Robert Knight cb08d9b05b Remove XInput2 code for handling keyboard events
* For the moment we're still using plain core X11 events
   for handling keyboard activity, so remove the XInput2 code for that

 * Small refactoring of X11 input handling and documentation fixes
2015-06-28 21:55:54 +01:00
Robert Knight 94c31e42a4 Use XInput2 for event handling
This provides smooth scrolling for touchpad devices and will
enable support for touch events etc. in future.
2015-06-28 13:25:09 +01:00
Pierre Krieger 23f6f177fe Ignore errors generated by SwapBuffers on windows 2015-06-27 16:16:54 +02:00
Pierre Krieger 942e2a8e85 Fix fullscreen mode on X11 2015-06-26 17:13:22 +02:00
tomaka 86300dfb79 Merge pull request #500 from tomaka/no-error
Add support for the EGL_KHR_create_context_no_error extension
2015-06-26 11:34:14 +02:00
Pierre Krieger 29261c8b50 Fix the discovery of the WGL_EXT_swap_control extension 2015-06-25 20:29:10 +02:00
Pierre Krieger bff79c02ce Add support for the EGL_KHR_create_context_no_error extension 2015-06-25 09:35:58 +02:00
Denilson M. Amorim 826931e2c2 DroppedFile event for Win32 2015-06-23 19:05:37 -03:00
tomaka 40b84577c3 Merge pull request #497 from tomaka/robustness
Add with_robustness and handle robustness on all implementations
2015-06-23 16:46:52 +02:00
Victor Berger 2ac78cadf6 Update wayland dependency to 0.2. 2015-06-23 11:23:10 +02:00
Pierre Krieger dbaca24cde Add with_robustness and handle robustness on all implementations 2015-06-22 19:42:03 +02:00
tomaka 7773996d7b Merge pull request #488 from tomaka/rem-is-closed
Remove the is_closed function
2015-06-17 07:36:16 +02:00
tomaka 90b28c2052 Merge pull request #486 from tomaka/context-error
Handle errors from MakeCurrent and SwapBuffers
2015-06-17 07:36:00 +02:00
ecoal95 0a1a7208c3 glx: Unbind the context if it's the current one 2015-06-17 06:29:25 +02:00
Pierre Krieger 39128dd7e1 Remove the is_closed function 2015-06-16 14:03:58 +02:00
Felix Kaaman bbaa129842 Add transparency support for cocoa. Closes #472 2015-06-16 11:29:17 +02:00
Pierre Krieger f6c26ec593 Handle errors from MakeCurrent and SwapBuffers 2015-06-16 10:44:44 +02:00
Felix Kaaman a8fef35dbf Make legacy functions crash on osx core contexts 2015-06-16 09:00:02 +02:00
tomaka e48c853b9c Merge pull request #484 from pinumbernumber/master
Implement transparency for X11
2015-06-16 08:52:29 +02:00
pinumbernumber da4bcad6e3 Implement transparency for X11 2015-06-14 22:20:32 +01:00
Robert Knight 5b08220df5 Report scroll deltas in lines for non-touch devices on OS X
Scroll deltas on OS X may be reported either as pixel deltas
to scroll by if supported by the device or line/row deltas
otherwise.
2015-06-14 18:09:02 +01:00
Robert Knight f0bab95c4d Express scroll deltas as either line or pixel deltas
Depending on the platform and device, scroll deltas may either
be represented as pixel deltas specifying the amount
in pixels to scroll or they may be expressed in 'lines' or 'chunks'
for low resolution devices (eg. a traditional mouse wheel).

Pixel deltas are currently available on OS X. X11 currently
supports only integer line deltas, though pixel deltas
are available via XInput2. Windows supports fractional
line deltas.
2015-06-13 23:19:31 +01:00
Evgeny Rozaliev 7053837ac1 [add] content scale 2015-06-08 12:26:42 +03:00
Pierre Krieger 30c525a5b1 Fix leaking color map and destruction of IM 2015-06-05 16:03:07 +02:00
Evgeny Rozaliev 84703027d6 [add] ios support 2015-06-05 16:38:35 +03:00
tomaka 70c88cf18f Merge pull request #475 from fkaa/cocoa-glcap
Add OS version detection on cocoa for selecting latest gl version. Fixes #470
2015-05-26 16:12:12 +02:00
Eduard Bopp 267b2c027a Fix set_cursor_state on X11
When the state is not changed, no code must be executed. Such no-ops previously
hit the unimplemented cursor hiding.
2015-05-25 21:01:39 +02:00
Felix Kaaman f74f0b52a3 Add OS version detection on cocoa for selecting latest gl version. Fixes #470 2015-05-24 17:37:41 +02:00
Pierre Krieger 9117bcf3d3 Switch to dwmapi 2015-05-24 09:10:45 +02:00
Pierre Krieger 81314f91d8 Add API for transparency and decorations and add support for win32 2015-05-24 09:10:44 +02:00
tomaka 1377f276b7 Merge pull request #469 from fkaa/cocoa-vsync
Fix vsync not being disabled by default in cocoa
2015-05-23 19:25:56 +02:00
Felix Kaaman e1ab181cdb Fix vsync not being disabled by default in cocoa 2015-05-23 18:35:47 +02:00
Pierre Krieger ead31e3ef8 Several WGL cleanups 2015-05-22 11:54:28 +02:00
Pierre Krieger 9c21899249 Fix the compilation on 32bits linux 2015-05-21 21:31:41 +02:00
Pierre Krieger 01ecd24fe2 Allow creating EGL contexts on win32 with the AMD DLLs 2015-05-21 18:59:30 +02:00
Pierre Krieger ea17038ac2 Detach wgl and win32 2015-05-21 16:47:19 +02:00
Avi Weinstock 966c2f2e54 fixup! Fix handling of numpad keys w.r.t. numlock (derived from fix mentioned at http://www.kaffe.org/pipermail/kaffe/2000-April/175201.html). 2015-05-18 13:02:23 -04:00
Avi Weinstock b6a63ad11f Fix handling of numpad keys w.r.t. numlock (derived from fix mentioned at http://www.kaffe.org/pipermail/kaffe/2000-April/175201.html).
Conflicts:
	src/api/x11/window.rs
2015-05-18 12:55:59 -04:00
Pierre Krieger 3376332a85 Rework the X implementation to use only one X connection 2015-05-17 19:33:07 +02:00
Pierre Krieger 848f6cd2a7 Fix GLX creating only 3.0 contexts 2015-05-16 11:37:58 +02:00
Victor Berger 8150d1216e Implement most of the keysyms for wayland. 2015-05-15 13:04:23 +02:00
Victor Berger 178b7b133b UTF8 keyboard events for wayland. 2015-05-15 12:20:25 +02:00
Victor Berger 02bd3758ee Basic raw keyboard handling. 2015-05-14 21:46:29 +02:00
Victor Berger 9e489fee01 Update to new Platform structure. 2015-05-13 08:32:20 +02:00
Victor Berger 562d6cd1e3 Move WaylandContext in its own file. 2015-05-13 08:12:09 +02:00
Victor Berger 40322a2c69 Implement some more functions for wayland.
- set/get_inner_size()
 - set_title
2015-05-13 08:12:09 +02:00
Victor Berger 1278d9779d wayland: Fix MonitorID::get_dimensions() and fullscreen support. 2015-05-13 08:12:09 +02:00
tomaka 41af4406cb Merge pull request #448 from vberger/x-wayland-split
Make platform::linux generic over X11 and Wayland
2015-05-13 07:20:40 +02:00
Victor Berger 310b44f35b Make platform::linux generic over X11 and Wayland. 2015-05-12 22:49:03 +02:00
Pierre Krieger b3044809c2 Fixes in EGL context creation 2015-05-12 21:28:56 +02:00
Mike Blumenkrantz 1519459471 implement get_platform_window() return for X11 2015-05-11 21:35:06 -04:00