summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2023-05-12 03:35:58 +0200
committerBenjamin Otte <otte@redhat.com>2023-05-17 02:25:32 +0200
commit33a1660e89fc12ec1e87d063ce5fe2176a8b1a9c (patch)
tree4b61a52c096348bde5fe488239d7fd74f6985313
parent994c006276b4555b51d92058b90589798305373d (diff)
downloadgtk+-33a1660e89fc12ec1e87d063ce5fe2176a8b1a9c.tar.gz
vulkan: Move scale into the state object
-rw-r--r--gsk/vulkan/gskvulkanrenderpass.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/gsk/vulkan/gskvulkanrenderpass.c b/gsk/vulkan/gskvulkanrenderpass.c
index 60b977dbc0..85cafe5ff8 100644
--- a/gsk/vulkan/gskvulkanrenderpass.c
+++ b/gsk/vulkan/gskvulkanrenderpass.c
@@ -132,6 +132,7 @@ struct _GskVulkanRenderPass
struct _GskVulkanParseState
{
graphene_point_t offset;
+ graphene_vec2_t scale;
graphene_matrix_t mvp;
GskVulkanClip clip;
};
@@ -527,7 +528,6 @@ gsk_vulkan_render_pass_add_transform_node (GskVulkanRenderPass *self,
{
GskRenderNode *child;
GskTransform *transform;
- graphene_vec2_t old_scale;
float scale_x;
float scale_y;
graphene_vec2_t scale;
@@ -614,16 +614,13 @@ gsk_vulkan_render_pass_add_transform_node (GskVulkanRenderPass *self,
gsk_vulkan_render_pass_append_push_constants (self, node, &new_state);
new_state.offset = *graphene_point_zero ();
- graphene_vec2_init_from_vec2 (&old_scale, &self->scale);
graphene_vec2_init (&scale, fabs (scale_x), fabs (scale_y));
- graphene_vec2_multiply (&self->scale, &scale, &self->scale);
+ graphene_vec2_multiply (&state->scale, &scale, &new_state.scale);
gsk_vulkan_render_pass_add_node (self, render, &new_state, child);
gsk_vulkan_render_pass_append_push_constants (self, node, state);
- graphene_vec2_init_from_vec2 (&self->scale, &old_scale);
-
gsk_transform_unref (transform);
return TRUE;
@@ -705,6 +702,7 @@ gsk_vulkan_render_pass_add_clip_node (GskVulkanRenderPass *self,
return TRUE;
new_state.offset = state->offset;
+ graphene_vec2_init_from_vec2 (&new_state.scale, &state->scale);
graphene_matrix_init_from_matrix (&new_state.mvp, &state->mvp);
gsk_vulkan_render_pass_append_push_constants (self, node, &new_state);
@@ -735,6 +733,7 @@ gsk_vulkan_render_pass_add_rounded_clip_node (GskVulkanRenderPass *self,
return TRUE;
new_state.offset = state->offset;
+ graphene_vec2_init_from_vec2 (&new_state.scale, &state->scale);
graphene_matrix_init_from_matrix (&new_state.mvp, &state->mvp);
gsk_vulkan_render_pass_append_push_constants (self, node, &new_state);
@@ -886,7 +885,7 @@ gsk_vulkan_render_pass_add_text_node (GskVulkanRenderPass *self,
op.text.start_glyph = 0;
op.text.texture_index = G_MAXUINT;
- op.text.scale = MAX (graphene_vec2_get_x (&self->scale), graphene_vec2_get_y (&self->scale));
+ op.text.scale = MAX (graphene_vec2_get_x (&state->scale), graphene_vec2_get_y (&state->scale));
x_position = 0;
for (i = 0, count = 0; i < num_glyphs; i++)
@@ -1054,6 +1053,7 @@ gsk_vulkan_render_pass_add (GskVulkanRenderPass *self,
ORTHO_FAR_PLANE);
graphene_matrix_multiply (&mvp, &projection, &state.mvp);
gsk_vulkan_clip_init_empty (&state.clip, &self->viewport);
+ graphene_vec2_init_from_vec2 (&state.scale, &self->scale);
state.offset = *graphene_point_zero ();
gsk_vulkan_render_pass_append_push_constants (self, node, &state);