commit 6f9d3f04321fa5afefc3b513913c2b8cc345b9d8
parent 25320c779fcd8356123e57e47d1ea23029c47182
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Mon, 25 Jul 2016 11:07:41 +0200
Fix the upd of the back-end enable flag on the instances
Diffstat:
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/src/s3d_scene.c b/src/s3d_scene.c
@@ -502,6 +502,12 @@ scene_register_instance
f3_set(geom->data.instance->transform+9, shape->data.instance->transform+9);
}
+ /* Update the enable flag */
+ if(geom->is_enabled != shape->is_enabled) {
+ geom->is_enabled = shape->is_enabled;
+ geom->embree_outdated_mask |= EMBREE_TRANSFORM;
+ }
+
geom->flip_surface = shape->flip_surface;
exit:
diff --git a/src/test_s3d_sampler.c b/src/test_s3d_sampler.c
@@ -120,7 +120,7 @@ main(int argc, char** argv)
CHECK(s3d_scene_attach_shape(scn, walls), RES_OK);
CHECK(s3d_scene_begin_session(scn, S3D_SAMPLE), RES_OK);
- CHECK(s3d_scene_begin_session(scn, S3D_SAMPLE), RES_BAD_OP);
+ CHECK(s3d_scene_begin_session(scn, S3D_SAMPLE), RES_OK);
CHECK(s3d_scene_sample(scn, 0.5f, 0.5f, 0.5f, &prim, uv), RES_OK);
CHECK(s3d_primitive_get_attrib(&prim, S3D_POSITION, uv, &attr0), RES_OK);
@@ -148,6 +148,8 @@ main(int argc, char** argv)
NCHECK(f3_eq_eps(attr0.value, attr1.value, 1.e-6f), 1);
CHECK(s3d_scene_end_session(scn), RES_OK);
+ CHECK(s3d_scene_end_session(scn), RES_OK);
+ CHECK(s3d_scene_end_session(scn), RES_BAD_OP);
CHECK(s3d_shape_enable(walls, 0), RES_OK);
CHECK(s3d_scene_begin_session(scn, S3D_SAMPLE), RES_OK);