Commit Graph

461 Commits

Author SHA1 Message Date
emersion a4eb90315e
Fix indentation in various files 2019-01-21 17:56:19 +01:00
Drew DeVault d4de2bd708
Merge pull request #1476 from emersion/fullscreen-shell
fullscreen-shell-v1: initial protocol implementation
2019-01-20 09:30:52 -05:00
Alexander Bakker 776b6ce395 Fix software cursor rendering for tinywl and some examples 2019-01-13 21:39:56 +01:00
Jan Beich f80d174e8b Simplify evdev includes on FreeBSD by relying on up-to-date package
As evdev-proto is installed by CI some files have been missed:

 ../examples/pointer-constraints.c:2:10: fatal error: 'linux/input-event-codes.h' file not found
 #include <linux/input-event-codes.h>
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~
 ../examples/relative-pointer-unstable-v1.c:5:10: fatal error: 'linux/input-event-codes.h' file not found
 #include <linux/input-event-codes.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
2019-01-07 08:08:47 +00:00
emersion 86f263a0b8
fullscreen-shell-v1: initial protocol implementation 2019-01-06 12:12:06 +01:00
emersion 610f5bfc77
Merge pull request #1432 from ForTheReallys/relative-pointers
Relative pointers
2019-01-04 13:42:53 +01:00
Ian Fan e2c216a4b8 examples/layer-shell.c: check popup exists before drawing 2018-12-30 16:36:20 +01:00
random human 42ffa413fb relative_pointer: add relative-pointer example
On left mouse button click, locks the cursor and renders relative motion
events.
2018-12-21 12:20:48 -06:00
Ilia Bozhinov 16175751d6 examples: add wlr_foreign_toplevel_management_v1 example 2018-12-08 14:09:56 +01:00
emersion a8bc8c65ce
examples: only link clients to wlroots if necessary 2018-11-06 08:29:30 +01:00
emersion 2d0c5ec78e
Use _POSIX_C_SOURCE, use shm_open 2018-11-06 08:29:23 +01:00
sghctoma 1d7cc1b38b Add epoll-shim dependency on FreeBSD
On FreeBSD, epoll is provided as a 3rd-party library, so it needs to be
added as a dependency.
2018-10-17 10:55:53 +02:00
Cole Mickens 7297348736 render: fix meson including libdrm 2018-10-15 13:34:23 -07:00
Scott Anderson 7ca3bc1d6f Fix libdrm includes
This removes any assumptions about how the libdrm headers are installed,
and uses the pkg-config include directories as we're "supposed to".
This only adds a partial dependency, since we don't actually need to
link against libdrm.
2018-10-15 11:39:35 +13:00
Drew DeVault b99da405e7 Assert read return value in examples/input-method 2018-10-12 09:35:19 -04:00
Dorota Czaplejewicz cec7471119 wlroots: add basic support for zwp_input_method_v2
Implemented basic input method functionality. Not included: popups, grabbing.
2018-10-09 09:56:46 +00:00
Dorota Czaplejewicz 427735fcd9 wlroots: add support for zwp_text_input_unstable_v3 2018-10-09 09:56:11 +00:00
Drew DeVault 5e9959daaa
Merge pull request #852 from Laaas/master
Implement pointer-constraints-unstable-v1 protocol
2018-09-27 05:57:43 -05:00
emersion e3736d4acc examples/pointer-constraints: style fixes 2018-09-26 17:34:09 +02:00
emersion 9622efd6db Fix unknown cursor in layer-shell example 2018-09-26 17:01:01 +02:00
emersion 3df602a62d export-dmabuf: disable hardware cursors if desired
Also make the frame resource inert when sending "ready".
2018-09-18 11:48:04 +02:00
Las fa2e6e7d9d Implement pointer-constraints protocol in wlroots and rootston 2018-09-18 10:14:33 +02:00
random human 6af77e3d9e
Release pointers in examples/multi-pointer 2018-09-03 04:00:53 +05:30
random human de16defb21
Release registry pointer in examples/idle 2018-09-03 03:27:56 +05:30
random human ef5df78a27
Destroy layout after display in examples/output-layout 2018-09-03 03:27:28 +05:30
random human 7105864e13
Handle setting keymap in examples more securely 2018-09-03 02:43:44 +05:30
random human 8589ae19de Fix bugs listed by clang's static analyzer
A few pedantic changes and unused variables (1-4), and genuine bugs (5,
6).

The reports with the corresponding files and lines numbers are as
follows.

1. backend/libinput/tablet_pad.c@31,44,57
"Allocator sizeof operand mismatch"
"Result of 'calloc' is converted to a pointer of type 'unsigned int',
which is incompatible with sizeof operand type 'int'"

