Commit Graph

339 Commits

Author SHA1 Message Date
emersion e737f65e38
Fix cursor on transformed output with DRM backend 2017-12-26 18:16:37 +01:00
emersion 01cefbb868
Output fixes
Fixes setting a hardware cursor image twice (used to fallback to
software cursor) and destroy handlers.
2017-12-19 11:06:09 +01:00
Tony Crisci d654a12b2e remove display_destroy unlisten before output free 2017-12-18 16:24:56 -05:00
Tony Crisci c59210ad17 remove display destroy when output is destroyed 2017-12-18 15:10:32 -05:00
emersion 0256de0002
Add full refresh rate support to custom modes 2017-12-17 18:02:55 +01:00
Drew DeVault 95fddf2fa8 s/L_INFO/L_DEBUG/ @ software cursor fallback 2017-12-16 09:56:30 -05:00
emersion 80b0b327de
Remove fractional output PR artifact 2017-12-15 17:14:30 +01:00
emersion 51db087210
Introduce fractional scaling 2017-12-15 01:00:03 +01:00
Drew DeVault 23fb663ea4
Merge pull request #453 from emersion/surface-transform
Add surface transforms support
2017-12-14 14:43:04 -05:00
emersion 466e86b7b2
Merge branch 'master' into surface-transform 2017-12-14 20:31:18 +01:00
emersion 75ef7860bb
Merge branch 'master' into display-destroy 2017-12-14 20:29:30 +01:00
emersion 257559d890
Remove output instead of terminating display when a wayland backend view closed 2017-12-13 21:48:59 +01:00
emersion 3b4b8953d9
Update output layout when scale or transform changes 2017-12-12 21:58:00 +01:00
emersion c67a5824b8
Merge branch 'master' into display-destroy 2017-12-11 16:14:03 +01:00
emersion 529675b7b0
Add wlr_output_set_custom_mode 2017-12-11 12:14:23 +01:00
emersion 15bb9a53b4
Fix unscaled cursor sx, sy 2017-12-08 14:40:57 +01:00
emersion 5dc303fc26
Fix client cursors hotspot on scaled outputs 2017-12-08 14:33:02 +01:00
emersion c5fa415a03
Send wl_surface.{enter,leave} to cursor surfaces 2017-12-08 14:23:33 +01:00
emersion 0e066f0d76
Listen to display destroy in output 2017-12-07 01:12:04 +01:00
emersion dac0233804
Send new output to clients when changing transform 2017-12-06 16:54:08 +01:00
emersion bf2b58eb6d
Add wlr_output_set_scale
Fixes #465
2017-12-06 16:36:46 +01:00
emersion 6a69b4419f
Make wlr_output_transform_* functions public, refactoring 2017-12-01 09:15:33 +01:00
Tony Crisci 5d7eb438d9
Merge pull request #437 from emersion/fullscreen
Fullscreen support
2017-11-30 03:25:05 -05:00
emersion 0781f6e483
Fix initial hardware cursor position 2017-11-29 00:26:55 +01:00
emersion cc2468923b
Fix non-HiDPI-aware fullscreen surface rendering in wlr_output 2017-11-21 21:12:12 +01:00
emersion 3262661e1e
Fix HiDPI support 2017-11-21 20:58:15 +01:00
emersion 5a664e1e46
Fix messed up outputs after fullscreen 2017-11-21 18:43:22 +01:00
emersion dcb168914e
Merge branch 'master' into fullscreen 2017-11-21 18:34:12 +01:00
emersion a268f57ed5
Forgot a call to glClear 2017-11-20 21:05:05 +01:00
emersion 54f1135c05
Fix fullscreen in xdg-shell 2017-11-20 20:53:13 +01:00
emersion 80998cdf57
Add support for fullscreen xwayland views 2017-11-20 17:58:26 +01:00
emersion b04a9a248d
Initial fullscreen support 2017-11-20 17:27:36 +01:00
emersion 016744ef4d
Refactor wlr_list inside wlroots 2017-11-19 00:17:40 +01:00
emersion bf1f461eba
Call wl_output_send_done when current mode is updated 2017-11-15 22:35:16 +01:00
Drew DeVault 2f6cfe4057 Fix software cursors on scaled outputs
There was an issue where it would only work within the boundaries of the
unscaled resolution.
2017-11-04 11:47:34 -04:00
Drew DeVault 6d8e1abfc0 Improve input sensitivity
We now use doubles until the last minute, which makes it so we can move
the pointer more precisely. This also includes a fix for tablet tools,
which move absolutely and sometimes do not update the X or Y axis.
2017-11-04 01:35:12 -04:00
Drew DeVault 86b8729998 Merge remote-tracking branch 'origin/master' into hidpi 2017-11-02 23:34:02 -04:00
Drew DeVault ca8cf7d48d Rethink HiDPI output layouts, fixes everything
Except for subsurfaces not rendering at the right scale. But that part
is (somewhat) easy.
2017-11-02 23:17:39 -04:00
emersion f8de7aa0fd
Add checks for wl_resource_create 2017-11-02 23:14:24 +01:00
emersion 0384c9c094
Process surface position for software cursor hotspots 2017-11-02 19:24:48 +01:00
emersion b46d2a8b33
Fix wlr_output_cursor_destroy 2017-11-02 11:42:42 +01:00
emersion d11973ed7d
Fix disabled cursors 2017-11-02 11:37:43 +01:00
emersion e18460c981
Add wlr_output.needs_swap 2017-11-01 20:08:15 +01:00
emersion a15b35aa10
Remove mysterious hotspot switch in DRM backend 2017-11-01 14:36:58 +01:00
emersion 60c018c017
Fix hidden software cursors, fix cursor transformations on DRM backend 2017-11-01 14:25:41 +01:00
Drew DeVault ed74f473d6 Fix various rebase-related bugs 2017-11-01 08:57:30 -04:00
Drew DeVault 8c0929cfb3 Fix backwards bit banging 2017-11-01 08:51:59 -04:00
Drew DeVault c8f97a3a2c Use surface matrix for software cursors
A similar change should probably be applied to hardware cursors, though
more complicated. Also, this doesn't actually fix the issue where the
cursor is too small when over a scale=2 surface. Apparently they don't
set their cursor scales to 2. Seems like a client bug? idk
2017-11-01 08:51:59 -04:00
Drew DeVault a6930cd8ea Handle output enter/leave correctly 2017-11-01 08:51:59 -04:00
Drew DeVault 9861add146 Send surface enter output events to clients 2017-11-01 08:50:33 -04:00
Drew DeVault a7446792a1 Consider scale factor when rendering views 2017-11-01 08:44:07 -04:00
emersion 510ce27fb7
Re-enable hardware cursors 2017-11-01 11:01:18 +01:00
emersion 0beae99188
Apply output transformation to pointer events in Wayland backend 2017-11-01 11:00:27 +01:00
emersion ec22fe7134
Make wlr_output_interface.enable optional 2017-10-31 15:19:55 +01:00
emersion d2581eadbc
Assert mandatory impl fields in wlr_output_init 2017-10-31 15:08:45 +01:00
emersion c97b5ac4ce
Fix output_cursor_render bounds check 2017-10-31 13:48:09 +01:00
emersion 9142def292
Do not render off-screen software cursors 2017-10-31 12:57:20 +01:00
emersion ae9a46fc9b
Remove outdated TODOs, use wlr_surface_has_buffer 2017-10-31 12:30:57 +01:00
emersion c3b09f73da
Fix cursor hotspot with rotated outputs on DRM backend 2017-10-31 12:30:57 +01:00
emersion 95566c6bdf
Transform cursor hotspot, fix wayland cursor hotspot 2017-10-31 12:30:56 +01:00
emersion 6656e25fd4
Transform cursor hotspot 2017-10-31 12:30:56 +01:00
emersion 1b6c729360
Add wlr_output_cursor 2017-10-31 12:30:03 +01:00
emersion eea532911a
Send output current mode when changed 2017-10-23 21:03:00 +02:00
emersion 1cc8f21d8e
Cleanup wlr_gamma_control 2017-10-22 23:11:26 +02:00
emersion e1d213fccd
Create globals only for enabled outputs in DRM backend 2017-10-22 22:21:23 +02:00
emersion 4952a633ca
Remove interface version checks 2017-10-22 11:18:27 +02:00
Drew DeVault 16f35ecbea Merge branch 'master' into heghe/wl_list 2017-10-21 22:03:48 -04:00
Drew DeVault 169b68b17c Rename remaining refs to wlr_list 2017-10-21 22:02:36 -04:00
Scott Anderson 37b8a096a9 Pass backend to render 2017-10-22 10:39:23 +13:00
Scott Anderson 822a9f65a4 Add pointer to backend inside wlr_output 2017-10-22 10:36:07 +13:00
Tony Crisci eaed6b6d29 wl-output: send layout position 2017-10-20 07:29:01 -04:00
Heghedus Razvan 1d716241af Replace list_t with wl_list in wlr_output
Signed-off-by: Heghedus Razvan <heghedus.razvan@gmail.com>
2017-10-20 11:46:09 +03:00
emersion a7d7659a93
Fix render errors with gnome-terminal 2017-10-18 20:13:59 +02:00
Drew DeVault 62371a9974 Merge pull request #257 from emersion/fix-client-cursors
[WIP] Fix client cursors
2017-10-17 09:22:43 -04:00
emersion 786f4bdd4d
Disable hardware cursors for now 2017-10-17 00:04:33 +02:00
emersion 08720db01d
Release buffer in wlr_surface_flush_damage 2017-10-14 13:33:34 +02:00
emersion 6dc0517bb1
Fix software cursor when setting committed cursor surface 2017-10-14 13:24:29 +02:00
emersion dd5114a514
Fix client cursors when software cursors are used 2017-10-14 12:44:25 +02:00
emersion 8fd4ae5de8
Fix cursor role name, fix segfault when surface->resource is NULL 2017-10-14 12:21:36 +02:00
emersion 19860c03f7
Better handling of hidden cursors in wayland backend, add TODOs 2017-10-12 13:25:29 +02:00
emersion 92daa790bb
Allow to update the cursor hotspot without its pixels 2017-10-12 09:40:51 +02:00
emersion 5c6a933890
Do not call wlr_surface_state_release_buffer anymore 2017-10-11 20:29:21 +02:00
Greg V a5fe9aa736 Add FreeBSD compatibility 2017-10-11 00:07:21 +03:00
emersion b1cba36aeb
Call frame_callback_list after rendering the cursor 2017-10-09 19:34:56 +02:00
emersion 8f7962ed44
Do not commit surface on set_cursor, breaks GTK+ apps 2017-10-09 15:45:46 +02:00
emersion b76e64e7bf
Fix cleanup old cursor surface in wlr_output_set_cursor_surface 2017-10-09 15:23:58 +02:00
emersion c4c948c5d9
Use attach x,y when computing hotspot, set sx,sy in surface_attach 2017-10-09 00:08:54 +02:00
emersion 008e1d596d
Fix cursor stride 2017-10-09 00:02:21 +02:00
emersion c7a4346bfc
Hide cursor when surface == NULL 2017-10-08 23:39:38 +02:00
emersion bceaee6eb7
Stop listening to cursor surface when manually setting cursor data 2017-10-08 23:29:04 +02:00
emersion cebb202f7d
Set and check cursor surface role 2017-10-08 23:24:57 +02:00
emersion 8a77d1b6a2
Listen to cursor surface commit & destroy events 2017-10-08 23:11:59 +02:00
emersion 17354b630a
Read surface buffer to set output cursor 2017-10-08 22:30:31 +02:00
emersion 9b83caa658
Add wlr_output_set_cursor_surface 2017-10-08 21:21:06 +02:00
emersion 0ce3135304
Move read_pixels from output to renderer 2017-10-08 02:11:56 +02:00
emersion a87f016017
Remove cairo dependency, write raw pixels 2017-10-07 19:01:11 +02:00
emersion d4cc82f11a
Call glReadPixels right before swapping buffers 2017-10-07 16:22:03 +02:00
emersion d0db6a80ab
Add post_frame event to wlr_output, use wlr_drm_plane_make_current in wlr_drm_output_read_pixels 2017-10-07 16:22:02 +02:00
emersion 35f9700251
First attempt to implement screenshooter 2017-10-07 16:22:02 +02:00
emersion 2ffa4f3fce
When output has no modes, send one anyway 2017-10-07 14:01:25 +02:00
Versus Void 641d08ce7e Transform hotspot with cursor
Fix #188
2017-10-06 09:07:08 +03:00
emersion 6f98b5a337
Add set_gamma and get_gamma_size to wlr_output_impl 2017-09-06 18:53:08 +02:00
emersion cd125377fc
Add wlr_output_{set_gamma,get_gamma_size} 2017-09-06 17:34:09 +02:00
Tony Crisci d84deb0742 add wlr_output destroy event 2017-08-31 07:47:44 -04:00
Dominique Martinet f24b3df980 wlr renderer/texture: rename init to create when it does alloc 2017-08-19 08:33:31 +02:00
Dominique Martinet 978f935947 output: default scale to 1
This prevents us from telling application our scale is 0, when it has no
reason to be.
2017-08-18 16:01:40 +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 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
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 6569c2b626 Merge pull request #53 from nyorain/drm_buffer
Implement drm (egl) buffer attaching
2017-08-10 22:20:21 -04:00
Scott Anderson 5465621d0a Update rotation matrix correctly. Fixes #60. 2017-08-11 09:29:28 +12:00
nyorain 67369173aa Implement drm (egl) buffer attaching 2017-08-10 10:59:58 +02:00
nyorain e167f41fde Rename wlr_surface -> wlr_texture; attach -> upload 2017-08-08 18:25:16 +02:00
Scott Anderson afd058b754 Fix software cursor. Fixes #45 2017-08-08 20:22:26 +12:00
Scott Anderson 1db97a9af9 Updated DRM cursor rendering 2017-08-06 21:38:40 +12:00
Scott Anderson aedfa27d3a Clean up resources when plane is reassigned 2017-08-06 15:54:38 +12:00
nyorain fdab81e1c9 Use meson build system 2017-08-05 22:34:24 +02:00
Tony Crisci a43016b8e2 bugfix: fix cursor software rendering fallback
wlr_surface_attach_pixels() expects a wl_shm_format but a GL format was
given. This caused a bug where software rendering of the cursor would
fail when no pixel format can be found.
2017-07-24 16:34:40 -04:00
Drew DeVault 8920b5d607 Merge branch 'wlcore' 2017-06-29 16:00:24 -04:00
Drew DeVault f5b7bc033e Add wlr_wl_compositor and remove wlr_wl_shm 2017-06-26 10:26:55 -04:00
Scott Anderson 0cd94f0cf0 Added software cursor fallback 2017-06-26 17:34:15 +12:00
Drew DeVault 168f0955ab Add wl_output globals for wlr_outputs 2017-06-22 14:27:35 -04:00
Drew DeVault bb16025318 Fix issues with projection on drm backend 2017-06-22 11:19:46 -04:00
Drew DeVault f4453d104d Reorganize wlr-common 2017-06-21 12:10:07 -04:00
Drew DeVault fd91244e83 Update everyone to use new headers 2017-06-21 10:27:45 -04:00
Drew DeVault b9d36c8149 Add dynamic output resizing for Wayland backend
This allows outputs to:
- Not support modesetting
- Resize themselves
2017-06-20 17:51:45 -04:00
Drew DeVault 7e038a6110 Add (broken) DRM hardware cursors 2017-06-16 15:38:34 -04:00
Drew DeVault fc1dc1b5b0 Use constant VBO for quad, add matrix stuff 2017-06-07 21:35:07 -04:00
Drew DeVault cda12a3eda Add texture, use index buffer, tweak matricies 2017-06-07 11:06:14 -04:00
Scott Anderson 382f712792 Merge remote-tracking branch 'upstream/master' into rotation 2017-06-08 00:52:33 +12:00
Scott Anderson 632a7acb03 Filled out more wlr_output fields. 2017-06-08 00:39:40 +12:00
Scott Anderson 53dd622263 Provide user with transformation matrix 2017-06-07 16:43:57 +12:00
Drew DeVault 6f5c70ac69 Let backend track transform state
This will be necessary to provide it to clients via wl_output.
2017-06-06 11:48:30 -04:00
Drew DeVault e2ee67125e s/wayland.h/types.h/g 2017-05-31 16:24:32 -04:00
Drew DeVault c7f6981d9c Clean up outputs on exit 2017-05-31 16:17:04 -04:00
Drew DeVault 579909a368 Promote types to a standalone subproject 2017-05-31 15:43:13 -04:00
Renamed from wayland/types/wlr_output.c (Browse further)