commit 930e5955e962b945526176511d921e15aa20316e
parent 4ed84b3bfb372c56e465855468f5ac435df77fcb
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Tue, 24 Jul 2018 14:24:28 +0200
Fix an Embree warning with empty scene
Force the rtc scene to be committed to Embree on its creation.
Diffstat:
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/src/s3d_scene_view.c b/src/s3d_scene_view.c
@@ -352,6 +352,7 @@ scene_view_setup_embree(struct s3d_scene_view* scnview)
res = RES_MEM_ERR;
goto error;
}
+ rtc_outdated = 1;
}
htable_geom_begin(&scnview->cached_geoms, &it);
diff --git a/src/test_s3d_scene_view.c b/src/test_s3d_scene_view.c
@@ -194,12 +194,21 @@ test_trace_ray
unsigned iinst0;
unsigned iinst1;
+ f3(org, 0.5f, 0.25f, 0.25f);
+ f3(dir, 0.f, 0.f, 1.f);
+ f2(range, 0.f, FLT_MAX);
+
CHK(s3d_shape_get_id(cube, &icube) == RES_OK);
CHK(s3d_shape_get_id(plane, &iplane) == RES_OK);
CHK(s3d_scene_create(dev, &scn) == RES_OK);
CHK(s3d_scene_create(dev, &scn2) == RES_OK);
CHK(s3d_scene_create(dev, &scn3) == RES_OK);
+
+ CHK(s3d_scene_view_create(scn, S3D_TRACE, &scnview) == RES_OK);
+ CHK(s3d_scene_view_trace_ray(scnview, org, dir, range, NULL, &hit) == RES_OK);
+ CHK(s3d_scene_view_ref_put(scnview) == RES_OK);
+
CHK(s3d_scene_attach_shape(scn, plane) == RES_OK);
CHK(s3d_scene_attach_shape(scn, cube) == RES_OK);
CHK(s3d_scene_attach_shape(scn2, cube) == RES_OK);
@@ -207,9 +216,6 @@ test_trace_ray
CHK(s3d_scene_view_create(scn, S3D_SAMPLE|S3D_GET_PRIMITIVE, &scnview) == RES_OK);
- f3(org, 0.5f, 0.25f, 0.25f);
- f3(dir, 0.f, 0.f, 1.f);
- f2(range, 0.f, FLT_MAX);
CHK(s3d_scene_view_trace_ray(scnview, org, dir, range, NULL, &hit) == RES_BAD_OP);
CHK(s3d_scene_view_create(scn, S3D_TRACE, &scnview2) == RES_OK);