2. types/tablet_v2/wlr_tablet_v2_pad.c@371
"Allocator sizeof operand mismatch"
"Result of 'calloc' is converted to a pointer of type 'uint32_t', which
is incompatible with sizeof operand type 'int'"

3. types/wlr_cursor.c@335
"Dead initialization"
"Value stored to 'dx'/'dy' during its initialization is never read"

4. rootston/xdg_shell.c@510
"Dead initialization"
"Value stored to 'desktop' during its initialization is never read"

5. types/tablet_v2/wlr_tablet_v2_pad.c@475
"Dereference of null pointer"
"Access to field 'strips' results in a dereference of a null pointer
(loaded from field 'current_client')"

The boolean logic was incorrect (c.f. the check in the following
function).

6. examples/idle.c@163,174,182
"Uninitialized argument value"
"1st function call argument is an uninitialized value"

If close_timeout != 0, but simulate_activity_timeout >= close_timeout,
the program would segfault at pthread_cancel(t1).
2018-08-31 19:41:18 +02:00
random human 660a022909
Fixes examples/dmabuf-capture being built with unmet dependencies
Even if the libav* variables were disabler objects, the build targer
dmabuf-capture was being built. Modified the script to support a generic
solution.
2018-08-30 22:23:28 +05:30
Scott Anderson fd3fa760d3 Revert "Revert "Merge pull request #1194 from ascent12/meson_feature""
This reverts commit 9c886f20b9.
2018-08-24 19:35:02 +12:00
Drew DeVault 9c886f20b9 Revert "Merge pull request #1194 from ascent12/meson_feature"
This breaks wlroots when used as a meson subproject.

This reverts commit dea311992e, reversing
changes made to 6db9c4b746.
2018-08-23 21:00:58 -04:00
Scott Anderson 584a3f8b6e Update examples to use new option
We use a dictionary to remove some code duplication.
2018-08-22 21:15:34 +12:00
emersion f86f1daf9a Fix build on FreeBSD 2018-08-16 10:54:45 +01:00
emersion 2ae0575631 examples/gamma-control: fix brightness formula 2018-08-02 23:33:59 +01:00
emersion b0c32019c3 examples/gamma-control: clamp values, default brightness to 1 2018-08-02 23:33:59 +01:00
emersion 1d97202ec2 examples: add gamma-control 2018-08-02 23:33:59 +01:00
Drew DeVault 5642c5cc8f
Merge pull request #1053 from emersion/xdg-decoration
Add xdg-decoration-unstable-v1 support
2018-08-02 09:33:10 -04:00
emersion d4181c5a7a examples: cleanup simple
- Move a log to where it should be
- Enforce code style
- Rename wlr to backend
2018-07-29 15:32:25 +01:00
emersion 555721f714 Add xdg-decoration-unstable-v1 support 2018-07-28 22:48:07 +01:00
Markus Ongyerth d9e978e1b3 rename wlr_tablet_tool to wlr_tablet
The previous naming was based on the input-device capability names from
libinput.
With code that uses the libinput_tablet_tool and mapping into tablet-v2,
this is confusing, so the name is changed to follow the names used in
the protocol.
2018-07-14 09:49:58 +02:00
emersion 7cbef15206
util: add wlr_ prefix to log symbols 2018-07-09 22:49:54 +01:00
emersion a7a96d7644
examples/screencopy: use libpng 2018-06-30 23:18:13 +01:00
emersion c421700f3d
screncopy: update protocol 2018-06-30 22:18:04 +01:00
emersion 2b9cbaddf3
screencopy: add support for frame flags 2018-06-30 22:18:03 +01:00
emersion bd8be19b79
screencopy: add presentation timestamp 2018-06-30 22:18:03 +01:00
emersion 73755ad348
screencopy-v1: add basic implementation 2018-06-30 22:17:59 +01:00
Scott Anderson 0e19b024c6 Add minimum version for ffmpeg 4.0 libraries 2018-06-26 20:14:08 +12:00
Scott Anderson 86942d8a6a Check for libavutil/hwcontext_drm.h
This is an optional feature of libavutil, so this will cause a build
failure if it's not present (e.g. on Debian/Ubuntu).
2018-06-26 17:25:29 +12:00
Rostislav Pehlivanov 5707653e85 examples/dmabuf-capture: move encoding to a separate thread
Drop new frames if too slow. Speeds up encoding significantly, even with vaapi.
2018-06-25 06:41:59 +01:00
Rostislav Pehlivanov ed7d5b0f53 Fix example 2018-06-17 15:19:17 +01:00
emersion bd0c1b7949
export-dmabuf: update protocol 2018-06-17 14:19:45 +01:00
Rostislav Pehlivanov 9eddcbc376 Update example and protocol 2018-06-17 14:06:52 +01:00
emersion 21928cbe61
Merge branch 'master' into screencontent 2018-05-31 12:33:27 +01:00
Genki Sky d1cf9acbd5 cleanup: Use void for zero-parameter functions
Signed-off-by: Genki Sky <sky@genki.is>
2018-05-30 20:19:16 -04:00
emersion 8c9d0f15ce
Merge pull request #1017 from tobiasblass/examples_rotation_fix_doublefree
Fix double-free in the rotation.c example.
2018-05-30 08:36:10 +01:00
emersion 0c1f50168b
examples/output-layout: destroy wl_display
Thanks @tobiasblass for pointing this out. See #1017.
2018-05-30 08:34:49 +01:00
Tobias Blass a21894a844 Fix double-free in the tablet.c and touch.c examples
The wl_display_destroy function already destroys the backend's renderer.
Freeing it by hand causes a segmentation fault.
2018-05-30 08:24:25 +02:00
Tobias Blass 75f9feb6de Fix double-free in the rotation.c example.
The wl_display_destroy function already destroys the backend's renderer.
Freeing it by hand causes a segmentation fault.
2018-05-30 01:12:34 +02:00
emersion 70d324a0f9
examples/dmabuf-capture: simplify event loop and fix style 2018-05-29 18:47:20 +01:00
emersion 85b6b4b0c8
examples/dmabuf-capture: make building this example optional 2018-05-29 18:47:20 +01:00
emersion 2198fd5eed
examples/dmabuf-capture: fix indentation 2018-05-29 18:47:20 +01:00
Rostislav Pehlivanov f204a9127c
Command line parsing 2018-05-29 18:47:19 +01:00
Rostislav Pehlivanov b9b397ef80
Add a demo client for dmabuf export 2018-05-29 18:47:19 +01:00
Ilia Bozhinov 24cf70ae96 backends: implement custom EGL and renderer initialization
Compositors now have more control over how the backend creates its
renderer. Currently all backends create an EGL/GLES2 renderer, so
the necessary attributes for creating the context are passed to a
user-provided callback function. It is responsible for initializing
provided wlr_egl and to return a renderer. On fail, return 0.

