Commit graph

104 commits

Author SHA1 Message Date
emersion
6bbf507082
surface: fix texture not updated on commit
When a client attaches a wl_drm or a linux_dmabuf buffer, we only
update it if the size is different from the one of the old buffer.
This means that if the client attaches a new, updated buffer with
the same size as the old buffer, the texture won't get updated.

This commit changes this behavior and re-creates the texture if
the client attaches a new buffer, without requiring the size to be
different.
2018-03-29 19:44:57 -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
Guido Günther
805039457a wlr_surface: fix indentation 2018-03-23 08:59:48 +01:00
emersion
1914a1aa2b
surface: drop wlr_surface_get_matrix 2018-03-15 18:35:22 +01:00
emersion
8b58e1a3ad
Merge branch 'master' into matrix-redesign 2018-03-15 15:48:09 +01:00
emersion
824a95ad19
matrix: use 2D matrices 2018-03-15 15:33:58 +01:00
emersion
de0e40d621
Merge pull request #698 from agx/linux-dmabuf
Add initial linux_dmabuf protocol support
2018-03-15 12:45:07 +01:00
Guido Günther
14cdb6153f Add initial linux_dmabuf protocol support
Tested with

    ./weston-simple-dmabuf-drm
    ./weston-simple-dmabuf-drm --import-immediate=1
    ./weston-simple-dmabuf-drm --y-inverted=1
    (and combinations)

Supports only single plane XRGB dmabufs for now.
2018-03-15 12:40:18 +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
90148e64ab
Fix clients binding multiple times to the same output 2018-03-01 10:19:48 +01:00
emersion
f0404f6d75
surface: don't reset frame_callback_list on resize 2018-02-22 22:40:02 +01:00
Drew DeVault
1d9be89e2d
Revert "ELF Visibility" 2018-02-19 18:01:27 -05:00
Scott Anderson
86269052eb Explicitly export EFL symbols 2018-02-19 14:26:40 +13:00
emersion
392d54a35d
Wrap wl_resource_get_user_data into safer helper functions
This ensures we're not incorrectly casting a resource.

Fixes #628
2018-02-13 23:48:46 +01:00
emersion
c2e1474010
Reformat all #include directives 2018-02-12 21:29:23 +01:00
emersion
36ead80cd1
Make wlr_signal_emit_safe private 2018-02-12 19:52:47 +01:00
emersion
5e58d46cc1
Add wlr_signal_emit_safe 2018-02-12 09:12:31 +01:00
emersion
e049610b47
surface: copy buffer damage to surface damage 2018-01-28 21:29:51 +01:00
emersion
861d5bdff2
surface: fix damage when resizing a surface in QT apps 2018-01-27 21:49:40 +01:00
emersion
ece2c1e4e2
Damage tracking for transformed outputs 2018-01-26 22:11:09 +01:00
emersion
a8cb02f585
surface: add damage when subsurface moves 2018-01-22 10:34:23 +01:00
emersion
59c53e8333
Merge remote-tracking branch 'upstream/master' into output-damage 2018-01-21 22:18:06 +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
ddafcb86a2
surface: add resize damage 2018-01-20 00:52:43 +01:00
emersion
59ba8f35ed
rootston: use surface damage 2018-01-18 21:34:10 +01:00
Tony Crisci
5a18f62fee add role-committed hook 2017-12-27 06:06:29 -05:00
emersion
54f1135c05
Fix fullscreen in xdg-shell 2017-11-20 20:53:13 +01:00
Drew DeVault
86b8729998 Merge remote-tracking branch 'origin/master' into hidpi 2017-11-02 23:34:02 -04:00
emersion
f8de7aa0fd
Add checks for wl_resource_create 2017-11-02 23:14:24 +01: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
a7446792a1 Consider scale factor when rendering views 2017-11-01 08:44:07 -04:00
emersion
816d6890ee
Fix remaining unchecked allocs in types and code style 2017-10-31 11:58:39 +01:00
Drew DeVault
bbf08f3ef9 Merge pull request #262 from acrisci/feature/data-device-selection
wlr-data-device
2017-10-24 08:22:13 -04:00
Tony Crisci
1dbe314937 Merge branch 'master' into feature/data-device-selection 2017-10-24 07:57:36 -04:00
Tony Crisci
6e7caaee6b Revert "wlr-surface: destroy texture on null buffer commit"
This reverts commit 0e7d13fab7.
2017-10-23 09:09:12 -04:00
Tony Crisci
0e7d13fab7 wlr-surface: destroy texture on null buffer commit 2017-10-22 21:07:54 -04:00
Tony Crisci
d1dd0a6970 refactor buffer detection 2017-10-22 21:07:32 -04:00
Scott Anderson
9b984253e2 Move egl.h to render/egl.h 2017-10-22 10:36:07 +13:00
Tony Crisci
df0a8d3abe wlr-data-device: drag icons 2017-10-15 11:06:03 -04:00
Drew DeVault
fbddc81b59 Merge pull request #254 from versusvoid/fix-frame-callback-double-free
Destroy callbacks before callback list reinitialization
2017-10-10 08:37:19 -04:00
Versus Void
d3af2c09c2 Destroy callbacks before callback list reinitialization 2017-10-10 13:16:56 +03:00
Versus Void
a6db47196c Upload texture on surface commit 2017-10-10 11:18:38 +03:00
Drew DeVault
c39bfe7f84 Merge pull request #206 from emersion/client-cursor
Client provided cursors
2017-10-09 17:56:05 -04:00
Drew DeVault
1c3c2ff90a Merge pull request #250 from acrisci/feature/surface-finder-to-wlr
move surface finder functions to wlroots
2017-10-09 17:28:27 -04:00
Tony Crisci
100b39c608 bug: null buffer commit detection 2017-10-09 17:19:17 -04:00
Tony Crisci
654e2ccd6b move surface finder functions to wlroots 2017-10-09 16:51:55 -04:00
emersion
c4c948c5d9
Use attach x,y when computing hotspot, set sx,sy in surface_attach 2017-10-09 00:08:54 +02:00