Commit Graph

636 Commits

Author SHA1 Message Date
emersion 10ecf871f2
Remove wlr_backend.events.{output_remove,device_remove} 2018-02-12 10:36:43 +01:00
emersion 5e58d46cc1
Add wlr_signal_emit_safe 2018-02-12 09:12:31 +01:00
emersion a9632341bf
output_damage: listen to transform and scale output events 2018-02-11 13:07:00 +01:00
emersion ec837e3c9e
Introduce wlr_output_damage 2018-02-11 12:49:30 +01:00
emersion bf6d245400
Swap buffers with damage 2018-02-09 22:54:14 +01:00
emersion cdd55b5d19
Merge remote-tracking branch 'upstream/master' into output-damage 2018-02-09 14:50:26 +01:00
Vincent Vanlaer 8dcb2f2d6b Prevent cursor from getting stuck at infinity 2018-02-04 22:40:24 +01:00
emersion 1cea73d2d8
rootston: fix rotated views damage tracking 2018-02-04 11:59:04 +01:00
emersion faa57341ca
output: replace raw GL calls by wlr_renderer_* calls 2018-02-03 10:01:42 +01:00
emersion 3d3ea32137
Merge remote-tracking branch 'upstream/master' into output-damage 2018-02-03 00:15:44 +01:00
emersion 8eed857292
output: add destroy signal for wlr_output_cursor 2018-02-01 12:08:35 +01:00
emersion edb4c8d858
output: damage whole output when fullscreen surface size changes 2018-01-30 22:06:10 +01:00
emersion a295c805c4
output: fix output_damage_whole for scaled outputs 2018-01-30 21:42:12 +01:00
emersion babdd6ccf7
backend: fix use-after-free when destroying backends
The backend destroy signal is emitted before the output_remove
signal is. When the destroy signal is emitted listeners remove
their output_remove listener, so the output_remove signal is never
received and listeners have an invalid output pointer.

The correct way to solve this would be to remove the output_remove
signal completely and use the wlr_output.events.destroy signal
instead. This isn't yet possible because wl_signal_emit is unsafe
and listeners cannot be removed in listeners.
2018-01-30 19:45:57 +01:00
emersion 704130cc11
output: fix performance issues with wlr_output_schedule_frame 2018-01-30 14:45:02 +01:00
emersion d498855b9d
backend/drm: fix hw cursor position on rotated and scaled outputs
output: add wlr_output_transformed_resolution
2018-01-30 10:23:35 +01:00
emersion 51c22d39a4
Merge remote-tracking branch 'upstream/master' into output-damage 2018-01-29 23:24:09 +01:00
emersion 2cc989e097
output: restrict provided damage to output bounds 2018-01-29 23:21:30 +01:00
Tony Crisci ed5b1fdedd
Merge pull request #580 from emersion/screenshooter-renderer-backport
Backport screenshooter fixes from the renderer redesign v1
2018-01-29 17:13:23 -05:00
emersion 7881d039b6
rootston: fix output_damage_whole
This should fix artifacts when leaving fullscreen on rotated outputs.
2018-01-28 21:58:02 +01:00
emersion 5bbff20b8d
Fix assertion failed in data_source_notify_finish 2018-01-28 21:48:05 +01:00
emersion e049610b47
surface: copy buffer damage to surface damage 2018-01-28 21:29:51 +01:00
emersion 1ee61dbd0f
Merge remote-tracking branch 'upstream/master' into output-damage 2018-01-28 21:22:50 +01:00
emersion 485aa87468
output: fix fullscreen on transformed outputs 2018-01-28 10:40:38 +01:00
emersion 861d5bdff2
surface: fix damage when resizing a surface in QT apps 2018-01-27 21:49:40 +01:00
Guido Günther 1633b8d793 wlr_keyboard: use correct printf format string for keymap_size
keymap_size is a size_t. Otherwise the build fails on arm like

