src/scene_node.c

changeset 122
1b118cd3e369
parent 116
bfb2a7d62047
equal deleted inserted replaced
121:ede9a9e92ff9 122:1b118cd3e369
44 offsetof(AscSceneNode, next) 44 offsetof(AscSceneNode, next)
45 ); 45 );
46 } 46 }
47 47
48 AscSceneNode *asc_scene_node_empty(void) { 48 AscSceneNode *asc_scene_node_empty(void) {
49 AscSceneNode *node = calloc(1, sizeof(AscSceneNode)); 49 AscSceneNode *node = cxZallocDefault(sizeof(AscSceneNode));
50 node->render_group = ASC_RENDER_GROUP_NONE; 50 node->render_group = ASC_RENDER_GROUP_NONE;
51 node->scale = asc_vec3f_one; 51 node->scale = asc_vec3f_one;
52 asc_transform_identity(node->transform); 52 asc_transform_identity(node->transform);
53 asc_transform_identity(node->world_transform); 53 asc_transform_identity(node->world_transform);
54 return node; 54 return node;
74 // free the entire subtree 74 // free the entire subtree
75 CxTreeIterator iter = asc_scene_node_iterator(node, true); 75 CxTreeIterator iter = asc_scene_node_iterator(node, true);
76 cx_foreach(AscSceneNode*, child, iter) { 76 cx_foreach(AscSceneNode*, child, iter) {
77 if (!iter.exiting) continue; 77 if (!iter.exiting) continue;
78 asc_scene_node_destroy(child); 78 asc_scene_node_destroy(child);
79 free(child); 79 cxFreeDefault(child);
80 } 80 }
81 } 81 }
82 82
83 void asc_scene_node_name(AscSceneNode *node, const char *name) { 83 void asc_scene_node_name(AscSceneNode *node, const char *name) {
84 free(node->name.ptr); 84 cx_strfree(&node->name);
85 if (name == NULL) { 85 if (name == NULL) {
86 node->name.ptr = NULL; 86 node->name.ptr = NULL;
87 node->name.length = 0; 87 node->name.length = 0;
88 } else { 88 } else {
89 node->name.ptr = strdup(name); 89 node->name.ptr = strdup(name);

mercurial