Matthias Clasen
ee8c2a235f
stylecontext: Deprecate most apis
...
The notable exception here are the global provider apis,
which are needed in some form and don't have a replacement
yet. Move them to gtkstyleprovider.[hc], so we can wholly
deprecated gtkstylecontext.[hc].
2022-10-12 15:35:00 -04:00
Matthias Clasen
60dafebd91
Deprecate gtk_snapshot_render apis
...
Move the implementations from gtksnapshot.c to
gtk/deprecated/gtkrender.c and deprecated these
functions. We want to get rid of them.
These functions are still used in some of our widgetry,
so use G_GNUC_BEGIN/END_IGNORE_DEPRECATIONS around
them.
2022-10-12 15:35:00 -04:00
Matthias Clasen
7c5e1c6195
gtk: Rename some private headers
...
Improve the consistency of our private header
naming, by add 'private' to a bunch of them.
2022-10-05 23:01:28 -04:00
Benjamin Otte
dbab69c453
snapshot: Don't critical on dispose
...
When there's remaining state that draws nothing, it returns no
rendernode. So do a NULL-check before unreffing it.
2022-08-01 20:28:46 +00:00
Benjamin Otte
09f0c96b9b
Fix g_object_new(GTK_TYPE_SNAPSHOT)
...
GJS apparent likes g_object_new() over actual constructors, so make that work.
2022-08-01 20:08:58 +00:00
Bilal Elmoussaoui
b362eeefdf
g-i: mark GtkSnapshot to_(node|paintable) as nullable
...
Fixes an upstream issue reported at https://github.com/gtk-rs/gtk4-rs/issues/845
2022-01-23 22:11:07 +00:00
Maximiliano Sandoval R
6d80135342
docs: Improve docs for gtksnapshot.c
2022-01-05 14:06:41 +01:00
Matthias Clasen
5dec1b0cc0
Merge branch 'wip/baedert/for-master' into 'master'
...
Some fixes, hmm yes
See merge request GNOME/gtk!4068
2021-10-18 20:58:46 +00:00
Matthias Clasen
bddf9f9ca3
docs: Cosmetics
...
Do a round of "the the" removal.
2021-10-18 08:35:54 -04:00
Timm Bäder
085f0171c1
Ensure blur nodes have a positive blur radius
2021-10-17 12:15:34 +02:00
Bilal Elmoussaoui
257adb4464
gtk: fix Snapshot.push_shadow annotation
2021-10-12 09:00:03 +00:00
Matthias Clasen
06423d807f
Revert "gtk: Pass font options along"
...
This reverts commit 062a15310a
.
2021-09-04 15:42:05 -04:00
Matthias Clasen
062a15310a
gtk: Pass font options along
...
Pass the widget's font options along when we
are creating text nodes.
2021-09-03 12:52:05 -04:00
Matthias Clasen
b70b058b66
Merge branch 'transparent-optimizations' into 'master'
...
snapshot: Handle transparent opacity nodes correctly
See merge request GNOME/gtk!3754
2021-07-15 18:39:48 +00:00
Matthias Clasen
aaa68954c3
snapshot: Handle transparent opacity nodes correctly
...
Eliding totally transparent content from the node tree is
not 100% correct, since filters can make things visible, so
we need to at least preserve the bounds. We can do that by
creating a transparent color node.
2021-07-15 13:18:23 -04:00
Timm Bäder
433233258b
snapshot: Only compute start and end point if we have to
...
If the linear gradient results in a color node, we don't need the start
and end point. Only declare and compute it if we need to.
2021-07-15 16:52:38 +02:00
Timm Bäder
3eed61deba
snapshot: Replace trivial gradients with color nodes
...
Extend this to all existing gradient types
2021-07-15 16:51:17 +02:00
Matthias Clasen
91f7b9663f
gtk: Clean up docs syntax
...
Replace leftover gtk-doc syntax (#Type) with backquotes.
2021-05-22 17:25:26 -04:00
Matthias Clasen
7fe0610b68
introspection: Stop using allow-none
...
allow-none has been deprecated for a long time
already. Instead use optional and nullable everywhere.
2021-05-20 19:17:49 -04:00
Matthias Clasen
8ba16eb4f1
Documentation fixes
...
Mostly fixing up indentation of continuation lines,
and other small cleanups.
2021-05-20 19:17:49 -04:00
Benjamin Otte
ef455f5c85
snapshot: Move sanity checks to a better place
...
Fixes cases where the sanity checks would reject valid code, like when
using GL shaders on a scaled transform.
Fixes #3819
2021-04-01 16:53:33 +02:00
Benjamin Otte
05e4cd1579
snapshot: scale border widths when appending border nodes
...
Found by Matthias on IRC while arguing about GtkSnapshot being too
complicated.
2021-04-01 16:37:43 +02:00
Matthias Clasen
d0ed62e747
snapshot: Convert docs
2021-03-11 16:37:38 +00:00
Matthias Clasen
c60a316e22
Move gtk_rounded_rect_scale_affine to the right place
...
This function should live with the rest of the
GskRoundedRect code in gskroundedrect.c.
2021-03-07 15:17:32 -05:00
Christian Hergert
c90ffc7363
snapshot: fix warning when asserts are disabled
2021-02-10 16:13:38 -08:00
Benjamin Otte
96e1b85c2c
gdkarray: Add a "stolen" boolean to splice()
...
If set to TRUE, does not call the free func for the removed items.
This can be used to move items between arrays without having to do the
refcounting dance.
2020-12-24 06:38:45 +01:00
Benjamin Otte
8706d69e60
snapshot: Add gsk_snapshot_append_conic_gradient()
2020-12-03 01:15:53 +01:00
Emmanuele Bassi
247fc2e471
Blend nodes might have NULL top/bottom nodes
...
We have code in place to handle a NULL node in the state when dealing
with blend nodes, but we don't always check for NULL, which leads to
warnings in the CSS Blend modes demo.
2020-11-26 00:21:11 +00:00
Benjamin Otte
163c04c101
snapshot: Add cleanup function to snapshot state
...
Otherwise we're leaking data in error cases.
2020-11-17 19:04:39 +01:00
Benjamin Otte
f2284ff40f
rendernode: Rename all gsk_render_node_peek_*() functions
...
Those are getters, they should be gsk_render_node_get_*() functions.
2020-11-17 19:04:39 +01:00
Matthias Clasen
687ed74d46
Merge branch 'snapshot-stack-optimize' into 'master'
...
Minor optimizations to GtkSnapshot state stack
See merge request GNOME/gtk!2641
2020-09-29 18:44:07 +00:00
Alexander Larsson
796e6ee306
snapshot: Preallocate and don't memset the state stack
...
Most of the time the snapshot is less than 16 levels deep (did some testing
in gtk-demo), so lets pre-allocate 16 levels of state stack to avoid the
extra allocation most of the time.
2020-09-29 16:03:06 +02:00
Matthias Clasen
c897daf797
snapshot: Document radial gradient apis
2020-09-29 07:04:07 -04:00
Alexander Larsson
950cc41e15
GtkSnapshot: Add gtk_snapshot_push_glshader()
2020-09-29 09:51:16 +02:00
Matthias Clasen
5206cfa837
Merge branch 'wip/otte/for-master' into 'master'
...
snapshot: Don't flip textures
See merge request GNOME/gtk!2633
2020-09-28 15:43:02 +00:00
Benjamin Otte
651c92c0ed
snapshot: Don't flip textures
...
... or gradients or borders or shadows. Instead, ensure that affines
have non-negative scale factors. Otherwise add a transform node.
The only place where this check is not necessary is color nodes, but
special casing them seems not worth it.
2020-09-28 16:14:28 +02:00
Matthias Clasen
c08df82d54
snapshot: switch to h/vradius
2020-09-18 15:39:07 +02:00
Matthias Clasen
66d16049c3
snapshot: Add api for radial gradients
...
These are the equivalents of the linear gradient apis.
2020-09-18 15:39:04 +02:00
Benjamin Otte
3078b180fe
Replace "gdouble" with "double"
2020-07-25 00:47:36 +02:00
Timm Bäder
720c298786
snapshot: Use collect_default directoy in push_debug()
...
Instead of going through collect_debug and then doing a collect_default
anyway if the message is NULL.
2020-07-17 05:49:12 +02:00
Benjamin Otte
6f8e9bf3a9
snapshot: Use GdkArray for the state stack
2020-07-16 18:09:58 +02:00
Benjamin Otte
65359dcc59
snapshot: Port node list to GdkArray
2020-07-16 18:09:57 +02:00
Benjamin Otte
ac8b398c50
snapshot: Move structs into .c file
...
They aren't used anywhere else.
2020-07-16 18:09:57 +02:00
Corentin Noël
076b2f11d2
docs: Fix several missing references in the documentation
...
This fixes several typos and missing references
2020-05-11 19:26:20 +02:00
Timm Bäder
f4acde371e
snapshot: Avoid a save/restore pair if we can
2020-04-17 15:21:00 +02:00
Emmanuele Bassi
59852d3425
Add missing transfer annotation
2020-04-08 15:40:15 +01:00
Timm Bäder
4cfac3b91c
snapshot: Remove new_with_parent
...
Unneeded now that we have push_collect()/pop_collect()
2020-02-07 13:16:32 -05:00
Timm Bäder
bf8fb2c1a5
snapshot: Add _push_collect() and _pop_collect()
...
These will replace the previous gtk_snapshot_new_with_parent(), which
allocated an entirely new GObject just to push()/pop() some state. This
is already a problem but will be more important in the future as we
start using this more.
2020-02-07 13:16:32 -05:00
Timm Bäder
45455f1bdb
Remove GtkCssShadowsValue
...
Previously, we wrapped all GtkCssShadowValues in a GtkCssShadowsValue,
even if it was just one shadow. This causes an unnecessary bloat in
css values.
Make each GtkCssShadowValue able to handle multiple shadows instead, and
use gtk_css_shadow_value* API everywhere.
2020-01-18 08:49:52 +01:00
Timm Bäder
67991ed0f4
Remove GtkCssRgbaValue
...
The differenciation between a literal color value and an RGBA value
caused problems in various situations. Just treat the two the same but
don't allow access to the rgba value of a non-literal color value.
This gets rid of around 1.6k rgba values in the widget-factory.
2020-01-18 08:49:51 +01:00