../types/wlr_keyboard.c: In function 'wlr_keyboard_set_keymap':
../include/wlr/util/log.h:34:17: error: format '%lu' expects argument of type 'long unsigned int', but argument 5 has type 'size_t {aka unsigned int}' [-Werror=format=]
  _wlr_log(verb, "[%s:%d] " fmt, _strip_path(__FILE__), __LINE__, ##__VA_ARGS__)
                 ^
../types/wlr_keyboard.c:218:3: note: in expansion of macro 'wlr_log'
   wlr_log(L_ERROR, "creating a keymap file for %lu bytes failed", kb->keymap_size);
   ^~~~~~~
../types/wlr_keyboard.c:218:50: note: format string is defined here
   wlr_log(L_ERROR, "creating a keymap file for %lu bytes failed", kb->keymap_size);
                                                ~~^
                                                %u
2018-01-27 12:23:26 +01:00
emersion 7adf13e284
Fix flickering when switching VT 2018-01-27 11:16:42 +01:00
emersion 7111dd79ef
rootston: damage tracking for rotated views 2018-01-27 10:43:17 +01:00
emersion a011a1cb07
screenshooter: request a buffer swap 2018-01-26 22:41:19 +01:00
emersion 8d58ed502b
output: add wlr_output_schedule_frame 2018-01-26 22:39:23 +01:00
emersion ece2c1e4e2
Damage tracking for transformed outputs 2018-01-26 22:11:09 +01:00
emersion 6281deb90f
Merge remote-tracking branch 'upstream/master' into output-damage 2018-01-24 14:48:01 +01:00
Markus Ongyerth f946c10cb1 re-adds wlr_output_update_enabled
Re-add the wlr_output_update_enabled to make sure
wlr_output::events.enable is called when the output enabled state
changes.
2018-01-24 10:23:48 +01:00
emersion 4fa90b0511
Backport screenshooter fixes from the renderer redesign v1
This backports some changes to #319 to fix the screenshooter data
format. This also adds wlr_backend_get_renderer which will be
useful to support multiple renderers.
2018-01-23 22:06:54 +01:00
Markus Ongyerth 3cf7225cec decouples outputenable state and wl_output global
This decouples wlr_output_enable and the wl_global.
The previously internal functions wlr_output_(destroy/create)_global are
exposed and used automatically in the wlr_output_layout to create/tear
down the global.
The compositor can handle them itself if it wants to, but I think this
is the right moment to create/destroy the wl_output when the
wlr_output_layout is used.
2018-01-23 17:40:12 +01:00
emersion 4d282c8590
rootston: damage tracking for drag icons 2018-01-23 13:37:58 +01:00
emersion 3f1c4f5be7
rootston: damage tracking for wl_shell 2018-01-22 16:01:32 +01:00
emersion a8cb02f585
surface: add damage when subsurface moves 2018-01-22 10:34:23 +01:00
emersion f5507ec677
cursor: fix segfault when destroying a wlr_output_layout with a wlr_cursor attached 2018-01-22 09:29:52 +01:00
emersion 59c53e8333
Merge remote-tracking branch 'upstream/master' into output-damage 2018-01-21 22:18:06 +01:00
emersion 66ae4071a7
rootston: damage tracking for xdg popups 2018-01-21 21:06:37 +01:00
Johannes Schramm dcc743047b style: include brackets for if/while/for, even if it's a single statement 2018-01-21 16:28:21 +01:00
emersion eeffe11337
surface: add wlr_surface new_subsurface and wlr_subsurface destroy events 2018-01-21 14:22:33 +01:00
emersion 0365b587f0
output: add damage tracking via buffer age 2018-01-21 00:06:35 +01:00
emersion 4ca38b84ed
backend/drm: fix hardware cursors not moving
This adds back `wlr_output::needs_swap`. This allows a backend to
request buffer swaps even if the output isn't damaged. This is
needed by the DRM backend to trigger pageflips when the cursor
moves.
2018-01-20 16:43:14 +01:00
emersion ddafcb86a2
surface: add resize damage 2018-01-20 00:52:43 +01:00
emersion e29a0df8c1
output: fix software cursors damage tracking 2018-01-19 14:08:47 +01:00
emersion a0f24b809e
output: add damage event 2018-01-19 13:13:46 +01:00
emersion 443bd4cd89
output: fullscreen surface damage tracking 2018-01-19 11:20:27 +01:00
emersion f061a1da63
output: fix software cursor artifacts 2018-01-18 22:18:53 +01:00