src/scene.c

changeset 204
be5cf64b5c29
parent 200
cf0579d3bbc4
equal deleted inserted replaced
203:1883bdc4fb20 204:be5cf64b5c29
162 } 162 }
163 // check if transform needs an update 163 // check if transform needs an update
164 if (asc_test_flag(node->flags, ASC_SCENE_NODE_UPDATE_TRANSFORM)) { 164 if (asc_test_flag(node->flags, ASC_SCENE_NODE_UPDATE_TRANSFORM)) {
165 asc_set_flag(node->flags, ASC_SCENE_NODE_TRANSFORM_UPDATED); 165 asc_set_flag(node->flags, ASC_SCENE_NODE_TRANSFORM_UPDATED);
166 asc_clear_flag(node->flags, ASC_SCENE_NODE_UPDATE_TRANSFORM); 166 asc_clear_flag(node->flags, ASC_SCENE_NODE_UPDATE_TRANSFORM);
167
168 asc_scene_node_calculate_transform(node);
169
167 if (node->parent == scene->root) { 170 if (node->parent == scene->root) {
168 // skip unnecessary multiplication with unity matrix 171 // skip unnecessary multiplication with unity matrix
169 asc_transform_copy(node->world_transform, node->transform); 172 asc_transform_copy(node->world_transform, node->transform);
170 } else { 173 } else {
171 asc_mat4f_mul( 174 asc_mat4f_mul(

mercurial