Commit Graph

211 Commits

Author SHA1 Message Date
Drew DeVault f444a0d14c Implement layer surface damage 2018-03-27 18:50:32 -04:00
Drew DeVault 4bf936360d Arrange & render layer surfaces 2018-03-27 18:50:09 -04:00
Dominique Martinet a0b52a0dff Fix x11 backend
Need to include wlr/config.h before using the various WLR_HAS_xxx defines
2018-03-27 09:20:21 +02:00
Drew DeVault 891610081f
Merge pull request #751 from emersion/rotated-surface-damage
Fix damage tracking for rotated surfaces
2018-03-26 18:05:35 -04:00
emersion 140bc19476
rootston: add -D flag to enable damage tracking debugging 2018-03-26 17:34:46 -04:00
emersion 4555fc8a54
Fix damage tracking for rotated surfaces
It was broken because the damage extents were rotated about its
own center, not about the center of the surface.

This adds a new wlr_region_rotated_bounds that rotates regions.
This allows us to have only one code path (for both non-rotated
views and rotated views) and optimizes rendering for rotated
views.
2018-03-26 15:31:08 -04:00
emersion 793c3b3047
render: add simple functions to render rectangles and ellipses 2018-03-26 12:41:51 -04:00
emersion a854c2f246
Merge branch 'master' into gles2-renderer-redesign 2018-03-23 00:55:55 +01:00
Dominique Martinet d9a3c66942 rootston/output: fix leak in damage_from_surface 2018-03-22 21:25:41 +01:00
emersion 3581573bdc
render/gles2: make wlr_renderer_begin take viewport size
This allows raw GL calls outside wlr_renderer to be removed.
2018-03-21 07:37:09 +01:00
Dominique Martinet a491f780b8 rootston rotation: change view->rotation sign
The convetion with wlr_matrix changed and it's a good time to remove
all these pesky minus signs
2018-03-18 09:19:09 +01:00
Drew DeVault 1956d3cedb
Merge pull request #722 from emersion/matrix-redesign
Matrix redesign
2018-03-17 15:22:00 -04:00
emersion 824a95ad19
matrix: use 2D matrices 2018-03-15 15:33:58 +01:00
emersion d26b67cb06
matrix: unify API, don't use array pointers 2018-03-15 11:10:56 +01:00
emersion b6a3f240c7
matrix: move to types/ 2018-03-15 09:11:27 +01:00
emersion e74ddaaf10
xdg-shell-v6: redesign the configure/ack_configure workflow 2018-03-13 19:57:21 +01:00
emersion 3f072bedd9
xdg-shell-v6: add map signal 2018-03-10 11:18:50 +01:00
Markus Ongyerth 14bb550bff set alpha to 1.0 for drag icons 2018-02-27 18:18:39 +01:00
Markus Ongyerth 333110515e set fullscreen alpha to 1 2018-02-27 10:55:05 +01:00
Guido Günther 202a728ee9 rootstion: handle alpha in server side decorations 2018-02-25 16:53:36 +01:00
Guido Günther e2ea1ebe48 rootston: Add alpha channel to views 2018-02-25 16:53:36 +01:00
Guido Günther d08792bfff Add alpha to wlr_render_with_matrix
so we can use the alpha channel to e.g. blend in textures
2018-02-25 13:47:48 +01:00
emersion 69409ea3cb
Merge pull request #654 from emersion/send-frame-done
rootston: send frame done events unconditionally
2018-02-23 18:55:18 +01:00
emersion ca3a947864
rootston: fix user-after-free in output_handle_destroy 2018-02-23 10:29:18 +01:00
emersion 00e647e161
rootston: fix sending frame done to undefined view 2018-02-20 16:32:29 +01:00
emersion dc77b4c8c6
rootston: don't send frame done if wlr_output manages the surface 2018-02-20 16:17:23 +01:00
emersion 6f8eca2b3a
rootston: send frame done events unconditionally 2018-02-20 15:33:48 +01:00
Dominique Martinet 7d26a6debd xdg-shell stable: copy-pasta implementation 2018-02-14 12:52:30 +01:00
emersion c2e1474010
Reformat all #include directives 2018-02-12 21:29:23 +01:00
emersion 10ecf871f2
Remove wlr_backend.events.{output_remove,device_remove} 2018-02-12 10:36:43 +01:00
emersion ec837e3c9e
Introduce wlr_output_damage 2018-02-11 12:49:30 +01:00
emersion 1cea73d2d8
rootston: fix rotated views damage tracking 2018-02-04 11:59:04 +01:00
emersion 6ba36cc52f
rootston: do not rely on current view size when accumulating damage 2018-02-03 16:33:58 +01:00
emersion ddb1779f9f
render: make wlr_renderer_clear take a float[4] for the color 2018-02-03 09:32:02 +01:00
emersion 402587ed65
rootston: use output renderer 2018-02-03 09:25:35 +01:00
emersion 5aa642485d
rootston: do not render views fullscreened on other outputs 2018-02-02 20:39:15 +01:00
emersion 4d6e7f510e
rootston: fix artifacts when leaving fullscreen in a rotated view 2018-02-02 20:34:46 +01:00
emersion a7cba7d83f
rootston: damage whole output when entering/leaving fullscreen 2018-01-30 14:40:22 +01:00
emersion 2a855e6282
rootston: fix urxvt damage on HiDPI outputs
util/region: add wlr_region_expand
2018-01-30 12:01:10 +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 20e6861021
Do not flush damage if swapping buffers failed
This should solve issues with multiple outputs on DRM backend.
2018-01-28 22:39:24 +01:00
emersion be888df4c3
rootston: fix build without xwayland 2018-01-28 21:38:29 +01:00
emersion 1ee61dbd0f
Merge remote-tracking branch 'upstream/master' into output-damage 2018-01-28 21:22:50 +01:00
Patrick Steinhardt 52cb19d99d rootston: fix compilation without XWayland support
In case wlroots is not being compiled with XWayland support, we will not
have an xwayland surface in our roots view. While we make sure to pay
attention to that in some places, we are not being consistent and try to
access the xwayland surface in other places. Obviously, this leads to a
compiler error due to the field not being present.

