gpu: Use GskGpuShaderImage for texture ops
This commit is contained in:
@@ -559,10 +559,14 @@ gsk_gpu_node_processor_image_op (GskGpuNodeProcessor *self,
|
|||||||
gsk_gpu_texture_op (self->frame,
|
gsk_gpu_texture_op (self->frame,
|
||||||
gsk_gpu_clip_get_shader_clip (&self->clip, &self->offset, rect),
|
gsk_gpu_clip_get_shader_clip (&self->clip, &self->offset, rect),
|
||||||
self->desc,
|
self->desc,
|
||||||
descriptor,
|
|
||||||
rect,
|
|
||||||
&self->offset,
|
&self->offset,
|
||||||
tex_rect);
|
&(GskGpuShaderImage) {
|
||||||
|
image,
|
||||||
|
sampler,
|
||||||
|
descriptor,
|
||||||
|
rect,
|
||||||
|
tex_rect
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2055,10 +2059,14 @@ gsk_gpu_node_processor_add_texture_scale_node (GskGpuNodeProcessor *self,
|
|||||||
gsk_gpu_texture_op (self->frame,
|
gsk_gpu_texture_op (self->frame,
|
||||||
gsk_gpu_clip_get_shader_clip (&self->clip, &self->offset, &node->bounds),
|
gsk_gpu_clip_get_shader_clip (&self->clip, &self->offset, &node->bounds),
|
||||||
self->desc,
|
self->desc,
|
||||||
descriptor,
|
|
||||||
&node->bounds,
|
|
||||||
&self->offset,
|
&self->offset,
|
||||||
&clip_bounds);
|
&(GskGpuShaderImage) {
|
||||||
|
offscreen,
|
||||||
|
GSK_GPU_SAMPLER_DEFAULT,
|
||||||
|
descriptor,
|
||||||
|
&node->bounds,
|
||||||
|
&clip_bounds
|
||||||
|
});
|
||||||
g_object_unref (offscreen);
|
g_object_unref (offscreen);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -2083,10 +2091,14 @@ gsk_gpu_node_processor_add_texture_scale_node (GskGpuNodeProcessor *self,
|
|||||||
gsk_gpu_texture_op (self->frame,
|
gsk_gpu_texture_op (self->frame,
|
||||||
gsk_gpu_clip_get_shader_clip (&self->clip, &self->offset, &node->bounds),
|
gsk_gpu_clip_get_shader_clip (&self->clip, &self->offset, &node->bounds),
|
||||||
self->desc,
|
self->desc,
|
||||||
descriptor,
|
|
||||||
&node->bounds,
|
|
||||||
&self->offset,
|
&self->offset,
|
||||||
&node->bounds);
|
&(GskGpuShaderImage) {
|
||||||
|
image,
|
||||||
|
gsk_gpu_sampler_for_scaling_filter (scaling_filter),
|
||||||
|
descriptor,
|
||||||
|
&node->bounds,
|
||||||
|
&node->bounds,
|
||||||
|
});
|
||||||
|
|
||||||
g_object_unref (image);
|
g_object_unref (image);
|
||||||
}
|
}
|
||||||
@@ -2318,10 +2330,14 @@ gsk_gpu_node_processor_add_gradient_node (GskGpuNodeProcessor *self,
|
|||||||
gsk_gpu_texture_op (self->frame,
|
gsk_gpu_texture_op (self->frame,
|
||||||
gsk_gpu_clip_get_shader_clip (&self->clip, &self->offset, &bounds),
|
gsk_gpu_clip_get_shader_clip (&self->clip, &self->offset, &bounds),
|
||||||
self->desc,
|
self->desc,
|
||||||
descriptor,
|
|
||||||
&node->bounds,
|
|
||||||
&self->offset,
|
&self->offset,
|
||||||
&bounds);
|
&(GskGpuShaderImage) {
|
||||||
|
image,
|
||||||
|
GSK_GPU_SAMPLER_DEFAULT,
|
||||||
|
descriptor,
|
||||||
|
&node->bounds,
|
||||||
|
&bounds
|
||||||
|
});
|
||||||
|
|
||||||
g_object_unref (image);
|
g_object_unref (image);
|
||||||
}
|
}
|
||||||
@@ -2534,10 +2550,14 @@ gsk_gpu_node_processor_add_shadow_node (GskGpuNodeProcessor *self,
|
|||||||
gsk_gpu_texture_op (self->frame,
|
gsk_gpu_texture_op (self->frame,
|
||||||
gsk_gpu_clip_get_shader_clip (&self->clip, &self->offset, &child->bounds),
|
gsk_gpu_clip_get_shader_clip (&self->clip, &self->offset, &child->bounds),
|
||||||
self->desc,
|
self->desc,
|
||||||
descriptor,
|
|
||||||
&child->bounds,
|
|
||||||
&self->offset,
|
&self->offset,
|
||||||
&tex_rect);
|
&(GskGpuShaderImage) {
|
||||||
|
image,
|
||||||
|
GSK_GPU_SAMPLER_DEFAULT,
|
||||||
|
descriptor,
|
||||||
|
&child->bounds,
|
||||||
|
&tex_rect,
|
||||||
|
});
|
||||||
|
|
||||||
g_object_unref (image);
|
g_object_unref (image);
|
||||||
}
|
}
|
||||||
@@ -2891,10 +2911,14 @@ gsk_gpu_node_processor_add_glyph_node (GskGpuNodeProcessor *self,
|
|||||||
gsk_gpu_texture_op (self->frame,
|
gsk_gpu_texture_op (self->frame,
|
||||||
gsk_gpu_clip_get_shader_clip (&self->clip, &glyph_offset, &glyph_bounds),
|
gsk_gpu_clip_get_shader_clip (&self->clip, &glyph_offset, &glyph_bounds),
|
||||||
self->desc,
|
self->desc,
|
||||||
descriptor,
|
|
||||||
&glyph_bounds,
|
|
||||||
&glyph_origin,
|
&glyph_origin,
|
||||||
&glyph_tex_rect);
|
&(GskGpuShaderImage) {
|
||||||
|
image,
|
||||||
|
GSK_GPU_SAMPLER_DEFAULT,
|
||||||
|
descriptor,
|
||||||
|
&glyph_bounds,
|
||||||
|
&glyph_tex_rect
|
||||||
|
});
|
||||||
else
|
else
|
||||||
gsk_gpu_colorize_op (self->frame,
|
gsk_gpu_colorize_op (self->frame,
|
||||||
gsk_gpu_clip_get_shader_clip (&self->clip, &glyph_offset, &glyph_bounds),
|
gsk_gpu_clip_get_shader_clip (&self->clip, &glyph_offset, &glyph_bounds),
|
||||||
@@ -3001,15 +3025,19 @@ gsk_gpu_node_processor_repeat_tile (GskGpuNodeProcessor *self,
|
|||||||
gsk_gpu_texture_op (self->frame,
|
gsk_gpu_texture_op (self->frame,
|
||||||
gsk_gpu_clip_get_shader_clip (&self->clip, &self->offset, rect),
|
gsk_gpu_clip_get_shader_clip (&self->clip, &self->offset, rect),
|
||||||
self->desc,
|
self->desc,
|
||||||
descriptor,
|
|
||||||
rect,
|
|
||||||
&self->offset,
|
&self->offset,
|
||||||
&GRAPHENE_RECT_INIT (
|
&(GskGpuShaderImage) {
|
||||||
clipped_child_bounds.origin.x + x * child_bounds->size.width,
|
image,
|
||||||
clipped_child_bounds.origin.y + y * child_bounds->size.height,
|
GSK_GPU_SAMPLER_REPEAT,
|
||||||
clipped_child_bounds.size.width,
|
descriptor,
|
||||||
clipped_child_bounds.size.height
|
rect,
|
||||||
));
|
&GRAPHENE_RECT_INIT (
|
||||||
|
clipped_child_bounds.origin.x + x * child_bounds->size.width,
|
||||||
|
clipped_child_bounds.origin.y + y * child_bounds->size.height,
|
||||||
|
clipped_child_bounds.size.width,
|
||||||
|
clipped_child_bounds.size.height
|
||||||
|
)
|
||||||
|
});
|
||||||
|
|
||||||
g_object_unref (image);
|
g_object_unref (image);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,13 +48,11 @@ static const GskGpuShaderOpClass GSK_GPU_TEXTURE_OP_CLASS = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
void
|
void
|
||||||
gsk_gpu_texture_op (GskGpuFrame *frame,
|
gsk_gpu_texture_op (GskGpuFrame *frame,
|
||||||
GskGpuShaderClip clip,
|
GskGpuShaderClip clip,
|
||||||
GskGpuDescriptors *desc,
|
GskGpuDescriptors *desc,
|
||||||
guint32 descriptor,
|
const graphene_point_t *offset,
|
||||||
const graphene_rect_t *rect,
|
const GskGpuShaderImage *image)
|
||||||
const graphene_point_t *offset,
|
|
||||||
const graphene_rect_t *tex_rect)
|
|
||||||
{
|
{
|
||||||
GskGpuTextureInstance *instance;
|
GskGpuTextureInstance *instance;
|
||||||
|
|
||||||
@@ -66,7 +64,7 @@ gsk_gpu_texture_op (GskGpuFrame *frame,
|
|||||||
desc,
|
desc,
|
||||||
&instance);
|
&instance);
|
||||||
|
|
||||||
gsk_gpu_rect_to_float (rect, offset, instance->rect);
|
gsk_gpu_rect_to_float (image->coverage ? image->coverage : image->bounds, offset, instance->rect);
|
||||||
gsk_gpu_rect_to_float (tex_rect, offset, instance->tex_rect);
|
gsk_gpu_rect_to_float (image->bounds, offset, instance->tex_rect);
|
||||||
instance->tex_id = descriptor;
|
instance->tex_id = image->descriptor;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,10 +9,8 @@ G_BEGIN_DECLS
|
|||||||
void gsk_gpu_texture_op (GskGpuFrame *frame,
|
void gsk_gpu_texture_op (GskGpuFrame *frame,
|
||||||
GskGpuShaderClip clip,
|
GskGpuShaderClip clip,
|
||||||
GskGpuDescriptors *desc,
|
GskGpuDescriptors *desc,
|
||||||
guint32 descriptor,
|
|
||||||
const graphene_rect_t *rect,
|
|
||||||
const graphene_point_t *offset,
|
const graphene_point_t *offset,
|
||||||
const graphene_rect_t *tex_rect);
|
const GskGpuShaderImage *image);
|
||||||
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|||||||
Reference in New Issue
Block a user