Fixes #987
2018-05-25 14:56:52 +03:00
Tony Crisci a078e50ec0 rename sample state to "state" 2018-05-13 10:45:18 -04:00
Tony Crisci e9fab2cc70 pointer example: use xcursor manager 2018-05-13 10:42:16 -04:00
Tony Crisci aedd3c6d46 make pointer show up in pointer example 2018-05-13 10:31:59 -04:00
Timidger 9a1d0e42d2
Fixed emersion's issues 2018-05-10 19:03:58 -07:00
Timidger 7da50d065b
Fixed style issues 2018-05-10 19:03:58 -07:00
Timidger 7f1230fe78
Remvoed unnecessary wayland socket in examples 2018-05-10 19:03:57 -07:00
Timidger 167ca57b18
Fixed up building examples 2018-05-10 19:03:57 -07:00
Timidger 583654405f
Made output layout example standalone 2018-05-10 19:03:57 -07:00
Timidger 8fd25cbc5b
Fixed indentation 2018-05-10 19:03:57 -07:00
Timidger b3ca73c0ac
Multi-pointer ported over 2018-05-10 19:03:57 -07:00
Timidger b510c0f6c2
Made rotation example standalone 2018-05-10 19:03:57 -07:00
Timidger 7be5dfecc0
Made tablet standalone 2018-05-10 19:03:57 -07:00
Timidger c622a0c7fb
Made touch standalone
TODO test
2018-05-10 19:03:56 -07:00
Timidger 4c1d74ef91
Made examples/pointer standalone 2018-05-10 19:03:56 -07:00
Timidger 7284709370
simple now works on DRM 2018-05-10 19:03:56 -07:00
Timidger 44b2bf18f0
Can now quit the simple example 2018-05-10 19:03:56 -07:00
Timidger b98779a674
Got simple working without keyboard input 2018-05-10 19:03:56 -07:00
Timidger ad6d40c7c6
Moved cat out of support, removed support 2018-05-10 19:03:56 -07:00
emersion eaed6bd03b
render/egl: add wlr_egl_destroy_surface 2018-04-24 23:44:43 +01:00
Guido Günther 67a10cc1f6 examples/layer-shell: take an explicit grab on the popup
This demonstrates popups can be closed by clicking on the area outside
the popup and parent.
2018-04-23 18:11:47 +02:00
Guido Günther 32e043f996 examples: Allow to close the popup
So we can the xdg_popup_destroy path.
2018-04-23 12:52:05 +02:00
Guido Günther 5209c79702 examples: Handle input entering popup in layer-shell
Change the cursor when entering the popup and make mouse buttons change
the red component of the square. This makes sure we can handle input
correctly.
2018-04-23 11:24:31 +02:00
Guido Günther 421652a450 examples: Animate popup in layer-shell 2018-04-23 11:24:31 +02:00
Guido Günther d1e82a8ede examples: Drop unused variable 2018-04-23 11:24:31 +02:00
Drew DeVault 941f88ce23 Fix popup positioning & double popups 2018-04-23 11:24:06 +02:00
Drew DeVault 0a0627f5d0 Finish forward-porting @acrisci's positioner work 2018-04-23 11:24:06 +02:00
Drew DeVault 2e3d901ac5 Forward-port xdg-shell-v6 positioner improvements 2018-04-23 11:24:06 +02:00
Drew DeVault d3cdb00208 Add (shitty) support for popups to layer example 2018-04-23 11:24:06 +02:00
Drew DeVault 4575f27932 Update layer shell example -o behavior 2018-04-22 19:19:22 +02:00
Dominique Martinet 555206cf60 Fix gcc string truncation warnings 2018-04-13 14:37:53 +09:00
Drew DeVault 902d859c67 Fix syntax errors
Build before you commit, dumbass
2018-04-08 12:50:52 -04:00
Drew DeVault 7bb8512afb Fix assertions with side-effects
Fixes #1725
2018-04-08 12:49:48 -04:00
Drew DeVault 3a8c7f283d Add input-inhibitor example client 2018-04-03 14:06:52 -04:00
Drew DeVault a94f4d0edc Always give keyboard focus to the topmost layer 2018-04-02 15:48:22 -04:00
Drew DeVault 883d8d306c Identify topmost interactive layer surface 2018-04-02 15:16:14 -04:00
emersion f63a5d881d
examples: get wlr_renderer from the backend 2018-04-01 16:57:29 -04:00
emersion 33a2eb4b77
Untie wlr_backend from wlr_renderer 2018-03-31 18:49:43 -04:00
Drew DeVault 2053a4c144 Add more exotic cursor for layer shell example
So it's more obvious that it's being set
2018-03-30 21:02:28 -04:00
Drew DeVault 746e3759b7 Address review feedback 2018-03-30 20:34:00 -04:00
Drew DeVault 168f65fb7a Minor bugfixes 2018-03-30 18:28:21 -04:00
Drew DeVault e3eb487dc2 Add pointer support to layer shell example 2018-03-30 18:23:57 -04:00
Drew DeVault ac219cbda6 Remove width_mm from tablet events 2018-03-28 12:05:37 -04:00
Drew DeVault 324b9d910d Remove width_mm from wlr_touch events 2018-03-28 11:04:40 -04:00
Drew DeVault a35a5786b0 Remove width_mm from wlr_pointer events 2018-03-28 10:46:50 -04:00
Tony Crisci 330ee08126
Merge pull request #744 from emersion/texture-redesign
Redesign wlr_texture
2018-03-28 00:14:57 -04:00
Drew DeVault 13edb19a6c Fix issue starting up client EGL on X11 backend 2018-03-27 18:51:38 -04:00
Drew DeVault 776b81d499 Fix surface layer damage tracking 2018-03-27 18:50:32 -04:00
Drew DeVault 0e318df13d Add margin animation to the example demo 2018-03-27 18:50:32 -04:00
Drew DeVault 86ca4bea6d Fix layer rendering/layout bugs 2018-03-27 18:50:32 -04:00
Drew DeVault df9dbf3170 Fix rebase issues; rearrange layers on destroy 2018-03-27 18:50:32 -04:00
Drew DeVault d1c0e6fe2c Add layer_surface.close 2018-03-27 18:50:32 -04:00
Drew DeVault b73c4f48c1 Fix exclusive zone among other layers 2018-03-27 18:50:32 -04:00
Drew DeVault 0f7e78f6aa Fix issue with multiple outputs in layer example 2018-03-27 18:50:32 -04:00
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
Drew DeVault fcf8c6c8a2 Fix issues preventing layer from getting allocated
Now all of the steps to get rootston a reference to the layer surface
are correctly wired up.
2018-03-27 18:50:09 -04:00
Drew DeVault 4bc1cc49d5 Fix strcmp use 2018-03-27 18:50:09 -04:00
Drew DeVault b31ce4220c Add broken test client and rootston stubs 2018-03-27 18:50:09 -04:00
emersion adf4fb08dd
Merge branch 'master' into texture-redesign 2018-03-26 19:13:13 -04:00
emersion 793c3b3047
render: add simple functions to render rectangles and ellipses 2018-03-26 12:41:51 -04:00
emersion c63d94483b
Redesign wlr_texture
- Textures are now immutable (apart from those created from raw
  pixels), no more invalid textures
