Commit Graph

95 Commits

Author SHA1 Message Date
Tony Crisci 44181b57ac Add wlr_output_layout implementation
An output layout consists of a mapping of outputs to their position in a global
coordinate system that usually cooresponds to the output position in physical
space in front of the user.

Add an example that allows configuration of an output layout and demonstrates
its boundaries with a bouncing image.
2017-08-17 21:05:13 -04:00
nyorain 2db04c369e Fix style issues in wlr_seat 2017-08-17 14:14:31 +02:00
nyorain ad22b4874d Fix wlr_seat; add to example compositor 2017-08-17 13:06:53 +02:00
Drew DeVault af5db7a44c Initial pass on wlr_seat 2017-08-17 12:57:04 +02:00
Drew DeVault 19d6442f52 Merge pull request #91 from martinetd/move_wl_shell
Move wl_shell into wlroots
2017-08-15 17:39:18 -04:00
Drew DeVault 27c13d621d Merge pull request #88 from 4e554c4c/alloc_crashing
Prevent alloc errors from crashing
2017-08-15 12:21:58 -04:00
Dominique Martinet dca3f630dd Fix wlr_wl/xdg_shell_destroy segfault
- Implement xdg_shell_destroy and use it at the right place
(impl->destroy is never called)
- Remove wl_global_destroy for now, something is missing with the
display/registry_resource_list
2017-08-15 15:52:20 +02:00
Dominique Martinet f9b55dfa95 Make wlr_wl_shell_create work like xdg
Also:
- rename wlr_xdg_shell_v6_init to create as that is what it does
- free wlr_xdg_shell on failure to create wl_global, the struct
is not initialized enough to call destroy at that point
2017-08-15 15:36:02 +02:00
Dominique Martinet d49edc8243 wl_shell/compositor surface: do not check if it's in list before removing 2017-08-15 15:34:26 +02:00
Dominique Martinet 5dae8e1be8 example compositor: only iterate over wl_shell and xdg_shell surfaces 2017-08-15 15:34:26 +02:00
Dominique Martinet f4e6b138fb Move wl_shell into wlroots 2017-08-15 15:13:23 +02:00
Drew DeVault f60b53c6e3 Change how surface matricies are calculated 2017-08-15 08:52:30 -04:00
Tony Crisci d5f98dbf61 refactor getting surface size into a function 2017-08-15 08:22:22 -04:00
Tony Crisci 2bf2dbb2bd formatting fixup 2017-08-15 07:41:25 -04:00
Tony Crisci 5b1ce84350 implement buffer transform 2017-08-15 07:36:51 -04:00
Tony Crisci 84c6dbd58d remove unused dimension from buffer calculations 2017-08-15 07:36:51 -04:00
Tony Crisci e46ec57b43 implement surface sizing 2017-08-15 07:36:51 -04:00
Tony Crisci b49650b555 initialize buffer damage before conversion 2017-08-15 07:36:50 -04:00
Tony Crisci d87c58416b clip surface damage to surface size 2017-08-15 07:36:50 -04:00
Tony Crisci 72a33b736f implement texture get buffer size 2017-08-15 07:36:50 -04:00
Tony Crisci f0f190bfa5 implement buffer scale
Keep track of the scale of the buffer set by surface.set_buffer_scale.

Calculate the height and width of the texture from the buffer depending on the
scale when it is attached.

Use buffer damage to determine the damage of the buffer when flushing damage.

Convert surface damage to buffer damage and union to the surface buffer_damage
prior to flushing damage.
2017-08-15 07:36:50 -04:00
Tony Crisci e22e443717 fix formatting in surface_damage 2017-08-15 07:36:50 -04:00
Tony Crisci 0b3d56384f implement surface_damage_buffer 2017-08-15 07:36:17 -04:00
nyorain 7d0bf9a1a7 Simplify tablet pad destruction 2017-08-15 12:16:23 +02:00
Calvin Lee 5cc7342606 Prevent alloc errors from crashing
Resolves #76
2017-08-15 08:04:57 +02:00
nyorain aa20634309 Simplify input device destruction code 2017-08-14 18:23:20 +02:00
nyorain f998bb8299 Fix style issues 2017-08-14 17:09:56 +02:00
Dominique Martinet 4bbf718e7d impl->destroy cleanup:
- remove trivial destroy() function
 - make sure we check impl and impl->destroy before calling
 - always call free if not implemented
2017-08-14 16:22:31 +02:00
Dominique Martinet ba20d5b3ca Refactor out wlr_touch_state 2017-08-14 16:22:31 +02:00
Dominique Martinet bd67849c03 Refactor out wlr_tablet_tool_state 2017-08-14 16:22:31 +02:00
Dominique Martinet a289940bff Refactor out wlr_tablet_pad_state 2017-08-14 16:22:31 +02:00
Dominique Martinet 53e7bebd23 Refactor out wlr_pointer_state 2017-08-14 16:22:31 +02:00
Dominique Martinet 0a3246ad97 Refactor out wlr_keyboard_state 2017-08-14 16:22:31 +02:00
Dominique Martinet e6ad67911b Refactor out wlr_input_device_state 2017-08-14 16:22:31 +02:00
Dominique Martinet db77530a35 Fix output destory: impl->destroy must be called last + obvious double-free 2017-08-14 15:05:45 +02:00
Drew DeVault 2facf1df65 Fix software cursors 2017-08-14 08:43:17 -04:00
Drew DeVault 0de5eed048 Fix double free on wlr_outputs 2017-08-14 08:37:44 -04:00
Drew DeVault 41e735242d Remove wlr_output_state, update backends 2017-08-13 11:38:03 -04:00
Drew DeVault d4b4bfb8bc Fix #64 2017-08-13 08:26:32 -04:00
Dominique Martinet 0354aaeff2 Complete a few destroy functions
This adds missing free calls for:
 - drm outputs
 - libinput backend in general
 - final udev free
 - output mode state
2017-08-11 19:17:03 +02:00
Drew DeVault 62d8b252c0 Refactor meson and move xdg-shell into wlroots 2017-08-11 09:37:09 -04:00
Drew DeVault 6569c2b626 Merge pull request #53 from nyorain/drm_buffer
Implement drm (egl) buffer attaching
2017-08-10 22:20:21 -04:00
Drew DeVault c24351681f Refactor EGL handling 2017-08-10 22:15:37 -04:00
Scott Anderson 5465621d0a Update rotation matrix correctly. Fixes #60. 2017-08-11 09:29:28 +12:00
Drew DeVault 7095274a9e Merge branch 'master' into drm_buffer 2017-08-10 13:19:39 -04:00
Tony Crisci 73adb49f15 release buffer on surface flush when no damage 2017-08-10 11:12:33 -04:00
Drew DeVault 888986b038 Remove excess logging 2017-08-10 08:36:45 -04:00
Drew DeVault 7da43ff8b0 Implement wlr_surface_flush_damage 2017-08-10 08:26:16 -04:00
nyorain 31d78ff497 Fix wlr_surface destruction bug 2017-08-10 12:42:35 +02:00
Tony Crisci 14654ecb77 implement compositor create region
Complete the implementation of wlr_region_create and put it in the compositor.
2017-08-10 05:59:43 -04:00