diff -r b3da4096c607 -r 18de2af03531 src/text.c --- a/src/text.c Tue Mar 26 20:37:21 2024 +0100 +++ b/src/text.c Thu Mar 28 23:30:21 2024 +0100 @@ -42,7 +42,7 @@ // Upload model matrix glUniformMatrix4fv(shader->base.model, 1, - GL_FALSE, node->base.final_transform); + GL_FALSE, node->base.world_transform); // Upload surface glActiveTexture(GL_TEXTURE0); @@ -56,11 +56,6 @@ asc_primitives_draw_plane(); } -static void asc_text_update_transform(AscText *node) { - asc_transform_scale2i(node->base.local_transform, node->dimension); - asc_transform_translate2i(node->base.world_transform, node->position); -} - static void asc_text_update(AscText *node) { // short circuit if fully transparent or hidden, we don't need anything if (node->color.alpha == 0 || node->hidden) { @@ -87,9 +82,9 @@ asc_error(SDL_GetError()); return; } - node->dimension.width = surface->w; - node->dimension.height = surface->h; - asc_node_update_transform((AscSceneNode *) node); + node->base.scale.width = (float) surface->w; + node->base.scale.height = (float) surface->h; + asc_update_transform((AscSceneNode *) node); // Transfer Image Data // TODO: move the image data transfer to a separate function - we will need it more often @@ -113,11 +108,10 @@ node->base.render_group = ASC_RENDER_GROUP_SPRITE_BLEND; node->base.free_func = (asc_scene_free_func) asc_text_free; node->base.update_func = (asc_scene_update_func) asc_text_update; - node->base.transform_update_func = (asc_scene_update_func) asc_text_update_transform; node->base.draw_func = (asc_scene_draw_func) asc_text_draw; - node->position.x = x; - node->position.y = y; + node->base.position.x = (float) x; + node->base.position.y = (float) y; node->font = asc_context.active_font; node->color = asc_context.ink; if (text != NULL) { @@ -126,7 +120,6 @@ // initialize asc_text_update(node); - asc_text_update_transform(node); return &node->base; }