Fix the issue by sprinkling in a few additional ifdefs where required.
2018-01-28 12:07:15 +00:00
emersion 692d33bf8b
rootston: fix clipped SSD for rotated views 2018-01-28 12:14:23 +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 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 4223fbc763
rootston: damage tracking scale support 2018-01-25 19:15:20 +01:00
emersion 3f96427d08
Merge branch 'output-damage' of github.com:emersion/wlroots into output-damage 2018-01-24 18:49:47 +01:00
emersion 6281deb90f
Merge remote-tracking branch 'upstream/master' into output-damage 2018-01-24 14:48:01 +01:00
emersion 2ad7df8680
rootston: damage tracking for drag icons 2018-01-23 20:01:40 +01:00
emersion 415a2b7c56
render: add wlr_renderer_clear and wlr_renderer_scissor 2018-01-22 16:42:22 +01:00
Tony Crisci 85a6939cf2 rename matrix model box to project box 2018-01-21 19:03:10 -05:00
Tony Crisci 4183271475 make it work with rotation 2018-01-21 18:24:53 -05:00
emersion f704c3d42b
rootston: fix damage tracking for fullscreen xwayland views 2018-01-21 22:08:38 +01:00
Tony Crisci d13114520a move matrix model code to matrix.h 2018-01-21 15:53:42 -05:00
emersion 66ae4071a7
rootston: damage tracking for xdg popups 2018-01-21 21:06:37 +01:00
emersion a636d72fc7
rootston: track subsurface damage 2018-01-21 14:50:37 +01:00
emersion c6aab6f56c
Add docs and comments 2018-01-21 11:11:25 +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 d6c74d8a16
rooston: restrict damage to output extents 2018-01-19 14:32:42 +01:00
emersion e29a0df8c1
output: fix software cursors damage tracking 2018-01-19 14:08:47 +01:00
emersion b296481007
rootston: remove repaint timer, listen for damage instead 2018-01-19 13:14:16 +01:00
emersion 7f9f918b78
rootston: damage output on mode change 2018-01-19 11:31:04 +01:00
emersion 977a401fa1
rootston: damage tracking for fullscreen views 2018-01-19 11:04:12 +01:00
emersion 59ba8f35ed
rootston: use surface damage 2018-01-18 21:34:10 +01:00
emersion 3ba447a8f9
rootston: fix damage test 2018-01-18 20:08:26 +01:00
emersion bed7522108
rootston: fix segfault when destroying unmapped xwayland view
This happens when closing chromium for instance.
2018-01-18 19:50:34 +01:00
emersion bde255933e
output: add wlr_output::damage, fixes #572 2018-01-18 19:47:21 +01:00
emersion baa17ec755
rootston: damage whole output when created 2018-01-18 18:57:11 +01:00
emersion 8b3f3ddb7f
rootston: fix double-buffering artifacts 2018-01-18 17:18:21 +01:00
emersion 7c11d3e372
rootston: fix repaint timer for outputs with refresh rate 2018-01-18 16:36:49 +01:00
emersion 96d6f34edd
rootston: replace view_damage with view_apply_damage and view_damage_whole 2018-01-18 16:30:56 +01:00
emersion 7f5a538cb7
rootston: fix segfault when rendering surface outside output 2018-01-18 14:50:30 +01:00
emersion 5017d7f762
rootston: only draw damaged regions 2018-01-18 14:36:42 +01:00
emersion 01bcc2ab01
rootston: damage views when moved 2018-01-18 12:25:39 +01:00
emersion 5089f2d9fb
rootston: do not swap buffers when output isn't damaged 2018-01-18 11:42:54 +01:00
emersion 1a084807ce
rootston: do not redraw if output has no damage 2018-01-18 03:31:46 +01:00
Tony Crisci 3751a17321 decorate xwayland views 2018-01-16 07:51:10 -05:00
Tony Crisci dc701b72fc abstract box matrix 2018-01-16 07:14:47 -05:00
Drew DeVault b331c5c2c5
Merge pull request #549 from emersion/output-enabled
Add wlr_output::enabled
2018-01-15 20:53:13 -05:00
emersion 65b28b3823
xwayland: render children window in fullscreen 2018-01-14 18:19:37 +01:00
emersion 77fc0505e6
rootston: do not attempt to render disabled outputs 2018-01-07 00:30:55 +01:00
emersion be3a7b0017
Disable outputs in rootston config 2018-01-04 15:48:28 +01:00
emersion 1fe1d64042
Fix views outside output layout 2017-12-31 12:49:06 +01:00
emersion 466e86b7b2
Merge branch 'master' into surface-transform 2017-12-14 20:31:18 +01:00
emersion 3b4b8953d9
Update output layout when scale or transform changes 2017-12-12 21:58:00 +01:00
emersion 529675b7b0
Add wlr_output_set_custom_mode 2017-12-11 12:14:23 +01:00
Tony Crisci b275d44bc3 rootston xcursor fixes 2017-12-09 12:10:09 -05:00
emersion 91d72040e5
Configure outputs with make, model, serial in rootston
Added fallbacks in DRM backend in case EDID extension data for model and serial is missing.

Updates #403
2017-12-07 13:59:19 +01:00
emersion bf2b58eb6d
Add wlr_output_set_scale
Fixes #465
2017-12-06 16:36:46 +01:00
emersion eb763439f7
optimize a bit rootston renderer if there's no surface transform 2017-12-01 16:20:09 +01:00
emersion d1b29a54b9
Refactor: rename matrices in rootston 2017-12-01 16:13:24 +01:00
emersion f4754ad1a2
Fix surface transforms 2017-11-30 23:58:12 +01:00
emersion 9e29621ec3
Always center fullscreen view on screen 2017-11-21 10:14:50 +01:00
emersion 5a8bbc6203
Fix GCC build 2017-11-20 20:54:54 +01:00
emersion 54f1135c05
Fix fullscreen in xdg-shell 2017-11-20 20:53:13 +01:00