commit 13e5b89fafd2be8cfab5aa2f8077ef649f188f04
parent 565b7218ce299fc8bb2ccd92cb52177b1f1e6458
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Wed, 27 Jul 2016 12:29:06 +0200
Make the scene test compliant with the session API
Diffstat:
| M | src/test_s3d_scene.c | | | 167 | +++++++++++++++++++++++++++++++++++++------------------------------------------ |
1 file changed, 79 insertions(+), 88 deletions(-)
diff --git a/src/test_s3d_scene.c b/src/test_s3d_scene.c
@@ -92,6 +92,9 @@ main(int argc, char** argv)
struct s3d_scene* scn;
struct s3d_scene* scn2;
struct s3d_scene* scn3;
+ struct s3d_session* session;
+ struct s3d_session* session2;
+ struct s3d_session* session3;
struct s3d_vertex_data attribs;
struct s3d_shape* shapes[4];
const size_t nshapes = sizeof(shapes)/sizeof(struct s3d_shape*);
@@ -150,91 +153,83 @@ main(int argc, char** argv)
CHECK(s3d_scene_instantiate(scn, shapes + 2), RES_OK);
CHECK(s3d_scene_attach_shape(scn, shapes[2]), RES_BAD_ARG);
- CHECK(s3d_scene_get_session_mask(NULL, NULL), RES_BAD_ARG);
- CHECK(s3d_scene_get_session_mask(scn, NULL), RES_BAD_ARG);
- CHECK(s3d_scene_get_session_mask(NULL, &mask), RES_BAD_ARG);
- CHECK(s3d_scene_get_session_mask(scn, &mask), RES_OK);
- CHECK(mask, 0);
-
CHECK(s3d_scene_attach_shape(scn, shapes[0]), RES_OK);
- CHECK(s3d_scene_begin_session(NULL, 0), RES_BAD_ARG);
- CHECK(s3d_scene_begin_session(scn, 0), RES_BAD_ARG);
- CHECK(s3d_scene_begin_session(scn, S3D_TRACE|S3D_GET_PRIMITIVE), RES_OK);
- CHECK(s3d_scene_begin_session(scn, S3D_SAMPLE), RES_OK);
-
- CHECK(s3d_scene_get_session_mask(scn, &mask), RES_OK);
- CHECK(mask & S3D_TRACE, S3D_TRACE);
- CHECK(mask & S3D_SAMPLE, S3D_SAMPLE);
- CHECK(s3d_scene_clear(scn), RES_BAD_OP);
- CHECK(s3d_scene_detach_shape(scn, shapes[0]), RES_BAD_OP);
+ CHECK(s3d_session_create(NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(s3d_session_create(scn, 0, NULL), RES_BAD_ARG);
+ CHECK(s3d_session_create(NULL, S3D_TRACE, NULL), RES_BAD_ARG);
+ CHECK(s3d_session_create(scn, S3D_TRACE, NULL), RES_BAD_ARG);
+ CHECK(s3d_session_create(NULL, 0, &session), RES_BAD_ARG);
+ CHECK(s3d_session_create(scn, 0, &session), RES_BAD_ARG);
+ CHECK(s3d_session_create(NULL, S3D_TRACE, &session), RES_BAD_ARG);
+ CHECK(s3d_session_create(scn, S3D_TRACE, &session), RES_OK);
+
+ CHECK(s3d_session_get_mask(NULL, NULL), RES_BAD_ARG);
+ CHECK(s3d_session_get_mask(session, NULL), RES_BAD_ARG);
+ CHECK(s3d_session_get_mask(NULL, &mask), RES_BAD_ARG);
+ CHECK(s3d_session_get_mask(session, &mask), RES_OK);
+ CHECK(mask, S3D_TRACE);
- CHECK(s3d_scene_end_session(NULL), RES_BAD_ARG);
- 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_scene_detach_shape(scn, shapes[0]), RES_OK);
+ CHECK(s3d_scene_clear(scn), RES_OK);
- CHECK(s3d_scene_get_session_mask(scn, &mask), RES_OK);
- CHECK(mask, 0);
+ CHECK(s3d_session_ref_get(NULL), RES_BAD_ARG);
+ CHECK(s3d_session_ref_get(session), RES_OK);
+ CHECK(s3d_session_ref_put(NULL), RES_BAD_ARG);
+ CHECK(s3d_session_ref_put(session), RES_OK);
+ CHECK(s3d_session_ref_put(session), RES_OK);
- CHECK(s3d_scene_detach_shape(scn, shapes[0]), RES_OK);
- CHECK(s3d_scene_begin_session(scn, S3D_TRACE), RES_OK);
+ CHECK(s3d_session_create(scn, S3D_TRACE, &session), RES_OK);
CHECK(s3d_scene_attach_shape(scn, shapes[0]), RES_OK);
CHECK(s3d_scene_detach_shape(scn, shapes[0]), RES_OK);
CHECK(s3d_scene_attach_shape(scn, shapes[0]), RES_OK);
- CHECK(s3d_scene_end_session(scn), RES_OK);
+ CHECK(s3d_session_ref_put(session), RES_OK);
CHECK(s3d_scene_attach_shape(scn2, shapes[1]), RES_OK);
CHECK(s3d_scene_attach_shape(scn2, shapes[2]), RES_OK);
CHECK(s3d_scene_attach_shape(scn3, shapes[1]), RES_OK);
- CHECK(s3d_scene_begin_session(scn2, S3D_SAMPLE|S3D_TRACE), RES_OK);
- CHECK(s3d_scene_begin_session(scn, S3D_SAMPLE), RES_OK);
- CHECK(s3d_scene_begin_session(scn3, S3D_SAMPLE), RES_OK);
- CHECK(s3d_scene_end_session(scn3), RES_OK);
+ CHECK(s3d_session_create(scn2, S3D_SAMPLE|S3D_TRACE, &session2), RES_OK);
+ CHECK(s3d_session_create(scn, S3D_SAMPLE, &session), RES_OK);
+ CHECK(s3d_session_create(scn3, S3D_SAMPLE, &session3), RES_OK);
+ CHECK(s3d_session_ref_put(session3), RES_OK);
- CHECK(s3d_scene_compute_area(NULL, NULL), RES_BAD_ARG);
- CHECK(s3d_scene_compute_area(scn2, NULL), RES_BAD_ARG);
- CHECK(s3d_scene_compute_area(NULL, &area), RES_BAD_ARG);
- CHECK(s3d_scene_compute_area(scn2, &area), RES_OK);
+ CHECK(s3d_session_compute_area(NULL, NULL), RES_BAD_ARG);
+ CHECK(s3d_session_compute_area(session2, NULL), RES_BAD_ARG);
+ CHECK(s3d_session_compute_area(NULL, &area), RES_BAD_ARG);
+ CHECK(s3d_session_compute_area(session2, &area), RES_OK);
CHECK(area, 0.f);
- CHECK(s3d_scene_compute_volume(NULL, NULL), RES_BAD_ARG);
- CHECK(s3d_scene_compute_volume(scn2, NULL), RES_BAD_ARG);
- CHECK(s3d_scene_compute_volume(NULL, &volume), RES_BAD_ARG);
- CHECK(s3d_scene_compute_volume(scn2, &volume), RES_OK);
+ CHECK(s3d_session_compute_volume(NULL, NULL), RES_BAD_ARG);
+ CHECK(s3d_session_compute_volume(session2, NULL), RES_BAD_ARG);
+ CHECK(s3d_session_compute_volume(NULL, &volume), RES_BAD_ARG);
+ CHECK(s3d_session_compute_volume(session2, &volume), RES_OK);
CHECK(volume, 0.f);
- CHECK(s3d_scene_primitives_count(NULL, NULL), RES_BAD_ARG);
- CHECK(s3d_scene_primitives_count(scn2, NULL), RES_BAD_ARG);
- CHECK(s3d_scene_primitives_count(NULL, &nprims), RES_BAD_ARG);
- CHECK(s3d_scene_primitives_count(scn2, &nprims), RES_OK);
+ CHECK(s3d_session_primitives_count(NULL, NULL), RES_BAD_ARG);
+ CHECK(s3d_session_primitives_count(session2, NULL), RES_BAD_ARG);
+ CHECK(s3d_session_primitives_count(NULL, &nprims), RES_BAD_ARG);
+ CHECK(s3d_session_primitives_count(session2, &nprims), RES_OK);
CHECK(nprims, 0);
- CHECK(s3d_scene_get_aabb(NULL, NULL, NULL), RES_BAD_ARG);
- CHECK(s3d_scene_get_aabb(scn2, NULL, NULL), RES_BAD_ARG);
- CHECK(s3d_scene_get_aabb(NULL, lower, NULL), RES_BAD_ARG);
- CHECK(s3d_scene_get_aabb(scn2, lower, NULL), RES_BAD_ARG);
- CHECK(s3d_scene_get_aabb(NULL, NULL, upper), RES_BAD_ARG);
- CHECK(s3d_scene_get_aabb(scn2, NULL, upper), RES_BAD_ARG);
- CHECK(s3d_scene_get_aabb(NULL, lower, upper), RES_BAD_ARG);
- CHECK(s3d_scene_get_aabb(scn2, lower, upper), RES_OK);
+ CHECK(s3d_session_get_aabb(NULL, NULL, NULL), RES_BAD_ARG);
+ CHECK(s3d_session_get_aabb(session2, NULL, NULL), RES_BAD_ARG);
+ CHECK(s3d_session_get_aabb(NULL, lower, NULL), RES_BAD_ARG);
+ CHECK(s3d_session_get_aabb(session2, lower, NULL), RES_BAD_ARG);
+ CHECK(s3d_session_get_aabb(NULL, NULL, upper), RES_BAD_ARG);
+ CHECK(s3d_session_get_aabb(session2, NULL, upper), RES_BAD_ARG);
+ CHECK(s3d_session_get_aabb(NULL, lower, upper), RES_BAD_ARG);
+ CHECK(s3d_session_get_aabb(session2, lower, upper), RES_OK);
CHECK(lower[0] > upper[0], 1);
CHECK(lower[1] > upper[1], 1);
CHECK(lower[2] > upper[2], 1);
- CHECK(s3d_scene_end_session(scn), RES_OK);
- CHECK(s3d_scene_end_session(scn), RES_BAD_OP);
- CHECK(s3d_scene_end_session(scn2), RES_OK);
-
- CHECK(s3d_scene_compute_area(scn2, &area), RES_BAD_OP);
- CHECK(s3d_scene_compute_volume(scn2, &volume), RES_BAD_OP);
- CHECK(s3d_scene_primitives_count(scn2, &nprims), RES_BAD_OP);
- CHECK(s3d_scene_get_aabb(scn2, lower, upper), RES_BAD_OP);
+ CHECK(s3d_session_ref_put(session), RES_OK);
+ CHECK(s3d_session_ref_put(session2), RES_OK);
CHECK(s3d_scene_instantiate(scn2, shapes + 3), RES_OK);
CHECK(s3d_scene_attach_shape(scn3, shapes[3]), RES_OK);
- CHECK(s3d_scene_begin_session(scn3, S3D_SAMPLE|S3D_TRACE), RES_BAD_ARG);
+ CHECK(s3d_session_create(scn3, S3D_SAMPLE|S3D_TRACE, &session3), RES_BAD_ARG);
CHECK(s3d_scene_detach_shape(scn, shapes[0]), RES_OK);
@@ -262,60 +257,56 @@ main(int argc, char** argv)
cbox_get_ids, cbox_walls_nverts, &attribs, 1, data), RES_OK);
CHECK(s3d_scene_attach_shape(scn, shapes[0]), RES_OK);
- CHECK(s3d_scene_begin_session(scn, S3D_TRACE), RES_OK);
- CHECK(s3d_scene_compute_area(scn, &area), RES_OK);
+ CHECK(s3d_session_create(scn, S3D_TRACE, &session), RES_OK);
+ CHECK(s3d_session_compute_area(session, &area), RES_OK);
CHECK(eq_epsf(area, 1532296.f, 1.e-6f), 1);
- CHECK(s3d_scene_primitives_count(scn, &nprims), RES_OK);
+ CHECK(s3d_session_primitives_count(session, &nprims), RES_OK);
CHECK(nprims, 10);
- CHECK(s3d_scene_get_aabb(scn, lower, upper), RES_OK);
+ CHECK(s3d_session_get_aabb(session, lower, upper), RES_OK);
CHECK(eq_epsf(lower[0], 0.f, 1.e-6f), 1);
CHECK(eq_epsf(lower[1], 0.f, 1.e-6f), 1);
CHECK(eq_epsf(lower[2], 0.f, 1.e-6f), 1);
CHECK(eq_epsf(upper[0], 552.f, 1.e-6f), 1);
CHECK(eq_epsf(upper[1], 559.f, 1.e-6f), 1);
CHECK(eq_epsf(upper[2], 548.f, 1.e-6f), 1);
- CHECK(s3d_scene_end_session(scn), RES_OK);
CHECK(s3d_scene_instantiate(scn, shapes + 1), RES_OK);
CHECK(s3d_scene_attach_shape(scn2, shapes[1]), RES_OK);
- CHECK(s3d_scene_begin_session(scn2, S3D_TRACE), RES_OK);
- CHECK(s3d_scene_compute_area(scn2, &area), RES_OK);
+ CHECK(s3d_session_create(scn2, S3D_GET_PRIMITIVE, &session2), RES_OK);
+ CHECK(s3d_session_compute_area(session2, &area), RES_OK);
CHECK(eq_epsf(area, 1532296.f, 1.e-6f), 1);
- CHECK(s3d_scene_primitives_count(scn, &nprims), RES_OK);
+ CHECK(s3d_session_primitives_count(session2, &nprims), RES_OK);
CHECK(nprims, 10);
- CHECK(s3d_scene_get_aabb(scn, lower, upper), RES_OK);
+ CHECK(s3d_session_get_aabb(session2, lower, upper), RES_OK);
CHECK(eq_epsf(lower[0], 0.f, 1.e-6f), 1);
CHECK(eq_epsf(lower[1], 0.f, 1.e-6f), 1);
CHECK(eq_epsf(lower[2], 0.f, 1.e-6f), 1);
CHECK(eq_epsf(upper[0], 552.f, 1.e-6f), 1);
CHECK(eq_epsf(upper[1], 559.f, 1.e-6f), 1);
CHECK(eq_epsf(upper[2], 548.f, 1.e-6f), 1);
- CHECK(s3d_scene_end_session(scn2), RES_OK);
- CHECK(s3d_scene_begin_session(scn2, S3D_GET_PRIMITIVE), RES_OK);
- CHECK(s3d_scene_compute_area(scn2, &area), RES_OK);
+ CHECK(s3d_session_compute_area(session, &area), RES_OK);
CHECK(eq_epsf(area, 1532296.f, 1.e-6f), 1);
- CHECK(s3d_scene_primitives_count(scn, &nprims), RES_OK);
- CHECK(nprims, 10);
+ CHECK(s3d_session_ref_put(session), RES_OK);
- CHECK(s3d_scene_get_primitive(NULL, 11, NULL), RES_BAD_ARG);
- CHECK(s3d_scene_get_primitive(scn2, 11, NULL), RES_BAD_ARG);
- CHECK(s3d_scene_get_primitive(NULL, 0, NULL), RES_BAD_ARG);
- CHECK(s3d_scene_get_primitive(scn2, 0, NULL), RES_BAD_ARG);
- CHECK(s3d_scene_get_primitive(NULL, 11, prims + 0), RES_BAD_ARG);
- CHECK(s3d_scene_get_primitive(scn2, 11, prims + 0), RES_BAD_ARG);
- CHECK(s3d_scene_get_primitive(NULL, 0, prims + 0), RES_BAD_ARG);
+ CHECK(s3d_session_get_primitive(NULL, 11, NULL), RES_BAD_ARG);
+ CHECK(s3d_session_get_primitive(session2, 11, NULL), RES_BAD_ARG);
+ CHECK(s3d_session_get_primitive(NULL, 0, NULL), RES_BAD_ARG);
+ CHECK(s3d_session_get_primitive(session2, 0, NULL), RES_BAD_ARG);
+ CHECK(s3d_session_get_primitive(NULL, 11, prims + 0), RES_BAD_ARG);
+ CHECK(s3d_session_get_primitive(session2, 11, prims + 0), RES_BAD_ARG);
+ CHECK(s3d_session_get_primitive(NULL, 0, prims + 0), RES_BAD_ARG);
FOR_EACH(i, 0, nprims) {
size_t j;
- CHECK(s3d_scene_get_primitive(scn2, (unsigned)i, prims + i), RES_OK);
+ CHECK(s3d_session_get_primitive(session2, (unsigned)i, prims + i), RES_OK);
CHECK(S3D_PRIMITIVE_EQ(prims + i, &S3D_PRIMITIVE_NULL), 0);
CHECK(prims[i].scene_prim_id, i);
FOR_EACH(j, 0, i)
CHECK(S3D_PRIMITIVE_EQ(prims + i, prims + j), 0);
}
- CHECK(s3d_scene_end_session(scn2), RES_OK);
+ CHECK(s3d_session_ref_put(session2), RES_OK);
attribs.type = S3D_FLOAT3;
attribs.usage = S3D_POSITION;
@@ -323,18 +314,18 @@ main(int argc, char** argv)
CHECK(s3d_mesh_setup_indexed_vertices
(shapes[0], cube_ntris, cube_get_ids, cube_nverts, &attribs, 1, NULL), RES_OK);
- CHECK(s3d_scene_begin_session(scn, S3D_TRACE), RES_OK);
- CHECK(s3d_scene_compute_area(scn, &area), RES_OK);
+ CHECK(s3d_session_create(scn, S3D_TRACE, &session), RES_OK);
+ CHECK(s3d_session_compute_area(session, &area), RES_OK);
CHECK(eq_epsf(area, 6.f, 1.e-6f), 1);
- CHECK(s3d_scene_compute_volume(scn, &volume), RES_OK);
+ CHECK(s3d_session_compute_volume(session, &volume), RES_OK);
CHECK(eq_epsf(volume, 1.f, 1.e-6f), 1);
- CHECK(s3d_scene_end_session(scn), RES_OK);
+ CHECK(s3d_session_ref_put(session), RES_OK);
CHECK(s3d_shape_flip_surface(shapes[0]), RES_OK);
- CHECK(s3d_scene_begin_session(scn, S3D_GET_PRIMITIVE), RES_OK);
- CHECK(s3d_scene_compute_volume(scn, &volume), RES_OK);
+ CHECK(s3d_session_create(scn, S3D_GET_PRIMITIVE, &session), RES_OK);
+ CHECK(s3d_session_compute_volume(session, &volume), RES_OK);
CHECK(eq_epsf(volume, -1.f, 1.e-6f), 1);
- CHECK(s3d_scene_end_session(scn), RES_OK);
+ CHECK(s3d_session_ref_put(session), RES_OK);
CHECK(s3d_scene_get_device(NULL, NULL), RES_BAD_ARG);
CHECK(s3d_scene_get_device(scn, NULL), RES_BAD_ARG);