gpu: Add a utility function for colors in patterns

... and use it.
This commit is contained in:
Benjamin Otte
2023-09-05 14:57:37 +02:00
parent 3809e6efb9
commit 8fd2a267ae
3 changed files with 12 additions and 8 deletions

View File

@@ -116,3 +116,12 @@ gsk_gpu_buffer_writer_append_rect (GskGpuBufferWriter *self,
gsk_gpu_buffer_writer_append (self, G_ALIGNOF (float), (guchar *) f, sizeof (f));
}
void
gsk_gpu_buffer_writer_append_rgba (GskGpuBufferWriter *self,
const GdkRGBA *rgba)
{
float f[4] = { rgba->red, rgba->green, rgba->blue, rgba->alpha };
gsk_gpu_buffer_writer_append (self, G_ALIGNOF (float), (guchar *) f, sizeof (f));
}

View File

@@ -47,5 +47,7 @@ void gsk_gpu_buffer_writer_append_vec4 (GskGpuB
void gsk_gpu_buffer_writer_append_rect (GskGpuBufferWriter *self,
const graphene_rect_t *rect,
const graphene_point_t *offset);
void gsk_gpu_buffer_writer_append_rgba (GskGpuBufferWriter *self,
const GdkRGBA *rgba);
G_END_DECLS

View File

@@ -690,15 +690,8 @@ gsk_gpu_node_processor_create_color_pattern (GskGpuNodeProcessor *self,
gsize n_images,
gsize *out_n_images)
{
const GdkRGBA *rgba;
rgba = gsk_color_node_get_color (node);
gsk_gpu_buffer_writer_append_uint (writer, GSK_GPU_PATTERN_COLOR);
gsk_gpu_buffer_writer_append_float (writer, rgba->red);
gsk_gpu_buffer_writer_append_float (writer, rgba->green);
gsk_gpu_buffer_writer_append_float (writer, rgba->blue);
gsk_gpu_buffer_writer_append_float (writer, rgba->alpha);
gsk_gpu_buffer_writer_append_rgba (writer, gsk_color_node_get_color (node));
return TRUE;
}