mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-08 09:40:10 +00:00
gpu: Blur opaque textures correctly
Opaque textures don't clamp to transparent but instead to black. We didn't consider this, so we were blurring their edges into blackness not into transparency. Fix this by adding the GSK_GPU_AS_IMAGE_SAMPLED_OUT_OF_BOUNDS flag and respecting it in the implementation that uses it. Test included. Fixes #6980
This commit is contained in:
parent
85abff343e
commit
56fc8f0077
@ -113,7 +113,12 @@
|
||||
typedef struct _GskGpuNodeProcessor GskGpuNodeProcessor;
|
||||
|
||||
typedef enum {
|
||||
GSK_GPU_AS_IMAGE_UNUSED,
|
||||
/* The returned image will be sampled outside the bounds, so it is
|
||||
* important that it returns the right values.
|
||||
* In particular, opaque textures must ensure they return transparency
|
||||
* and images must not be contained in an atlas.
|
||||
*/
|
||||
GSK_GPU_AS_IMAGE_SAMPLED_OUT_OF_BOUNDS = (1 << 0),
|
||||
} GskGpuAsImageFlags;
|
||||
|
||||
typedef enum {
|
||||
@ -2214,7 +2219,9 @@ gsk_gpu_get_texture_node_as_image (GskGpuFrame *frame,
|
||||
return gsk_gpu_get_node_as_image_via_offscreen (frame, flags, ccs, clip_bounds, scale, node, out_bounds);
|
||||
|
||||
if (!gdk_color_state_equal (ccs, image_cs) ||
|
||||
gsk_gpu_image_get_flags (image) & GSK_GPU_IMAGE_STRAIGHT_ALPHA)
|
||||
gsk_gpu_image_get_flags (image) & GSK_GPU_IMAGE_STRAIGHT_ALPHA ||
|
||||
((flags & GSK_GPU_AS_IMAGE_SAMPLED_OUT_OF_BOUNDS) &&
|
||||
gdk_memory_format_alpha (gsk_gpu_image_get_format (image)) == GDK_MEMORY_ALPHA_OPAQUE))
|
||||
{
|
||||
image = gsk_gpu_copy_image (frame, ccs, image, image_cs, FALSE);
|
||||
gsk_gpu_cache_cache_texture_image (gsk_gpu_device_get_cache (gsk_gpu_frame_get_device (frame)),
|
||||
@ -2672,7 +2679,7 @@ gsk_gpu_node_processor_add_blur_node (GskGpuNodeProcessor *self,
|
||||
gsk_gpu_node_processor_get_clip_bounds (self, &clip_rect);
|
||||
graphene_rect_inset (&clip_rect, -clip_radius, -clip_radius);
|
||||
image = gsk_gpu_node_processor_get_node_as_image (self,
|
||||
0,
|
||||
GSK_GPU_AS_IMAGE_SAMPLED_OUT_OF_BOUNDS,
|
||||
&clip_rect,
|
||||
child,
|
||||
&tex_rect);
|
||||
@ -2711,7 +2718,7 @@ gsk_gpu_node_processor_add_shadow_node (GskGpuNodeProcessor *self,
|
||||
clip_bounds.size.height + node->bounds.size.height - child->bounds.size.height);
|
||||
|
||||
image = gsk_gpu_node_processor_get_node_as_image (self,
|
||||
0,
|
||||
GSK_GPU_AS_IMAGE_SAMPLED_OUT_OF_BOUNDS,
|
||||
&clip_bounds,
|
||||
child,
|
||||
&tex_rect);
|
||||
|
213
testsuite/gsk/compare/shadow-texture-formats.node
Normal file
213
testsuite/gsk/compare/shadow-texture-formats.node
Normal file
@ -0,0 +1,213 @@
|
||||
color-matrix {
|
||||
matrix: matrix3d(1, 0, 0, 0,
|
||||
0, 1, 0, 0,
|
||||
0, 0, 1, 0,
|
||||
0, 0, 0, 256);
|
||||
/* We allow off by 2 here because this is all happening in float32,
|
||||
* so rounding errors are common.
|
||||
* And the shadow should never be > 50% coverage.
|
||||
*/
|
||||
offset: 0 0 0 -254;
|
||||
child: container {
|
||||
|
||||
shadow { shadows: black 0 0 10; child: texture { bounds: 0 0 30 30; texture: url('data:;base64,\
|
||||
SUkqABgAAAD/AAD//wAA//8AAP//AAD/DQAAAQMAAQAAAAIAAAABAQMAAQAAAAIAAAACAQMABAAA\
|
||||
ALoAAAADAQMAAQAAAAEAAAAGAQMAAQAAAAIAAAARAQQAAQAAAAgAAAASAQMAAQAAAAEAAAAVAQMA\
|
||||
AQAAAAQAAAAXAQQAAQAAABAAAAAcAQMAAQAAAAEAAAAxAQIABAAAAEdUSwBSAQMAAQAAAAEAAABT\
|
||||
AQMABAAAAMIAAAAAAAAACAAIAAgACAABAAEAAQABAA==\
|
||||
'); } }
|
||||
shadow { shadows: black 0 0 10; child: texture { bounds: 50 0 30 30; texture: url('data:;base64,\
|
||||
SUkqABgAAAD/AAD//wAA//8AAP//AAD/DQAAAQMAAQAAAAIAAAABAQMAAQAAAAIAAAACAQMABAAA\
|
||||
ALoAAAADAQMAAQAAAAEAAAAGAQMAAQAAAAIAAAARAQQAAQAAAAgAAAASAQMAAQAAAAEAAAAVAQMA\
|
||||
AQAAAAQAAAAXAQQAAQAAABAAAAAcAQMAAQAAAAEAAAAxAQIABAAAAEdUSwBSAQMAAQAAAAEAAABT\
|
||||
AQMABAAAAMIAAAAAAAAACAAIAAgACAABAAEAAQABAA==\
|
||||
'); } }
|
||||
shadow { shadows: black 0 0 10; child: texture { bounds: 100 0 30 30; texture: url('data:;base64,\
|
||||
SUkqABgAAAD/AAD//wAA//8AAP//AAD/DQAAAQMAAQAAAAIAAAABAQMAAQAAAAIAAAACAQMABAAA\
|
||||
ALoAAAADAQMAAQAAAAEAAAAGAQMAAQAAAAIAAAARAQQAAQAAAAgAAAASAQMAAQAAAAEAAAAVAQMA\
|
||||
AQAAAAQAAAAXAQQAAQAAABAAAAAcAQMAAQAAAAEAAAAxAQIABAAAAEdUSwBSAQMAAQAAAAEAAABT\
|
||||
AQMABAAAAMIAAAAAAAAACAAIAAgACAABAAEAAQABAA==\
|
||||
'); } }
|
||||
shadow { shadows: black 0 0 10; child: texture { bounds: 150 0 30 30; texture: url('data:;base64,\
|
||||
SUkqABgAAAD/AAD//wAA//8AAP//AAD/DQAAAQMAAQAAAAIAAAABAQMAAQAAAAIAAAACAQMABAAA\
|
||||
ALoAAAADAQMAAQAAAAEAAAAGAQMAAQAAAAIAAAARAQQAAQAAAAgAAAASAQMAAQAAAAEAAAAVAQMA\
|
||||
AQAAAAQAAAAXAQQAAQAAABAAAAAcAQMAAQAAAAEAAAAxAQIABAAAAEdUSwBSAQMAAQAAAAIAAABT\
|
||||
AQMABAAAAMIAAAAAAAAACAAIAAgACAABAAEAAQABAA==\
|
||||
'); } }
|
||||
shadow { shadows: black 0 0 10; child: texture { bounds: 200 0 30 30; texture: url('data:;base64,\
|
||||
SUkqABgAAAD/AAD//wAA//8AAP//AAD/DQAAAQMAAQAAAAIAAAABAQMAAQAAAAIAAAACAQMABAAA\
|
||||
ALoAAAADAQMAAQAAAAEAAAAGAQMAAQAAAAIAAAARAQQAAQAAAAgAAAASAQMAAQAAAAEAAAAVAQMA\
|
||||
AQAAAAQAAAAXAQQAAQAAABAAAAAcAQMAAQAAAAEAAAAxAQIABAAAAEdUSwBSAQMAAQAAAAIAAABT\
|
||||
AQMABAAAAMIAAAAAAAAACAAIAAgACAABAAEAAQABAA==\
|
||||
'); } }
|
||||
shadow { shadows: black 0 0 10; child: texture { bounds: 250 0 30 30; texture: url('data:;base64,\
|
||||
SUkqABgAAAD/AAD//wAA//8AAP//AAD/DQAAAQMAAQAAAAIAAAABAQMAAQAAAAIAAAACAQMABAAA\
|
||||
ALoAAAADAQMAAQAAAAEAAAAGAQMAAQAAAAIAAAARAQQAAQAAAAgAAAASAQMAAQAAAAEAAAAVAQMA\
|
||||
AQAAAAQAAAAXAQQAAQAAABAAAAAcAQMAAQAAAAEAAAAxAQIABAAAAEdUSwBSAQMAAQAAAAIAAABT\
|
||||
AQMABAAAAMIAAAAAAAAACAAIAAgACAABAAEAAQABAA==\
|
||||
'); } }
|
||||
shadow { shadows: black 0 0 10; child: texture { bounds: 300 0 30 30; texture: url('data:;base64,\
|
||||
SUkqABgAAAD/AAD//wAA//8AAP//AAD/DQAAAQMAAQAAAAIAAAABAQMAAQAAAAIAAAACAQMABAAA\
|
||||
ALoAAAADAQMAAQAAAAEAAAAGAQMAAQAAAAIAAAARAQQAAQAAAAgAAAASAQMAAQAAAAEAAAAVAQMA\
|
||||
AQAAAAQAAAAXAQQAAQAAABAAAAAcAQMAAQAAAAEAAAAxAQIABAAAAEdUSwBSAQMAAQAAAAIAAABT\
|
||||
AQMABAAAAMIAAAAAAAAACAAIAAgACAABAAEAAQABAA==\
|
||||
'); } }
|
||||
shadow { shadows: black 0 0 10; child: texture { bounds: 0 50 30 30; texture: url('data:;base64,\
|
||||
SUkqABQAAAD/AAD/AAD/AAD/AAAMAAABAwABAAAAAgAAAAEBAwABAAAAAgAAAAIBAwADAAAAqgAA\
|
||||
AAMBAwABAAAAAQAAAAYBAwABAAAAAgAAABEBBAABAAAACAAAABIBAwABAAAAAQAAABUBAwABAAAA\
|
||||
AwAAABcBBAABAAAADAAAABwBAwABAAAAAQAAADEBAgAEAAAAR1RLAFMBAwADAAAAsAAAAAAAAAAI\
|
||||
AAgACAABAAEAAQA=\
|
||||
'); } }
|
||||
shadow { shadows: black 0 0 10; child: texture { bounds: 50 50 30 30; texture: url('data:;base64,\
|
||||
SUkqABQAAAD/AAD/AAD/AAD/AAAMAAABAwABAAAAAgAAAAEBAwABAAAAAgAAAAIBAwADAAAAqgAA\
|
||||
AAMBAwABAAAAAQAAAAYBAwABAAAAAgAAABEBBAABAAAACAAAABIBAwABAAAAAQAAABUBAwABAAAA\
|
||||
AwAAABcBBAABAAAADAAAABwBAwABAAAAAQAAADEBAgAEAAAAR1RLAFMBAwADAAAAsAAAAAAAAAAI\
|
||||
AAgACAABAAEAAQA=\
|
||||
'); } }
|
||||
shadow { shadows: black 0 0 10; child: texture { bounds: 100 50 30 30; texture: url('data:;base64,\
|
||||
SUkqACAAAAD//wAAAAD//wAAAAD//wAAAAD//wAAAAAMAAABAwABAAAAAgAAAAEBAwABAAAAAgAA\
|
||||
AAIBAwADAAAAtgAAAAMBAwABAAAAAQAAAAYBAwABAAAAAgAAABEBBAABAAAACAAAABIBAwABAAAA\
|
||||
AQAAABUBAwABAAAAAwAAABcBBAABAAAAGAAAABwBAwABAAAAAQAAADEBAgAEAAAAR1RLAFMBAwAD\
|
||||
AAAAvAAAAAAAAAAQABAAEAABAAEAAQA=\
|
||||
'); } }
|
||||
shadow { shadows: black 0 0 10; child: texture { bounds: 150 50 30 30; texture: url('data:;base64,\
|
||||
SUkqACgAAAD//wAAAAD/////AAAAAP////8AAAAA/////wAAAAD//w0AAAEDAAEAAAACAAAAAQED\
|
||||
AAEAAAACAAAAAgEDAAQAAADKAAAAAwEDAAEAAAABAAAABgEDAAEAAAACAAAAEQEEAAEAAAAIAAAA\
|
||||
EgEDAAEAAAABAAAAFQEDAAEAAAAEAAAAFwEEAAEAAAAgAAAAHAEDAAEAAAABAAAAMQECAAQAAABH\
|
||||
VEsAUgEDAAEAAAABAAAAUwEDAAQAAADSAAAAAAAAABAAEAAQABAAAQABAAEAAQA=\
|
||||
'); } }
|
||||
shadow { shadows: black 0 0 10; child: texture { bounds: 200 50 30 30; texture: url('data:;base64,\
|
||||
SUkqACgAAAD//wAAAAD/////AAAAAP////8AAAAA/////wAAAAD//w0AAAEDAAEAAAACAAAAAQED\
|
||||
AAEAAAACAAAAAgEDAAQAAADKAAAAAwEDAAEAAAABAAAABgEDAAEAAAACAAAAEQEEAAEAAAAIAAAA\
|
||||
EgEDAAEAAAABAAAAFQEDAAEAAAAEAAAAFwEEAAEAAAAgAAAAHAEDAAEAAAABAAAAMQECAAQAAABH\
|
||||
VEsAUgEDAAEAAAACAAAAUwEDAAQAAADSAAAAAAAAABAAEAAQABAAAQABAAEAAQA=\
|
||||
'); } }
|
||||
shadow { shadows: black 0 0 10; child: texture { bounds: 250 50 30 30; texture: url('data:;base64,\
|
||||
SUkqACAAAAAAPB+ACgAAPB+ACgAAPB+ACgAAPB+ACgAMAAABAwABAAAAAgAAAAEBAwABAAAAAgAA\
|
||||
AAIBAwADAAAAtgAAAAMBAwABAAAAAQAAAAYBAwABAAAAAgAAABEBBAABAAAACAAAABIBAwABAAAA\
|
||||
AQAAABUBAwABAAAAAwAAABcBBAABAAAAGAAAABwBAwABAAAAAQAAADEBAgAEAAAAR1RLAFMBAwAD\
|
||||
AAAAvAAAAAAAAAAQABAAEAADAAMAAwA=\
|
||||
'); } }
|
||||
shadow { shadows: black 0 0 10; child: texture { bounds: 300 50 30 30; texture: url('data:;base64,\
|
||||
SUkqACgAAAAAPB+ACgAAPAA8H4AKAAA8ADwfgAoAADwAPB+ACgAAPA0AAAEDAAEAAAACAAAAAQED\
|
||||
AAEAAAACAAAAAgEDAAQAAADKAAAAAwEDAAEAAAABAAAABgEDAAEAAAACAAAAEQEEAAEAAAAIAAAA\
|
||||
EgEDAAEAAAABAAAAFQEDAAEAAAAEAAAAFwEEAAEAAAAgAAAAHAEDAAEAAAABAAAAMQECAAQAAABH\
|
||||
VEsAUgEDAAEAAAABAAAAUwEDAAQAAADSAAAAAAAAABAAEAAQABAAAwADAAMAAwA=\
|
||||
'); } }
|
||||
shadow { shadows: black 0 0 10; child: texture { bounds: 0 100 30 30; texture: url('data:;base64,\
|
||||
SUkqACgAAAAAPB+ACgAAPAA8H4AKAAA8ADwfgAoAADwAPB+ACgAAPA0AAAEDAAEAAAACAAAAAQED\
|
||||
AAEAAAACAAAAAgEDAAQAAADKAAAAAwEDAAEAAAABAAAABgEDAAEAAAACAAAAEQEEAAEAAAAIAAAA\
|
||||
EgEDAAEAAAABAAAAFQEDAAEAAAAEAAAAFwEEAAEAAAAgAAAAHAEDAAEAAAABAAAAMQECAAQAAABH\
|
||||
VEsAUgEDAAEAAAACAAAAUwEDAAQAAADSAAAAAAAAABAAEAAQABAAAwADAAMAAwA=\
|
||||
'); } }
|
||||
shadow { shadows: black 0 0 10; child: texture { bounds: 50 100 30 30; texture: url('data:;base64,\
|
||||
SUkqADgAAAACAIA/1yL2tcP1JzUCAIA/1yL2tcP1JzUCAIA/1yL2tcP1JzUCAIA/1yL2tcP1JzUM\
|
||||
AAABAwABAAAAAgAAAAEBAwABAAAAAgAAAAIBAwADAAAAzgAAAAMBAwABAAAAAQAAAAYBAwABAAAA\
|
||||
AgAAABEBBAABAAAACAAAABIBAwABAAAAAQAAABUBAwABAAAAAwAAABcBBAABAAAAMAAAABwBAwAB\
|
||||
AAAAAQAAADEBAgAEAAAAR1RLAFMBAwADAAAA1AAAAAAAAAAgACAAIAADAAMAAwA=\
|
||||
'); } }
|
||||
shadow { shadows: black 0 0 10; child: texture { bounds: 100 100 30 30; texture: url('data:;base64,\
|
||||
SUkqAEgAAAACAIA/1yL2tcP1JzUAAIA/AgCAP9ci9rXD9Sc1AACAPwIAgD/XIva1w/UnNQAAgD8C\
|
||||
AIA/1yL2tcP1JzUAAIA/DQAAAQMAAQAAAAIAAAABAQMAAQAAAAIAAAACAQMABAAAAOoAAAADAQMA\
|
||||
AQAAAAEAAAAGAQMAAQAAAAIAAAARAQQAAQAAAAgAAAASAQMAAQAAAAEAAAAVAQMAAQAAAAQAAAAX\
|
||||
AQQAAQAAAEAAAAAcAQMAAQAAAAEAAAAxAQIABAAAAEdUSwBSAQMAAQAAAAEAAABTAQMABAAAAPIA\
|
||||
AAAAAAAAIAAgACAAIAADAAMAAwADAA==\
|
||||
'); } }
|
||||
shadow { shadows: black 0 0 10; child: texture { bounds: 150 100 30 30; texture: url('data:;base64,\
|
||||
SUkqAEgAAAACAIA/1yL2tcP1JzUAAIA/AgCAP9ci9rXD9Sc1AACAPwIAgD/XIva1w/UnNQAAgD8C\
|
||||
AIA/1yL2tcP1JzUAAIA/DQAAAQMAAQAAAAIAAAABAQMAAQAAAAIAAAACAQMABAAAAOoAAAADAQMA\
|
||||
AQAAAAEAAAAGAQMAAQAAAAIAAAARAQQAAQAAAAgAAAASAQMAAQAAAAEAAAAVAQMAAQAAAAQAAAAX\
|
||||
AQQAAQAAAEAAAAAcAQMAAQAAAAEAAAAxAQIABAAAAEdUSwBSAQMAAQAAAAIAAABTAQMABAAAAPIA\
|
||||
AAAAAAAAIAAgACAAIAADAAMAAwADAA==\
|
||||
'); } }
|
||||
shadow { shadows: black 0 0 10; child: texture { bounds: 200 100 30 30; texture: url('data:;base64,\
|
||||
SUkqABAAAABV/1X/Vf9V/w0AAAEDAAEAAAACAAAAAQEDAAEAAAACAAAAAgEDAAIAAAAIAAgAAwED\
|
||||
AAEAAAABAAAABgEDAAEAAAABAAAAEQEEAAEAAAAIAAAAEgEDAAEAAAABAAAAFQEDAAEAAAACAAAA\
|
||||
FwEEAAEAAAAIAAAAHAEDAAEAAAABAAAAMQECAAQAAABHVEsAUgEDAAEAAAABAAAAUwEDAAIAAAAB\
|
||||
AAEAAAAAAA==\
|
||||
'); } }
|
||||
shadow { shadows: black 0 0 10; child: texture { bounds: 250 100 30 30; texture: url('data:;base64,\
|
||||
SUkqABAAAABV/1X/Vf9V/w0AAAEDAAEAAAACAAAAAQEDAAEAAAACAAAAAgEDAAIAAAAIAAgAAwED\
|
||||
AAEAAAABAAAABgEDAAEAAAABAAAAEQEEAAEAAAAIAAAAEgEDAAEAAAABAAAAFQEDAAEAAAACAAAA\
|
||||
FwEEAAEAAAAIAAAAHAEDAAEAAAABAAAAMQECAAQAAABHVEsAUgEDAAEAAAACAAAAUwEDAAIAAAAB\
|
||||
AAEAAAAAAA==\
|
||||
'); } }
|
||||
shadow { shadows: black 0 0 10; child: texture { bounds: 300 100 30 30; texture: url('data:;base64,\
|
||||
SUkqAAwAAABVVVVVDAAAAQMAAQAAAAIAAAABAQMAAQAAAAIAAAACAQMAAQAAAAgAAAADAQMAAQAA\
|
||||
AAEAAAAGAQMAAQAAAAEAAAARAQQAAQAAAAgAAAASAQMAAQAAAAEAAAAVAQMAAQAAAAEAAAAXAQQA\
|
||||
AQAAAAQAAAAcAQMAAQAAAAEAAAAxAQIABAAAAEdUSwBTAQMAAQAAAAEAAAAAAAAA\
|
||||
'); } }
|
||||
shadow { shadows: black 0 0 10; child: texture { bounds: 0 150 30 30; texture: url('data:;base64,\
|
||||
SUkqABgAAABVVf//VVX//1VV//9VVf//DQAAAQMAAQAAAAIAAAABAQMAAQAAAAIAAAACAQMAAgAA\
|
||||
ABAAEAADAQMAAQAAAAEAAAAGAQMAAQAAAAEAAAARAQQAAQAAAAgAAAASAQMAAQAAAAEAAAAVAQMA\
|
||||
AQAAAAIAAAAXAQQAAQAAABAAAAAcAQMAAQAAAAEAAAAxAQIABAAAAEdUSwBSAQMAAQAAAAEAAABT\
|
||||
AQMAAgAAAAEAAQAAAAAA\
|
||||
'); } }
|
||||
shadow { shadows: black 0 0 10; child: texture { bounds: 50 150 30 30; texture: url('data:;base64,\
|
||||
SUkqABgAAABVVf//VVX//1VV//9VVf//DQAAAQMAAQAAAAIAAAABAQMAAQAAAAIAAAACAQMAAgAA\
|
||||
ABAAEAADAQMAAQAAAAEAAAAGAQMAAQAAAAEAAAARAQQAAQAAAAgAAAASAQMAAQAAAAEAAAAVAQMA\
|
||||
AQAAAAIAAAAXAQQAAQAAABAAAAAcAQMAAQAAAAEAAAAxAQIABAAAAEdUSwBSAQMAAQAAAAIAAABT\
|
||||
AQMAAgAAAAEAAQAAAAAA\
|
||||
'); } }
|
||||
shadow { shadows: black 0 0 10; child: texture { bounds: 100 150 30 30; texture: url('data:;base64,\
|
||||
SUkqABAAAABVVVVVVVVVVQwAAAEDAAEAAAACAAAAAQEDAAEAAAACAAAAAgEDAAEAAAAQAAAAAwED\
|
||||
AAEAAAABAAAABgEDAAEAAAABAAAAEQEEAAEAAAAIAAAAEgEDAAEAAAABAAAAFQEDAAEAAAABAAAA\
|
||||
FwEEAAEAAAAIAAAAHAEDAAEAAAABAAAAMQECAAQAAABHVEsAUwEDAAEAAAABAAAAAAAAAA==\
|
||||
'); } }
|
||||
shadow { shadows: black 0 0 10; child: texture { bounds: 150 150 30 30; texture: url('data:;base64,\
|
||||
SUkqABAAAAD//////////w0AAAEDAAEAAAACAAAAAQEDAAEAAAACAAAAAgEDAAIAAAAIAAgAAwED\
|
||||
AAEAAAABAAAABgEDAAEAAAABAAAAEQEEAAEAAAAIAAAAEgEDAAEAAAABAAAAFQEDAAEAAAACAAAA\
|
||||
FwEEAAEAAAAIAAAAHAEDAAEAAAABAAAAMQECAAQAAABHVEsAUgEDAAEAAAACAAAAUwEDAAIAAAAB\
|
||||
AAEAAAAAAA==\
|
||||
'); } }
|
||||
shadow { shadows: black 0 0 10; child: texture { bounds: 200 150 30 30; texture: url('data:;base64,\
|
||||
SUkqABgAAAD/////////////////////DQAAAQMAAQAAAAIAAAABAQMAAQAAAAIAAAACAQMAAgAA\
|
||||
ABAAEAADAQMAAQAAAAEAAAAGAQMAAQAAAAEAAAARAQQAAQAAAAgAAAASAQMAAQAAAAEAAAAVAQMA\
|
||||
AQAAAAIAAAAXAQQAAQAAABAAAAAcAQMAAQAAAAEAAAAxAQIABAAAAEdUSwBSAQMAAQAAAAIAAABT\
|
||||
AQMAAgAAAAEAAQAAAAAA\
|
||||
'); } }
|
||||
shadow { shadows: black 0 0 10; child: texture { bounds: 250 150 30 30; texture: url('data:;base64,\
|
||||
SUkqACgAAAAAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPA0AAAEDAAEAAAACAAAAAQED\
|
||||
AAEAAAACAAAAAgEDAAQAAADKAAAAAwEDAAEAAAABAAAABgEDAAEAAAACAAAAEQEEAAEAAAAIAAAA\
|
||||
EgEDAAEAAAABAAAAFQEDAAEAAAAEAAAAFwEEAAEAAAAgAAAAHAEDAAEAAAABAAAAMQECAAQAAABH\
|
||||
VEsAUgEDAAEAAAABAAAAUwEDAAQAAADSAAAAAAAAABAAEAAQABAAAwADAAMAAwA=\
|
||||
'); } }
|
||||
shadow { shadows: black 0 0 10; child: texture { bounds: 300 150 30 30; texture: url('data:;base64,\
|
||||
SUkqAEgAAAABAIA//f9/P/n/fz8AAIA/AQCAP/3/fz/5/38/AACAPwEAgD/9/38/+f9/PwAAgD8B\
|
||||
AIA//f9/P/n/fz8AAIA/DQAAAQMAAQAAAAIAAAABAQMAAQAAAAIAAAACAQMABAAAAOoAAAADAQMA\
|
||||
AQAAAAEAAAAGAQMAAQAAAAIAAAARAQQAAQAAAAgAAAASAQMAAQAAAAEAAAAVAQMAAQAAAAQAAAAX\
|
||||
AQQAAQAAAEAAAAAcAQMAAQAAAAEAAAAxAQIABAAAAEdUSwBSAQMAAQAAAAEAAABTAQMABAAAAPIA\
|
||||
AAAAAAAAIAAgACAAIAADAAMAAwADAA==\
|
||||
'); } }
|
||||
shadow { shadows: black 0 0 10; child: texture { bounds: 0 200 30 30; texture: url('data:;base64,\
|
||||
SUkqABgAAAD/AAD//wAA//8AAP//AAD/DQAAAQMAAQAAAAIAAAABAQMAAQAAAAIAAAACAQMABAAA\
|
||||
ALoAAAADAQMAAQAAAAEAAAAGAQMAAQAAAAIAAAARAQQAAQAAAAgAAAASAQMAAQAAAAEAAAAVAQMA\
|
||||
AQAAAAQAAAAXAQQAAQAAABAAAAAcAQMAAQAAAAEAAAAxAQIABAAAAEdUSwBSAQMAAQAAAAEAAABT\
|
||||
AQMABAAAAMIAAAAAAAAACAAIAAgACAABAAEAAQABAA==\
|
||||
'); } }
|
||||
shadow { shadows: black 0 0 10; child: texture { bounds: 50 200 30 30; texture: url('data:;base64,\
|
||||
SUkqABgAAAD/AABe/wAAAP8AAF7/AAAADQAAAQMAAQAAAAIAAAABAQMAAQAAAAIAAAACAQMABAAA\
|
||||
ALoAAAADAQMAAQAAAAEAAAAGAQMAAQAAAAIAAAARAQQAAQAAAAgAAAASAQMAAQAAAAEAAAAVAQMA\
|
||||
AQAAAAQAAAAXAQQAAQAAABAAAAAcAQMAAQAAAAEAAAAxAQIABAAAAEdUSwBSAQMAAQAAAAAAAABT\
|
||||
AQMABAAAAMIAAAAAAAAACAAIAAgACAABAAEAAQABAA==\
|
||||
'); } }
|
||||
shadow { shadows: black 0 0 10; child: texture { bounds: 100 200 30 30; texture: url('data:;base64,\
|
||||
SUkqABgAAAD/AACF/wAAAP8AAIX/AAAADQAAAQMAAQAAAAIAAAABAQMAAQAAAAIAAAACAQMABAAA\
|
||||
ALoAAAADAQMAAQAAAAEAAAAGAQMAAQAAAAIAAAARAQQAAQAAAAgAAAASAQMAAQAAAAEAAAAVAQMA\
|
||||
AQAAAAQAAAAXAQQAAQAAABAAAAAcAQMAAQAAAAEAAAAxAQIABAAAAEdUSwBSAQMAAQAAAAAAAABT\
|
||||
AQMABAAAAMIAAAAAAAAACAAIAAgACAABAAEAAQABAA==\
|
||||
'); } }
|
||||
shadow { shadows: black 0 0 10; child: texture { bounds: 150 200 30 30; texture: url('data:;base64,\
|
||||
SUkqABgAAAD/AAAT/wAAAP8AAAD/AAAADQAAAQMAAQAAAAIAAAABAQMAAQAAAAIAAAACAQMABAAA\
|
||||
ALoAAAADAQMAAQAAAAEAAAAGAQMAAQAAAAIAAAARAQQAAQAAAAgAAAASAQMAAQAAAAEAAAAVAQMA\
|
||||
AQAAAAQAAAAXAQQAAQAAABAAAAAcAQMAAQAAAAEAAAAxAQIABAAAAEdUSwBSAQMAAQAAAAAAAABT\
|
||||
AQMABAAAAMIAAAAAAAAACAAIAAgACAABAAEAAQABAA==\
|
||||
'); } }
|
||||
shadow { shadows: black 0 0 10; child: texture { bounds: 200 200 30 30; texture: url('data:;base64,\
|
||||
SUkqABgAAAD/AAA7/wAAAP8AADv/AAAADQAAAQMAAQAAAAIAAAABAQMAAQAAAAIAAAACAQMABAAA\
|
||||
ALoAAAADAQMAAQAAAAEAAAAGAQMAAQAAAAIAAAARAQQAAQAAAAgAAAASAQMAAQAAAAEAAAAVAQMA\
|
||||
AQAAAAQAAAAXAQQAAQAAABAAAAAcAQMAAQAAAAEAAAAxAQIABAAAAEdUSwBSAQMAAQAAAAAAAABT\
|
||||
AQMABAAAAMIAAAAAAAAACAAIAAgACAABAAEAAQABAA==\
|
||||
'); } }
|
||||
|
||||
}}
|
BIN
testsuite/gsk/compare/shadow-texture-formats.png
Normal file
BIN
testsuite/gsk/compare/shadow-texture-formats.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 271 B |
@ -172,6 +172,7 @@ compare_render_tests = [
|
||||
'shadow-offset-to-outside-clip',
|
||||
'shadow-opacity',
|
||||
'shadow-replay-nocairo',
|
||||
'shadow-texture-formats',
|
||||
'shrink-rounded-border',
|
||||
'stroke',
|
||||
'stroke-clipped-nogl',
|
||||
@ -266,6 +267,7 @@ compare_xfails = {
|
||||
'opacity-overlapping-children': ['rotate'],
|
||||
'scaled-texture-scale': ['rotate'],
|
||||
'shadow-opacity': ['rotate'],
|
||||
'shadow-texture-formats': ['rotate'],
|
||||
'texture-scale-nearest-vs-linear': ['rotate'],
|
||||
},
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user