src/text.c

changeset 45
18de2af03531
parent 44
b3da4096c607
child 48
6e5b5ba2752c
     1.1 --- a/src/text.c	Tue Mar 26 20:37:21 2024 +0100
     1.2 +++ b/src/text.c	Thu Mar 28 23:30:21 2024 +0100
     1.3 @@ -42,7 +42,7 @@
     1.4  
     1.5      // Upload model matrix
     1.6      glUniformMatrix4fv(shader->base.model, 1,
     1.7 -                       GL_FALSE, node->base.final_transform);
     1.8 +                       GL_FALSE, node->base.world_transform);
     1.9  
    1.10      // Upload surface
    1.11      glActiveTexture(GL_TEXTURE0);
    1.12 @@ -56,11 +56,6 @@
    1.13      asc_primitives_draw_plane();
    1.14  }
    1.15  
    1.16 -static void asc_text_update_transform(AscText *node) {
    1.17 -    asc_transform_scale2i(node->base.local_transform, node->dimension);
    1.18 -    asc_transform_translate2i(node->base.world_transform, node->position);
    1.19 -}
    1.20 -
    1.21  static void asc_text_update(AscText *node) {
    1.22      // short circuit if fully transparent or hidden, we don't need anything
    1.23      if (node->color.alpha == 0 || node->hidden) {
    1.24 @@ -87,9 +82,9 @@
    1.25          asc_error(SDL_GetError());
    1.26          return;
    1.27      }
    1.28 -    node->dimension.width = surface->w;
    1.29 -    node->dimension.height = surface->h;
    1.30 -    asc_node_update_transform((AscSceneNode *) node);
    1.31 +    node->base.scale.width = (float) surface->w;
    1.32 +    node->base.scale.height = (float) surface->h;
    1.33 +    asc_update_transform((AscSceneNode *) node);
    1.34  
    1.35      // Transfer Image Data
    1.36      // TODO: move the image data transfer to a separate function - we will need it more often
    1.37 @@ -113,11 +108,10 @@
    1.38      node->base.render_group = ASC_RENDER_GROUP_SPRITE_BLEND;
    1.39      node->base.free_func = (asc_scene_free_func) asc_text_free;
    1.40      node->base.update_func = (asc_scene_update_func) asc_text_update;
    1.41 -    node->base.transform_update_func = (asc_scene_update_func) asc_text_update_transform;
    1.42      node->base.draw_func = (asc_scene_draw_func) asc_text_draw;
    1.43  
    1.44 -    node->position.x = x;
    1.45 -    node->position.y = y;
    1.46 +    node->base.position.x = (float) x;
    1.47 +    node->base.position.y = (float) y;
    1.48      node->font = asc_context.active_font;
    1.49      node->color = asc_context.ink;
    1.50      if (text != NULL) {
    1.51 @@ -126,7 +120,6 @@
    1.52  
    1.53      // initialize
    1.54      asc_text_update(node);
    1.55 -    asc_text_update_transform(node);
    1.56  
    1.57      return &node->base;
    1.58  }

mercurial