commit 6ee0993dc458aa15b6a3773cd9605cf37d67fd8c
parent 6f9d3f04321fa5afefc3b513913c2b8cc345b9d8
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Mon, 25 Jul 2016 11:22:44 +0200
Fix the upd of the back-end filter function
The back-end filter function was not correctly updated due to a mistake
on the flush condition.
Diffstat:
2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/src/s3d_scene.c b/src/s3d_scene.c
@@ -423,8 +423,8 @@ scene_register_mesh
}
/* Update the filter function */
- if(geom->data.mesh->filter.func == shape->data.mesh->filter.func
- && geom->data.mesh->filter.data == shape->data.mesh->filter.data) {
+ if(geom->data.mesh->filter.func != shape->data.mesh->filter.func
+ || geom->data.mesh->filter.data != shape->data.mesh->filter.data) {
geom->data.mesh->filter = shape->data.mesh->filter;
geom->embree_outdated_mask |= EMBREE_FILTER_FUNCTION;
}
diff --git a/src/test_s3d_trace_ray.c b/src/test_s3d_trace_ray.c
@@ -268,11 +268,12 @@ main(int argc, char** argv)
CHECK(s3d_shape_enable(inst, 0), RES_OK);
CHECK(s3d_scene_begin_session(scn, S3D_TRACE), RES_OK);
- CHECK(s3d_scene_begin_session(scn2, S3D_TRACE), RES_BAD_OP);
+ CHECK(s3d_scene_begin_session(scn2, S3D_TRACE), RES_OK);
CHECK(s3d_scene_end_session(scn), RES_OK);
+ CHECK(s3d_scene_end_session(scn2), RES_OK);
CHECK(s3d_scene_begin_session(scn2, S3D_TRACE), RES_OK);
- CHECK(s3d_scene_begin_session(scn, S3D_TRACE), RES_BAD_OP);
- CHECK(s3d_scene_end_session(scn), RES_BAD_OP);
+ CHECK(s3d_scene_begin_session(scn, S3D_TRACE), RES_OK);
+ CHECK(s3d_scene_end_session(scn), RES_OK);
CHECK(s3d_scene_clear(scn2), RES_BAD_OP);
CHECK(s3d_scene_clear(scn), RES_BAD_OP);