struct _GskVulkanParseState
{
graphene_point_t offset;
+ graphene_vec2_t scale;
graphene_matrix_t mvp;
GskVulkanClip clip;
};
{
GskRenderNode *child;
GskTransform *transform;
- graphene_vec2_t old_scale;
float scale_x;
float scale_y;
graphene_vec2_t scale;
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;
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);
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);
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++)
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);