g.willems
dfe7afdb04
gdk/win32: support default-settings debug flag
2023-12-09 17:59:24 +01:00
Ben Mather
1629b072fe
texture: Enable texture diff against arbitrarily distant ancestors
2023-12-08 11:29:56 +00:00
Matthias Clasen
7cc5d5c7a5
Revert "Merge branch 'rgba-new-from-string' into 'main'"
...
This reverts commit 77f40d7508
, reversing
changes made to b969f4649d
.
It turns out we did not have agreement on this after all.
2023-12-02 10:55:35 +05:45
Arjan Molenaar
6948a74d72
Fix function signature warning
...
No arguments -> void
2023-11-28 21:24:10 +01:00
Matthias Clasen
77f40d7508
Merge branch 'rgba-new-from-string' into 'main'
...
Add convenience function gdk_rgba_new_from_string()
See merge request GNOME/gtk!6599
2023-11-28 17:56:21 +00:00
FeRD (Frank Dana)
f4f25e584c
Fix docs function reference
2023-11-27 21:16:44 -05:00
FeRD (Frank Dana)
b049a3501a
Additional review fixes
2023-11-27 19:44:24 -05:00
Emmanuele Bassi
0114fad8a5
Style/doc fixes from review
2023-11-28 00:42:19 +00:00
Matthias Clasen
6961c1fe4a
Use O_CLOEXEC instead of FD_CLOEXEC
...
GLib is complaining vocally about this.
2023-11-27 17:50:18 -05:00
Matthias Clasen
b937c17985
wayland: Be more careful when loading cursors
...
Make sure we don't access the cursor_images array out of bounds.
Related: #6234
2023-11-27 13:58:38 -05:00
FeRD (Frank Dana)
114d0621aa
Fix coding style issues
2023-11-26 16:19:06 -05:00
Matthias Clasen
d72fd951e1
Quiet a compiler warning
2023-11-26 08:47:51 -05:00
Matthias Clasen
c99f62aef1
Merge branch 'wip/dnd-fixes' into 'main'
...
DnD fixes
See merge request GNOME/gtk!6608
2023-11-25 17:59:39 +00:00
FeRD (Frank Dana)
39db73dff1
Add gdk_rgba_new_from_string()
...
Signed-off-by: FeRD (Frank Dana) <ferdnyc@gmail.com>
2023-11-24 22:19:39 -05:00
Benjamin Otte
d7bc4c719b
dmabuf: Remove unused headers
2023-11-25 01:44:34 +01:00
Benjamin Otte
725857e15b
dmabuf: Add a fallback list of fourccs
...
That way, we can work with older libdrm versions.
The list was generated via a bit of sed and grep from the current
dmabuf-fourcc.h, which is why I put it into its own file and included
all the formats, no matter how old they are.
2023-11-25 01:44:34 +01:00
Benjamin Otte
50ee872978
dmabuf: Add gdk_dmabuf_get_fourcc()
...
Returns the fourcc for a given GdkMemoryFormat.
Not sure if this is the best name, but I didn't know a better one.
2023-11-25 01:44:34 +01:00
Benjamin Otte
b6c82c6b54
dmabuf: Add all formats
...
Add the matching GdkMemoryFormat for all dmabuf formats.
This way, we don't fall back to RGBA8 for 10- and 16-bit formats that we
don't support natively when EGL or Vulkan use them.
Also includes corrections for a few mixups.
2023-11-25 01:44:34 +01:00
Benjamin Otte
1bf94b045c
dmabuf: Refactor function
...
1. Don't require passing in a GdkDisplay
2. return TRUE/FALSE if a format was found, so calling code can
decide how to handle failure itself
2023-11-25 01:44:34 +01:00
Matthias Clasen
f21175b3d0
frameclock: Inline a few things
...
There is no need to call type-checking getters in a loop.
2023-11-24 17:53:34 -05:00
Carlos Garnacho
988b9de210
gdk/wayland: Pass surface-relative coordinates in DnD events
...
Make this event behave like the other regular events, and emit
coordinates based on native surfaces. Fixes DnD over popovers
finding the correct coordinates.
2023-11-24 23:35:45 +01:00
Carlos Garnacho
0c19ef6c2c
gdk/wayland: Improve recent serial lookup
...
This function takes an event, so the place(s) that do
not have one readily available can only pass NULL, so
the serial lookup will only work for the pointer.
Pass a device (plus optional sequence) to this function,
as these places do at least have the corresponding
GdkDevice at hand.
Fixes serial lookups for DnD, for other devices than
pointers (e.g. tablets, or touch).
2023-11-24 23:30:36 +01:00
Maximiliano Sandoval R.
3a8834a437
gdk-enums: Add GDK_NO_MODIFIER_MASK
2023-11-24 18:04:56 +01:00
Matthias Clasen
b7a1b1d7ee
Fix some static analysis warnings
2023-11-24 10:35:57 -05:00
Matthias Clasen
57e382b59c
Merge branch 'sumibi-yakitori/fix-mouse-cursor-on-macos' into 'main'
...
macos: Change to send motion events to NSApp
Closes #6134
See merge request GNOME/gtk!6451
2023-11-24 13:06:53 +00:00
Matthias Clasen
a90a6c4517
Address various static analysis complaints
...
These were picked out of the scan_build logs in ci.
2023-11-22 00:07:47 -05:00
Matthias Clasen
c99c06f0da
wayland: Careful offloading with fractional scales
...
Sadly, subsurface positioning is undefined in this case. We'll
trust the compositor to not mess up if the device coordinates
after applying the scale are integral, but otherwise, we'll
decline.
2023-11-21 13:47:10 -05:00
Matthias Clasen
bda8f5393d
wayland: Allow attaching (some) non-opaque textures
...
Allow translucent textures when we are raising the subsurface.
2023-11-21 13:24:04 -05:00
Matthias Clasen
160fa969d4
subsurface: Replace place_above/below
...
Instead, do it all in attach(), which becomes more and more like
ConfigureWindow. This is good, because it will let us take the
above-ness into account when making decisions about attaching.
2023-11-21 13:24:04 -05:00
Benjamin Otte
edf33a6617
Merge branch 'wip/otte/for-main' into 'main'
...
subsurface: Don't marka failure as success
See merge request GNOME/gtk!6594
2023-11-21 17:01:54 +00:00
Benjamin Otte
86587a9328
subsurface: Don't marka failure as success
...
There was one branch in the success case that turned it into a failure,
yet we were still reporting a success (and discarding the buffer).
Don't do that.
2023-11-21 17:31:40 +01:00
Matthias Clasen
463b6dd1fd
Merge branch 'egl-device-info' into 'main'
...
EGL: Print out the device info
See merge request GNOME/gtk!6590
2023-11-21 05:04:35 +00:00
Matthias Clasen
88e1f77f90
EGL: Print out the device info
...
This may become more relevant info, with dmabuf formats being
tied to specific devices.
2023-11-20 23:40:00 -05:00
Matthias Clasen
eae0e15b9d
wayland: Move subsurface creation code
...
This belongs with all the other subsurface handling.
2023-11-20 18:01:09 -05:00
Matthias Clasen
2dcec44714
Drop the nograbs debug value
...
This was only used in the x11 backend, and I haven't seen it
actively recommended for debugging anything in ages.
2023-11-20 08:02:03 -05:00
Matthias Clasen
f04c819439
Drop the gl-legacy debug value
...
The consensus is that we can do without this.
2023-11-20 08:02:02 -05:00
Matthias Clasen
699c6d6159
Use GLES by default
...
With the advent of dmabuf support, using GLES has become more
attractive, since we can use its external texture support to
support more dmabuf formats.
You can go back to the previous preference order by setting
GDK_DEBUG=gl-prefer-gl
2023-11-19 08:07:03 -05:00
Matthias Clasen
025b846fce
Add a debug value to prefer desktop GL
...
This will be used in the next commit, when we change the default
preference to be GLES.
2023-11-19 08:07:02 -05:00
Matthias Clasen
fcdbab3f69
gl: Tweak debug values for GL api selection
...
Replace GDK_DEBUG=gl-gles with GDK_DEBUG=gl-disable-gl, and add
a GDK_DEBUG=gl-disable-gles to match.
2023-11-19 08:07:02 -05:00
Luca Bacci
0b853f62ed
Merge branch '6203_gdk_win32_precalculate_keymap' into 'main'
...
GdkWin32: precalculate keymap at display opening
Closes #6203
See merge request GNOME/gtk!6566
2023-11-18 13:24:21 +00:00
Matthias Clasen
d4a569057f
Cosmetics: Typo fix
2023-11-16 20:54:15 -05:00
Matthias Clasen
c5727df568
dmabuf: Add support for separate alpha formats
...
Support dmabuf formats with alpha in a separate plane.
Related: #6208
2023-11-16 20:53:52 -05:00
Benjamin Otte
7406cea257
Merge branch 'wip/otte/for-main' into 'main'
...
wayland: Don't create a new wl_buffer if the texture didn't change
See merge request GNOME/gtk!6577
2023-11-16 23:54:57 +00:00
Benjamin Otte
010ff81b2f
wayland: Don't create a new wl_buffer if the texture didn't change
...
Avoids flickering in Mutter - which is probably a mutter bug.
But it also reduces traffic, so it's a good thing anyway.
2023-11-17 00:22:27 +01:00
Matthias Clasen
6eb6b0cb50
Cosmetics: typo fix
2023-11-15 06:45:52 -05:00
Matthias Clasen
c81954120a
Merge branch 'fix-giodesktopappinfo-check' into 'main'
...
Revert "Conditional check for gdesktopappinfo header"
See merge request GNOME/gtk!6568
2023-11-15 05:13:08 +00:00
Matthias Clasen
4bdc44f4af
Revert "Conditional check for gdesktopappinfo header"
...
This reverts commit 13b94dab10
.
As pointed out in #6557 , this commit is broken and causes
gio/gdesktopappinfo.h to never be found.
2023-11-14 23:45:17 -05:00
Matthias Clasen
429056c214
Merge branch 'wip/otte/for-mclasen' into 'main'
...
gl: Don't punch hole if the subsurface is above
See merge request GNOME/gtk!6567
2023-11-15 00:26:45 +00:00
Benjamin Otte
acecf519bc
offload: Reject non-integer rectangles
...
We shouldn't just fudge with coordinates if we want accurate rendering.
2023-11-14 21:55:10 +01:00
Benjamin Otte
b2fbdcda41
subsurface: Report better error messages when rejecting textures
2023-11-14 21:54:38 +01:00
Luca Bacci
2803189afd
Merge branch 'gdkwin32_modernize_clipboard' into 'main'
...
GdkWin32: switch to new clipboard API
Closes #442
See merge request GNOME/gtk!6560
2023-11-14 20:09:55 +00:00
g.willems
ad08c1444a
win32: precalculate keymap at display opening
...
The default keymap and keymap layouts are calculated on request.
If done once a surface is setup and listening at win32 events,
we may then enter in a recursive loop.
To avoid this, precalculate the keymap as soon as displays are open.
Fixes #6203
Closes #6203
2023-11-14 20:26:05 +01:00
Benjamin Otte
46d4c70cd7
offload: Only print one debug message
...
... when failing to create the wl_buffer.
2023-11-14 15:04:38 +01:00
Benjamin Otte
4920ac4a57
offload: Move a debug message
...
If we fail to attach a buffer, we don't want to print this.
2023-11-14 15:04:38 +01:00
Benjamin Otte
190e7da317
wayland: Don't g_warning() on expected error
...
Print a GDK_DEBUG() message instead.
2023-11-14 13:06:05 +01:00
Matthias Clasen
00d7d4b17b
wayland: Implement empty_frame in draw contexts
2023-11-13 22:17:35 +01:00
Matthias Clasen
9eef566b54
gdk: Introduce empty frames in GdkDrawContext
...
We need a way to commit pending subsurface changes, even when no
drawing happened for the frame. empty_frame() is that way.
2023-11-13 22:17:35 +01:00
Matthias Clasen
ca054bfdc9
wayland: Request frame callbacks on subsurfaces
...
We need this for the case when the subsurface completely covers
up the main surface. Without it, we just stop updating.
2023-11-13 22:17:35 +01:00
Matthias Clasen
59dbfb0843
wayland: Implement subsurface api
...
This is not used anywhere yet.
2023-11-13 22:17:35 +01:00
Matthias Clasen
223e27e7dc
gdk: Add private subsurface api
...
Add api to allow creating subsurfaces, attaching textures to them,
and changing the stacking order.
This is just the api, there is no implementation yet.
2023-11-13 22:17:35 +01:00
Matthias Clasen
efe1415429
gdk: Add a debug flag for subsurfaces
...
You can now use GDK_DEBUG=offload to get debug spew about
subsurfaces and graphics offload.
2023-11-13 22:17:35 +01:00
Matthias Clasen
489723916d
wayland: Get format info for dmabufs
...
For now, all we do with it is dump the formats if you
set GDK_DEBUG=misc. In the future, this will be used
when attaching dmabufs to subsurfaces.
2023-11-13 22:17:35 +01:00
g.willems
a58424588f
win32: switch to new clipboard API
...
This is a backport of !1143 to gtk4.
SetClipboardViewer() API is obsolete is prone to clipboard chain breaks
from other applications.
Use recommended AddClipboardFormatListener() instead.
Fixes #442
2023-11-13 21:29:48 +01:00
Matthias Clasen
b24ae31716
dmabuf: Improve consistency of debug messages
...
Make sure all our dmabuf debug messages are display-scoped so the
inspector doesn't trigger them, use the same formatting throughout,
and improve consistency of wording here and there.
2023-11-12 13:02:58 +01:00
Matthias Clasen
7cf805c8b3
dmabuf: Add a debug message for format fallback
...
This may be helpful in pinpointing why a dmabuf format behaves
unexpectedly.
2023-11-12 11:24:37 +01:00
Matthias Clasen
6ae9cbfe0f
dmabuf: NV12 is opaque
...
Getting this wrong matters, since we won't offload textures in
non-opaque formats. Found by Robert Mader. At the same time,
unify the two places we have for mapping from fourcc to memory
format.
2023-11-11 23:56:01 +01:00
Benjamin Otte
a9e4993184
Merge branch 'wip/otte/enable-debug' into 'main'
...
Remove G_ENABLE_DEBUG around debug checks
See merge request GNOME/gtk!6546
2023-11-07 15:12:11 +00:00
Benjamin Otte
cd7e1c1387
dmabuf: Modify gdk_gl_context_import_dmabuf()
...
Move a bunch of code - namely the target selection - into the function.
I want to use the same code in the NGL renderer, so no need to duplicate
it.
2023-11-07 05:12:57 +01:00
Benjamin Otte
61207f81c3
dmabuf: Set same YUV colorspace as elsewhere
...
We use ITU.601 full range everywhere, so ensure it's used here, too.
2023-11-07 05:12:57 +01:00
Benjamin Otte
1a93967e1f
gdk: Remove debug modes in gdk_debug_parse_var()
...
Always support all variables.
2023-11-05 11:16:23 +01:00
Benjamin Otte
310ab7b531
Remove G_ENABLE_DEBUG around debug checks
...
It started out as busywork, but it does many separate things. If I could
start over, I'd take them apart into multiple commits:
1. Remove G_ENABLE_DEBUG around GDK_DEBUG_*() calls
This is not needed at all, the calls themselves take care of it.
2. Remove G_ENABLE_DEBUG around profiling code
This now enables profiling support in release builds.
3. Stop poking _gdk_debug_flags and use GDK_DEBUG_CHECK()
This was old code that was never updated.
4. Make !G_ENABLE_DEBUG turn off GDK_DEBUG_CHECK()
The code used to
#define GDK_DEBUG_CHECK(...) false
#define GDK_DEBUG(...)
which would compile away all the code inside those macros. This
means a lot of variable definitions and debug utility functions
would suddenly no longer be used and cause compiler errors.
2023-11-05 11:16:23 +01:00
Benjamin Otte
d55801c8ba
debug: Turn gdk_debug_message() into a function
...
1. MSVC can't deal with the nonstandard ##__VA_ARGS__
2. It allows setting a breakpoint on it.
2023-11-05 10:21:54 +01:00
Matthias Clasen
1914adc344
dmabuf: Don't check for image storage
...
I was wrong about this extension, and it isn't even a GL extension
to begin with, so revert all this.
2023-10-29 14:45:20 -04:00
Matthias Clasen
6e236b9459
Revert "gl context: Check for more GL extensions"
...
This reverts commit b8b5835fc6
.
2023-10-29 14:44:46 -04:00
Matthias Clasen
11715760f9
Revert "glcontext: Better debug spew"
...
This reverts commit 30e14f73fa
.
2023-10-29 14:44:29 -04:00
Matthias Clasen
06dda4e12b
Merge branch 'memory-format-swizzle-check' into 'main'
...
gl: Check all swizzle values
See merge request GNOME/gtk!6524
2023-10-26 02:38:35 +00:00
Matthias Clasen
4a749aee6e
Fix swizzle values for some memory formats
...
For opaque formats with 3 channels, we should use the default
GL_ALPHA, but for opaque formats with an ignored 4th channel,
we must use GL_ONE.
2023-10-25 21:39:52 -04:00
Matthias Clasen
bb2b8bf2c3
dmabuf: Refine the handling of implicit modifiers
...
If all formats with a given fourcc are external, treat the
fourcc with implicit modifiers as external too, following a
sugestion by Benjamin Otte.
2023-10-24 22:33:45 -04:00
Matthias Clasen
eb048c91be
dmabuf: Allow implicit modifiers
...
Remove all the roadblocks we've put up to keep implicit modifiers
out. Our importing code already handles them as a signal that says
'No modifiers, please!'. Now we just hope for the best and pass
things along.
This is necessary since some drivers won't produce any explicit
modifiers.
2023-10-24 22:33:45 -04:00
Matthias Clasen
8f90ddb906
dmabuf: Cache egl formats
...
Only call eglQueryDmaBufModifiersEXT once, and reuse the results.
2023-10-24 21:53:09 -04:00
Matthias Clasen
a90ffb117f
docs: Some additions
...
Add a link to the kernel docs about dmabufs.
2023-10-24 10:50:46 -04:00
Matthias Clasen
29681717ed
Fix annotations
...
It is always org.gtk.Property, even if we are in gdk.
2023-10-24 07:16:42 -04:00
Benjamin Otte
51a181af7a
Merge branch 'wip/otte/for-main' into 'main'
...
dmabuf: Seek back to the start
See merge request GNOME/gtk!6526
2023-10-23 19:57:21 +00:00
Benjamin Otte
e2edf693f5
gdk: Make float32 report its true depth
...
I have no idea how this is the only value that is wrong.
2023-10-23 21:22:17 +02:00
Benjamin Otte
323300e92a
dmabuf: Seek back to the start
...
https://docs.kernel.org/driver-api/dma-buf.html recommends doing that,
so we do that.
2023-10-23 17:57:57 +02:00
Benjamin Otte
e688be1cff
gdk: Add some debug messages around dmabuf initialization
2023-10-23 17:57:57 +02:00
Matthias Clasen
625eb508e8
dmabuftexturebuilder: Fix doc formatting
2023-10-22 23:24:46 -04:00
Matthias Clasen
2718e1715d
display: Add details to the docs
2023-10-22 23:24:27 -04:00
Matthias Clasen
6ddcad6b33
dmabuf: Update a comment
2023-10-22 23:14:07 -04:00
Matthias Clasen
30e14f73fa
glcontext: Better debug spew
...
Print out all the extensions we checked.
2023-10-22 22:41:53 -04:00
Matthias Clasen
39e205aa78
dmabuf: Don't print unsupported formats
...
We were confusingly printing "supported format" for dmabuf formats
that we end up not adding to our list of supported formats. Don't
do that, it is confusing. At the same time, we shuold print out
the linear formats we support via mmap.
2023-10-22 22:29:44 -04:00
Matthias Clasen
79f98f3a13
Cosmetics
...
Typo fix.
2023-10-22 22:18:30 -04:00
Benjamin Otte
a579e3bc6d
build: Fix up header includes
...
These weren't fixed in the merge request in
https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/6489
to the change from
https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/6514
2023-10-23 03:12:09 +02:00
Benjamin Otte
8f70f4b85e
dmabuf: Add support for 3 plane YUV formats
2023-10-23 02:54:23 +02:00
Benjamin Otte
911198cddd
dmabuf: Add NV16, NV61, NV24 and NV42
...
and sanitize them and NV21.
2023-10-23 02:54:23 +02:00
Matthias Clasen
a4d0a5bda5
dmabuf: We don't support external formats on GL
...
Filter out external-only formats unless we are on GLES.
2023-10-22 17:54:18 -04:00
Matthias Clasen
494154beb6
dmabuf: Add an EGL downloader
...
Add an implementation of GdkDmabufDownloader that uses
gsk_renderer_render_texture + GL texture download.
Since gsk isn't threadsafe, we do the download in the main thread,
taking care to not disturb the current GL context of whatever is
going on there at the time.
And since gsk renderers are expensive to create, we cache it
in the display.
Note that gsk does not yet have any special support for
dmabuf textures, so for now, they will always get downloaded
and then reuploaded as GL textures.
2023-10-22 16:42:17 -04:00
Matthias Clasen
8fb0ab2b43
gl context: Add private dmabuf API
...
Add API to import a dmabuf into a texture,
and to export a texture to a dmabuf.
All this is implemented using the relevant
EGL and GL extensions.
2023-10-22 16:39:24 -04:00
Matthias Clasen
b8b5835fc6
gl context: Check for more GL extensions
...
These will be used in future commits.
2023-10-22 16:39:24 -04:00
Matthias Clasen
463307655c
display: Check for more EGL extensions
...
We are going to rely on this in future commits.
2023-10-22 16:39:24 -04:00