- Move all wl_drm stuff in wlr_renderer
- Most of wlr_texture fields are now private
- Remove some duplicated DMA-BUF code in the DRM backend
- Add more assertions
- Stride is now always given as bytes rather than pixels
- Drop wl_shm functions

Fun fact: this patch has been written 10,000 meters up in the air.
2018-03-24 23:48:32 -04: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
emersion c41de2d1be
render: split render.h into wlr_renderer.h and wlr_texture.h 2018-03-19 23:16:29 +01:00
Drew DeVault 1956d3cedb
Merge pull request #722 from emersion/matrix-redesign
Matrix redesign
2018-03-17 15:22:00 -04:00
emersion 876f07e9f1
renderer: replace wlr_texture_get_matrix by wlr_render_texture 2018-03-15 19:31:02 +01: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 3bd1d876ae
examples: simplify screenshot client 2018-03-14 19:21:36 +01:00
Drew DeVault bfc0e95d2c Add mode support to libinput backend
And extend tablet example with tilt and ring support
2018-03-07 20:57:55 -05:00
Drew DeVault 3296365ce5
Merge pull request #659 from agx/alpha
Make wlr_render_with_matrix use alpha
2018-02-25 13:16:35 -05: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
Drew DeVault 9dc868a27f
Merge pull request #667 from Ongy/screenshot_tmpfile_template
prevent screenshot from resuing template array
2018-02-24 18:05:38 -05:00
Markus Ongyerth 8ab0073b49 prevent screenshot from resuing template array
The template array given to mkstemp was declared static. This reused the
memory, which caused mkstemp to fail if backingfile is run more than
once, because the array no longer contained the template syntax
(which is forced to end in XXXXXX) but the previous file name.
2018-02-24 23:55:48 +01:00
Tony Crisci b7b86a9591
Merge pull request #641 from Ongy/idle-inhibit
Add idle-inhibit implementation
2018-02-24 10:15:18 -05:00
Markus Ongyerth 67285c1d57 idle-inhibit: style adjustments and motivation 2018-02-23 13:18:05 +01:00
Guido Günther b13f9fcfde Don't use os_create_anonymous_file outside of wlroots
Use a stripped down version for the backing file in the screenshot
example.
2018-02-23 09:51:23 +01:00
Markus Ongyerth 87a7afb641 idle-inhibit: second feedback pass 2018-02-21 16:22:04 +01:00
Markus Ongyerth 3016133f91 idle-inhibit: feedback pass 2018-02-20 13:41:10 +01:00
Markus Ongyerth bab8c73d3c handle xdg close event in idle-inhibit example
Fixes a crash when the idle-inhibit example application is closed by the
compositor, instead of Ctr+C on the spawning terminal, by actualy
handling the close request.
2018-02-17 15:17:19 +01:00
Markus Ongyerth a0bce86006 adds the client example for idle-inhibit
Adds a client example for the idle-inhibit-unsable-v1 protocol.
The client creates a surface and requests an idle inhibitor.
On pointer BTN_LEFT the inhibitor is destroyed if it exists, or
recreated if it was destroyed before.
The surfaces colour is based on the idle-inhibit state.
Green if an inhibitor exists, yellow if it does not.
2018-02-17 12:38:07 +01:00
Dominique Martinet d1b28ec812 wayland protocol headers: use double-quote for includes
These headers are not installed so we should look for these locally
2018-02-15 07:17:02 +01:00
emersion 10ecf871f2
Remove wlr_backend.events.{output_remove,device_remove} 2018-02-12 10:36:43 +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 3d3ea32137
Merge remote-tracking branch 'upstream/master' into output-damage 2018-02-03 00:15:44 +01:00
Markus Ongyerth cd925f496c fixes the off by one errors in examples/screenshot
The inverse loop iterations for the transformed outputs had an off by
one error, iterating 1 based, not 0 based. This commit fixes that.
2018-02-01 21:36:14 +01:00
Markus Ongyerth 3a404e4f8d handle the other transformations for screenshots
This handles all current transformations for outputs properly.
This ensures an output is drawn in readable orientation/flipping no
matter the actual transformations applied to it.
2018-01-31 16:05:33 +01:00