src/scene.c

changeset 69
86d545f490e4
parent 65
9c44c55d327a
child 71
baa73a0be3ce
equal deleted inserted replaced
68:823c03733e42 69:86d545f490e4
98 } 98 }
99 99
100 // TODO: implement culling 100 // TODO: implement culling
101 101
102 // check if geometry needs update 102 // check if geometry needs update
103 asc_clear_flag(node->flags,
104 ASC_SCENE_NODE_GRAPHICS_UPDATED
105 | ASC_SCENE_NODE_TRANSFORM_UPDATED);
103 if (asc_test_flag(node->flags, ASC_SCENE_NODE_UPDATE_GRAPHICS)) { 106 if (asc_test_flag(node->flags, ASC_SCENE_NODE_UPDATE_GRAPHICS)) {
107 asc_set_flag(node->flags, ASC_SCENE_NODE_GRAPHICS_UPDATED);
108 asc_clear_flag(node->flags, ASC_SCENE_NODE_UPDATE_GRAPHICS);
104 assert(node->update_func != NULL); 109 assert(node->update_func != NULL);
105 asc_clear_flag(node->flags, ASC_SCENE_NODE_UPDATE_GRAPHICS);
106 node->update_func(node); 110 node->update_func(node);
107 } 111 }
108 if (asc_test_flag(node->flags, ASC_SCENE_NODE_UPDATE_TRANSFORM)) { 112 if (asc_test_flag(node->flags, ASC_SCENE_NODE_UPDATE_TRANSFORM)) {
109 asc_test_flag(node->flags, ASC_SCENE_NODE_UPDATE_TRANSFORM); 113 asc_set_flag(node->flags, ASC_SCENE_NODE_TRANSFORM_UPDATED);
114 asc_clear_flag(node->flags, ASC_SCENE_NODE_UPDATE_TRANSFORM);
110 asc_transform_from_parts( 115 asc_transform_from_parts(
111 node->transform, 116 node->transform,
112 node->position, 117 node->position,
113 node->scale, 118 node->scale,
114 node->rotation 119 node->rotation

mercurial