star-3d

Surface structuring for efficient 3D geometric queries
git clone git://git.meso-star.fr/star-3d.git
Log | Files | Refs | README | LICENSE

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:
Msrc/s3d_scene_view.c | 1+
Msrc/test_s3d_scene_view.c | 12+++++++++---
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);