81 AscText *text = (AscText*) node; |
81 AscText *text = (AscText*) node; |
82 AscSprite *sprite = (AscSprite*) node; |
82 AscSprite *sprite = (AscSprite*) node; |
83 asc_mesh_destroy(&sprite->mesh); |
83 asc_mesh_destroy(&sprite->mesh); |
84 asc_texture_destroy(sprite->texture, 1); |
84 asc_texture_destroy(sprite->texture, 1); |
85 assert(sprite->texture->refcount == 0); |
85 assert(sprite->texture->refcount == 0); |
86 free(sprite->texture); |
86 cxFreeDefault(sprite->texture); |
87 cx_strfree(&text->text); |
87 cx_strfree(&text->text); |
88 } |
88 } |
89 |
89 |
90 AscSceneNode *asc_text_create(struct asc_text_create_args args) { |
90 AscSceneNode *asc_text_create(struct asc_text_create_args args) { |
91 AscText *text = calloc(1, sizeof(AscText)); |
91 AscText *text = cxZallocDefault(sizeof(AscText)); |
92 AscSceneNode *node = &text->base.data; |
92 AscSceneNode *node = &text->base.data; |
93 |
93 |
94 // node properties |
94 // node properties |
95 asc_scene_node_name(node, args.name); |
95 asc_scene_node_name(node, args.name); |
96 node->render_group = ASC_RENDER_GROUP_SPRITE_BLEND; |
96 node->render_group = ASC_RENDER_GROUP_SPRITE_BLEND; |
110 text->text = cx_mutstr(strdup(args.text)); |
110 text->text = cx_mutstr(strdup(args.text)); |
111 } |
111 } |
112 |
112 |
113 // initialize texture |
113 // initialize texture |
114 // mesh will be created in the update func |
114 // mesh will be created in the update func |
115 text->base.texture = malloc(sizeof(AscTexture)); |
115 text->base.texture = cxMallocDefault(sizeof(AscTexture)); |
116 asc_texture_init_rectangle(text->base.texture, 1); |
116 asc_texture_init_rectangle(text->base.texture, 1); |
117 asc_text_update(node); |
117 asc_text_update(node); |
118 |
118 |
119 return node; |
119 return node; |
120 } |
120 } |