diff options
author | Matthias Clasen <mclasen@redhat.com> | 2023-03-14 05:30:17 +0000 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2023-03-14 05:30:17 +0000 |
commit | 664ce48a4c6ec21e6baec4e1e344ca3b8523b6a1 (patch) | |
tree | 37385bc9bba0fca1654267f1548feb8bb535a32a | |
parent | 7b1644b2d0b8d658c789877265624f3cd695c1b6 (diff) | |
parent | 42f1b623bf5b6231057ff3bdc18ad33d8e1504f7 (diff) | |
download | gtk+-664ce48a4c6ec21e6baec4e1e344ca3b8523b6a1.tar.gz |
Merge branch 'matthiasc/for-main' into 'main'
gsk: Mark mask nodes as 'supports transforms'
See merge request GNOME/gtk!5650
-rw-r--r-- | gsk/gl/gskglrenderjob.c | 1 | ||||
-rw-r--r-- | gtk/gtkcssnumbervalue.c | 7 | ||||
-rw-r--r-- | gtk/gtkicontheme.c | 1 | ||||
-rw-r--r-- | testsuite/gsk/compare/texture-scale-magnify-rotate.node | 11 | ||||
-rw-r--r-- | testsuite/gsk/compare/texture-scale-magnify-rotate.png | bin | 0 -> 98 bytes | |||
-rw-r--r-- | testsuite/gsk/meson.build | 3 | ||||
-rw-r--r-- | testsuite/gsk/nodeparser/texture-scale-filters.node | 22 | ||||
-rw-r--r-- | testsuite/gsk/nodeparser/texture-scale-filters.ref.node | 26 |
8 files changed, 66 insertions, 5 deletions
diff --git a/gsk/gl/gskglrenderjob.c b/gsk/gl/gskglrenderjob.c index ce7ce774d1..30d7c9cc51 100644 --- a/gsk/gl/gskglrenderjob.c +++ b/gsk/gl/gskglrenderjob.c @@ -315,6 +315,7 @@ node_supports_transform (const GskRenderNode *node) case GSK_CAIRO_NODE: case GSK_BLEND_NODE: case GSK_BLUR_NODE: + case GSK_MASK_NODE: return TRUE; case GSK_SHADOW_NODE: diff --git a/gtk/gtkcssnumbervalue.c b/gtk/gtkcssnumbervalue.c index cd8c942c01..270711b27c 100644 --- a/gtk/gtkcssnumbervalue.c +++ b/gtk/gtkcssnumbervalue.c @@ -758,11 +758,8 @@ _gtk_css_number_value_get (const GtkCssValue *value, gboolean gtk_css_dimension_value_is_zero (const GtkCssValue *value) { - if (!value) - return TRUE; - - if (value->class != >K_CSS_VALUE_NUMBER) - return FALSE; + g_assert (value != 0); + g_assert (value->class == >K_CSS_VALUE_NUMBER); if (value->type != TYPE_DIMENSION) return FALSE; diff --git a/gtk/gtkicontheme.c b/gtk/gtkicontheme.c index 66c7d97f34..729f632852 100644 --- a/gtk/gtkicontheme.c +++ b/gtk/gtkicontheme.c @@ -3051,6 +3051,7 @@ theme_lookup_icon (IconTheme *theme, min_difference = G_MAXINT; min_dir_size = NULL; + min_file = NULL; for (i = 0; i < theme->dir_sizes->len; i++) { diff --git a/testsuite/gsk/compare/texture-scale-magnify-rotate.node b/testsuite/gsk/compare/texture-scale-magnify-rotate.node new file mode 100644 index 0000000000..e50c8ba126 --- /dev/null +++ b/testsuite/gsk/compare/texture-scale-magnify-rotate.node @@ -0,0 +1,11 @@ +clip { + clip: 24995 24995 10 10; + child: transform { + transform: translate(25000, 25000) rotate(90) translate(-25000, -25000); + child: texture-scale { + texture: url("data:;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAKElEQVQYlWNkYGD4z4AG/v/HEGJgwhDBAQZQIQs2hzMyMtLBauorBACQUgcSISWLRgAAAABJRU5ErkJggg=="); + bounds: 0 0 50000 50000; + filter: nearest; + } + } +} diff --git a/testsuite/gsk/compare/texture-scale-magnify-rotate.png b/testsuite/gsk/compare/texture-scale-magnify-rotate.png Binary files differnew file mode 100644 index 0000000000..9feff7a484 --- /dev/null +++ b/testsuite/gsk/compare/texture-scale-magnify-rotate.png diff --git a/testsuite/gsk/meson.build b/testsuite/gsk/meson.build index 1ded899729..ca8f833589 100644 --- a/testsuite/gsk/meson.build +++ b/testsuite/gsk/meson.build @@ -77,6 +77,7 @@ compare_render_tests = [ 'scaled-texture', 'shadow-in-opacity', 'texture-scale-magnify-10000x', + 'texture-scale-magnify-rotate', 'texture-scale-stripes', 'texture-url', 'transform-in-transform', @@ -234,6 +235,8 @@ node_parser_tests = [ 'texture-fail.node', 'texture-fail.ref.node', 'texture-fail.ref.errors', + 'texture-scale-filters.node', + 'texture-scale-filters.ref.node', 'texture-scale-unknown-filter.errors', 'texture-scale-unknown-filter.node', 'texture-scale-unknown-filter.ref.node', diff --git a/testsuite/gsk/nodeparser/texture-scale-filters.node b/testsuite/gsk/nodeparser/texture-scale-filters.node new file mode 100644 index 0000000000..1aef466ce5 --- /dev/null +++ b/testsuite/gsk/nodeparser/texture-scale-filters.node @@ -0,0 +1,22 @@ +texture-scale { + texture: url('data:,<svg><rect width="10" height="10" style="fill:red"/></svg>'); + bounds: 0 0 50 50; +} + +texture-scale { + texture: url('data:,<svg><rect width="10" height="10" style="fill:red"/></svg>'); + bounds: 0 0 50 50; + filter: linear; +} + +texture-scale { + texture: url('data:,<svg><rect width="10" height="10" style="fill:red"/></svg>'); + bounds: 0 0 50 50; + filter: nearest; +} + +texture-scale { + texture: url('data:,<svg><rect width="10" height="10" style="fill:red"/></svg>'); + bounds: 0 0 50 50; + filter: trilinear; +} diff --git a/testsuite/gsk/nodeparser/texture-scale-filters.ref.node b/testsuite/gsk/nodeparser/texture-scale-filters.ref.node new file mode 100644 index 0000000000..957013272e --- /dev/null +++ b/testsuite/gsk/nodeparser/texture-scale-filters.ref.node @@ -0,0 +1,26 @@ +texture-scale { + bounds: 0 0 50 50; + texture: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGElEQVQYlWP8z8Dwn4EIwESMolGF\ +1FMIAD2cAhL1w47oAAAAAElFTkSuQmCC\ +"); +} +texture-scale { + bounds: 0 0 50 50; + texture: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGElEQVQYlWP8z8Dwn4EIwESMolGF\ +1FMIAD2cAhL1w47oAAAAAElFTkSuQmCC\ +"); +} +texture-scale { + bounds: 0 0 50 50; + filter: nearest; + texture: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGElEQVQYlWP8z8Dwn4EIwESMolGF\ +1FMIAD2cAhL1w47oAAAAAElFTkSuQmCC\ +"); +} +texture-scale { + bounds: 0 0 50 50; + filter: trilinear; + texture: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGElEQVQYlWP8z8Dwn4EIwESMolGF\ +1FMIAD2cAhL1w47oAAAAAElFTkSuQmCC\ +"); +} |