src/text.c

changeset 113
71ba88258ea0
parent 106
895f92cff6b8
child 114
5b91bbab1ac0
equal deleted inserted replaced
112:3e956c96dd6c 113:71ba88258ea0
68 68
69 // Free the surface 69 // Free the surface
70 SDL_FreeSurface(surface); 70 SDL_FreeSurface(surface);
71 } 71 }
72 72
73 static void asc_text_free(AscSceneNode *node) { 73 static void asc_text_destroy(AscSceneNode *node) {
74 AscText *text = (AscText*) node; 74 AscText *text = (AscText*) node;
75 AscSprite *sprite = (AscSprite*) node; 75 AscSprite *sprite = (AscSprite*) node;
76 asc_texture_destroy(sprite->texture, 1); 76 asc_texture_destroy(sprite->texture, 1);
77 assert(sprite->texture->refcount == 0); 77 assert(sprite->texture->refcount == 0);
78 free(sprite->texture); 78 free(sprite->texture);
79 cx_strfree(&text->text); 79 cx_strfree(&text->text);
80 free(node);
81 } 80 }
82 81
83 AscSceneNode *asc_text_create(struct asc_text_create_args args) { 82 AscSceneNode *asc_text_create(struct asc_text_create_args args) {
84 AscText *text = calloc(1, sizeof(AscText)); 83 AscText *text = calloc(1, sizeof(AscText));
85 AscSceneNode *node = (AscSceneNode*) text; 84 AscSceneNode *node = (AscSceneNode*) text;
86 85
87 node->render_group = ASC_RENDER_GROUP_SPRITE_BLEND; 86 node->render_group = ASC_RENDER_GROUP_SPRITE_BLEND;
88 node->free_func = asc_text_free; 87 node->destroy_func = asc_text_destroy;
89 node->update_func = asc_text_update; 88 node->update_func = asc_text_update;
90 89
91 node->flags = args.alignment; 90 node->flags = args.alignment;
92 node->position = asc_vec3f_new(args.x, args.y, ASC_SCENE_2D_DEPTH_OFFSET); 91 node->position = asc_vec3f_new(args.x, args.y, ASC_SCENE_2D_DEPTH_OFFSET);
93 node->scale.depth = 1.f; 92 node->scale.depth = 1.f;

mercurial