Matthias Clasen
a44598772d
wayland: Use subsurface bounds for holes
...
When punching a hole into the opaque region, use the subsurface
bounds, which takes both the texture and the background into
account.
2024-04-15 19:53:46 -04:00
Matthias Clasen
933a0e5a98
subsurface: Some api revision and documentation
...
Rename things so they make more sense. The dest/source naming got
a bit unclear when we added background into the mix. Now we're going
for:
source_rect - the texture region to display
texture_rect - dimensions of the subsurface showing the texture
background_rect - dimensions of the background subsurface
bounds - union of texture_rect and background_rect
Also use this opportunity to add some api docs.
2024-04-15 19:53:46 -04:00
Matthias Clasen
3f9bdaa4c8
Add background to subsurfaces
...
Make it possible for subsurfaces to have a black background on a
secondary subsurface below the actual subsurface. Using a single-pixel
buffer for that background increases the changes that the compositor
will use direct scanout for the actual subsurface.
This changes the private subsurface API. All callers have been
updated to pass an empty background rect.
2024-04-15 19:53:46 -04:00
Robert Mader
a70998aa50
wayland: Support the single-pixel-buffer protocol
...
This just gets the manager object. It is not used yet.
2024-04-15 19:53:46 -04:00
Matthias Clasen
0fb1f44eec
gdk: Add a debug flag to allow non-dmabuf offload
...
This is useful for debugging offloading without having to rely
on gstreamer giving us dmabufs. To use it, set
GDK_DEBUG=force-offload
in the environment.
2024-04-15 19:53:46 -04:00
Matthias Clasen
1c8b22cf05
subsurface: Cosmetics
2024-04-15 19:53:46 -04:00
Matthias Clasen
fc405f8882
wayland: Cosmetics
...
Don't clear the same pointer twice.
2024-04-13 17:22:42 -04:00
Robert Mader
9583195e96
gdk/wayland: Make the surface handle empty commits
...
In order to avoid some code duplication and ensure the Cairo and
Vulkan implementations behave like the GL one.
2024-04-12 17:04:54 +02:00
Philip Withnall
680dba6524
gdk: Fix a maybe-uninitialized warning
...
If there somehow end up being no `supported_versions`, `ctx` would end
up being dereferenced before being initialised. While I think that’s
unlikely, the compiler doesn’t know that, so let’s just initialise the
variable unconditionally.
Signed-off-by: Philip Withnall <pwithnall@gnome.org>
2024-04-12 12:03:29 +01:00
Matthias Clasen
d1bb1d091c
Merge branch 'gdk-build-dep-fix' into 'main'
...
build: Add a missing dependency
Closes #6618
See merge request GNOME/gtk!7127
2024-04-11 20:57:34 +00:00
Matthias Clasen
6510b876d1
build: Add a missing dependency
...
Add the generated gdk headers to the sources for all the backends,
to guarantee that they are generated before the library is used.
Fixes : #6618
2024-04-11 15:47:38 -04:00
Matthias Clasen
4889199b14
Merge branch 'glarea-dispose-fix' into 'main'
...
dmabuf texture: Survive multiple disposes
Closes #6623
See merge request GNOME/gtk!7131
2024-04-11 18:20:12 +00:00
Luca Bacci
2e15225446
Merge branch 'remove-work-arounds' into 'main'
...
GdkWin32: Remove some work arounds that are not needed anymore
Closes #6614
See merge request GNOME/gtk!7114
2024-04-11 17:03:08 +00:00
Matthias Clasen
ed072b4b5d
dmabuf texture: Survive multiple disposes
...
dispose can be called more than once, so be safe for that.
2024-04-11 12:45:24 -04:00
Matthias Clasen
06e905f87d
Merge branch 'gtk-wlmod' into 'main'
...
Meson: Use wayland module
See merge request GNOME/gtk!7126
2024-04-11 01:29:29 +00:00
Xavier Claessens
95a8def7c2
Meson: Use wayland module
2024-04-10 11:43:04 -04:00
Matthias Clasen
8068111c6e
Merge branch 'fix-xi2-input-source-type-debug-msg' into 'main'
...
xi2: Fix incorrect input source type in Input debug message
Closes #6619
See merge request GNOME/gtk!7120
2024-04-10 00:45:14 +00:00
Matthias Clasen
aed4ced032
Merge branch 'broadway-port-2972-3130' into 'main'
...
[gtk4] gdk/broadway: Port !2972 and !3130 from gtk3
See merge request GNOME/gtk!4467
2024-04-10 00:12:28 +00:00
Matthias Clasen
a63e9d38fb
gdk: Add private convenience api
...
Add a function to get the monitor resolution.
We may use this information in the future to make font rendering
decisions.
2024-04-09 19:13:34 -04:00
Hansem Ro
d90dc7f75e
xi2: Fix incorrect input source type in Input debug message
...
This drops cursor and eraser source names to account for their removal
from GdkInputSource so that GDK_DEBUG=input debug message correctly
prints source type in X11 environment.
Fixes: c1d90273
("gdk: Drop GDK_SOURCE_ERASER")
Fixes: 3285f52d
("gdk: Drop GDK_SOURCE_CURSOR")
Closes : #6619
2024-04-08 10:15:00 -07:00
Matthias Clasen
2b09f5ea1e
dmabuf: Reshuffle docs slightly
...
Move related parts together, for easier understanding.
2024-04-07 13:03:13 -04:00
Matthias Clasen
85f2e1ccd8
Add gdk_dmabuf_texture_builder_set_dmabuf
...
Private utility api.
2024-04-07 11:12:13 -04:00
Matthias Clasen
91b98bc9e2
Add a private header
...
Just cosmetic reshuffling.
2024-04-07 11:12:13 -04:00
Matthias Clasen
72e9f30937
subsurface: Add transforms
...
Allow to specify a D₂ transform when attaching a texture to a
subsurface, to handle flipped and rotated content. The Wayland
implementation handles these transforms by setting a buffer
transform on the subsurface.
All callers have been updated to pass GDK_TEXTURE_TRANSFORM_NORMAL.
2024-04-07 11:02:40 -04:00
Luca Bacci
3c94e91e5e
GdkWin32: Do not clear surface contents when restoring from minimize
...
The code does not work anyway since we dropped WS_EX_LAYERED windows.
2024-04-06 10:58:40 +02:00
Luca Bacci
8a1bee1d79
GdkWin32: Don't explicitly set the transient owner as active
...
...when a transient child is hidden.
The system does that automatically
2024-04-06 10:58:25 +02:00
Luca Bacci
9297439de4
GdkWin32: Remove some work arounds that are not needed anymore
...
2cc650ce
was added to work around some of the regressions
introduced by 79557271
, but that commit was finally reverted
in 43476c09
.
We can now revert 2cc650ce
as well.
Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/6614
2024-04-06 10:44:02 +02:00
Matthias Clasen
c5d05fdc88
wayland: Work around mutter deficiences
...
Add the environment variable NO_POINTER_VIEWPORT to force the use
of buffer scale for pointer surfaces. This is a temporary workaround
for https://gitlab.gnome.org/GNOME/mutter/-/issues/2633 .
2024-04-05 11:13:24 +02:00
Matthias Clasen
1275a2cb8d
wayland: Use a viewport for pointer surfaces
...
This should give us more flexibility for buffer size vs surface
size.
Unfortunately, mutter doesn't play along currently, so this is
only useful for kwin, weston or sway.
2024-04-04 01:07:28 +02:00
Matthias Clasen
67a6f343a0
wayland: Keep pointer_output_scale as double
...
We can round up to the next integer when we need to.
2024-04-04 01:07:28 +02:00
Matthias Clasen
d0f5644771
macos: Handle callback cursors
...
This implementation matches the X11 one closely.
2024-04-04 01:07:28 +02:00
Matthias Clasen
b1a3ac8330
win32: Handle callback cursors
...
This implementation matches the X11 one closely.
2024-04-04 01:07:28 +02:00
Matthias Clasen
80811069ac
x11: Handle callback cursors
...
For these cursors, get the texture for the cursor image by
calling the callback. We always use scale 1.
2024-04-04 01:07:28 +02:00
Matthias Clasen
6e3dc1e669
wayland: Handle callback cursors
...
For these cursors, get the texture for the cursor image by
calling the callback. We don't do any caching of the cursor
images for now.
2024-04-04 01:07:28 +02:00
Matthias Clasen
d1aa0a74e4
gdk: Add callback cursors
...
Add a variant of GdkCursor that obtains the texture for the cursor
via a callback. The callback gives us the flexibility to handle
fractional scales and update the cursor for cursor theme size
changes as well as scale changes.
2024-04-04 01:07:28 +02:00
Carlos Garnacho
af4c9ea61e
Merge branch 'provide-touch-serial-later' into 'main'
...
gdk/wayland: Proivde latest touch serial even after a touch ended
See merge request GNOME/gtk!5782
2024-04-03 08:43:03 +00:00
Chris Williams
979d0f4b1d
wayland: Fix detection of empty settings portal response
...
The ReadAll method returns a one-element tuple, so
g_variant_n_children() is always 1.
2024-04-01 10:33:00 -04:00
Emmanuele Bassi
9509876f10
docs: Fix the reference link
2024-03-29 13:31:36 +00:00
Benjamin Otte
91e3bc4496
wayland: On hide, remove frame callbacks from subsurfaces
...
Fixes subsurfaces receiving frame callbacks while the surface is hidden
or already destroyed.
Fixes #6582
2024-03-28 20:29:06 +01:00
Matthias Clasen
c5f73cb406
Tweak the eglconfig description once more
...
Just always print the depth and stencil buffer depth,
for maximum clarity.
2024-03-27 16:30:27 +01:00
Luca Bacci
e6a86f61dc
Merge branch 'fix-issue-3749' into 'main'
...
GdkWin32: Always set WS_MINIMIZEBOX on GdkToplevel
Closes #3749
See merge request GNOME/gtk!7072
2024-03-22 17:57:06 +00:00
Luca Bacci
8ffa681e02
GdkWin32: Always set WS_MINIMIZEBOX on GdkToplevel
...
Regardless if server-side decorated or not. This way the shell knows
that the window can be minimized.
Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/3749
2024-03-22 16:47:59 +01:00
Matthias Clasen
f6c4d3731c
dnd: Go back to using dnd-move as move cursor
...
The move cursor in Adwaita is stuck with the 4-headed arrow image
which isn't suitable for a dnd cursor.
See https://gitlab.gnome.org/GNOME/adwaita-icon-theme/-/issues/286
2024-03-21 21:36:38 -04:00
Matthias Clasen
5e9070145e
wayland: Guarantee dnd-move as a cursor name
...
We need to go back to using this, since move is widely abused
and thus can't change its image to one thats appropriate for dnd.
2024-03-21 21:35:45 -04:00
Christian Hergert
53616a73e9
gdk/wayland: use wp_presentation for more accurate frame timings
...
This attempts to improve the accuracy for the "presentation_time" of an
individual GdkFrameTimings. That information is currently filled in as soon
as we get a frame callback. However, if presentation-time wayland protocol
is available, that will be used to supliment a more accurate time which
may improve future presentation-time predictions within GdkFrameClockIdle.
The protocol states that all related and sub surfaces will receive the
same information so it is safe that this could be registered for more
than just the toplevel. The information becomes idempotent.
2024-03-20 14:45:58 -07:00
Matthias Clasen
191f826075
wayland: Only set buffer scale if we can
...
We check this in some other places, so be consistent.
2024-03-19 22:22:53 -04:00
Matthias Clasen
5d52c43074
wayland: Check all required globals for subsurfaces
...
Before trying to use subsurfaces, make sure we have both
a subcompositor and a viewporter.
2024-03-19 22:22:53 -04:00
Matthias Clasen
f6a67aeb20
wayland: Check some required globals
...
This may be largely cosmetics, since these are core protocols that
are unlikely to ever be missing. But lets check anyway.
2024-03-19 17:28:25 -04:00
Matthias Clasen
7c04231255
Merge branch 'macos-remove-shadows' into 'main'
...
macos: Drop shadow related code from macos backend
See merge request GNOME/gtk!7048
2024-03-19 02:38:38 +00:00
Arjan Molenaar
08216dcee9
macos: Drop shadow related code from macos backend
2024-03-19 02:38:37 +00:00