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 62bb1ecd42a9ed626a7fca903c4a8f1c4f19f952
parent 183236becc0a8f22baf6f1d1fd9f90b2a70900f3
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Wed, 27 Jul 2016 11:45:14 +0200

Make the sampler test compliant with the session API

Diffstat:
Msrc/test_s3d_sampler.c | 84++++++++++++++++++++++++++++++++++++++-----------------------------------------
1 file changed, 40 insertions(+), 44 deletions(-)

diff --git a/src/test_s3d_sampler.c b/src/test_s3d_sampler.c @@ -53,6 +53,7 @@ main(int argc, char** argv) struct s3d_device* dev; struct s3d_scene* scn; struct s3d_scene* scn2; + struct s3d_session* session; struct s3d_shape* cbox; struct s3d_shape* walls; struct s3d_shape* short_block; @@ -87,24 +88,24 @@ main(int argc, char** argv) CHECK(s3d_shape_get_id(short_block, &short_block_id), RES_OK); CHECK(s3d_shape_get_id(tall_block, &tall_block_id), RES_OK); - CHECK(s3d_scene_begin_session(scn, S3D_SAMPLE), RES_OK); - CHECK(s3d_scene_sample(NULL, 0, 0, 0, NULL, NULL), RES_BAD_ARG); - CHECK(s3d_scene_sample(scn, 0, 0, 0, NULL, NULL), RES_BAD_ARG); - CHECK(s3d_scene_sample(NULL, 0, 0, 0, &prim, NULL), RES_BAD_ARG); - CHECK(s3d_scene_sample(scn, 0, 0, 0, &prim, NULL), RES_BAD_ARG); - CHECK(s3d_scene_sample(NULL, 0, 0, 0, NULL, uv), RES_BAD_ARG); - CHECK(s3d_scene_sample(scn, 0, 0, 0, NULL, uv), RES_BAD_ARG); - CHECK(s3d_scene_sample(NULL, 0, 0, 0, &prim, uv), RES_BAD_ARG); - CHECK(s3d_scene_sample(scn, 0, 0, 0, &prim, uv), RES_OK); - CHECK(s3d_scene_sample(scn, -1, 0, 0, &prim, uv), RES_BAD_ARG); - CHECK(s3d_scene_sample(scn, 0, -1, 0, &prim, uv), RES_BAD_ARG); - CHECK(s3d_scene_sample(scn, 0, 0, -1, &prim, uv), RES_BAD_ARG); - CHECK(s3d_scene_sample(scn, 1, 0, 0, &prim, uv), RES_BAD_ARG); - CHECK(s3d_scene_sample(scn, 0, 1, 0, &prim, uv), RES_BAD_ARG); - CHECK(s3d_scene_sample(scn, 0, 0, 1, &prim, uv), RES_BAD_ARG); - CHECK(s3d_scene_sample(scn, 0.5f, 0.5f, 0.5f, &prim, uv), RES_OK); + CHECK(s3d_session_create(scn, S3D_SAMPLE, &session), RES_OK); + CHECK(s3d_session_sample(NULL, 0, 0, 0, NULL, NULL), RES_BAD_ARG); + CHECK(s3d_session_sample(session, 0, 0, 0, NULL, NULL), RES_BAD_ARG); + CHECK(s3d_session_sample(NULL, 0, 0, 0, &prim, NULL), RES_BAD_ARG); + CHECK(s3d_session_sample(session, 0, 0, 0, &prim, NULL), RES_BAD_ARG); + CHECK(s3d_session_sample(NULL, 0, 0, 0, NULL, uv), RES_BAD_ARG); + CHECK(s3d_session_sample(session, 0, 0, 0, NULL, uv), RES_BAD_ARG); + CHECK(s3d_session_sample(NULL, 0, 0, 0, &prim, uv), RES_BAD_ARG); + CHECK(s3d_session_sample(session, 0, 0, 0, &prim, uv), RES_OK); + CHECK(s3d_session_sample(session, -1, 0, 0, &prim, uv), RES_BAD_ARG); + CHECK(s3d_session_sample(session, 0, -1, 0, &prim, uv), RES_BAD_ARG); + CHECK(s3d_session_sample(session, 0, 0, -1, &prim, uv), RES_BAD_ARG); + CHECK(s3d_session_sample(session, 1, 0, 0, &prim, uv), RES_BAD_ARG); + CHECK(s3d_session_sample(session, 0, 1, 0, &prim, uv), RES_BAD_ARG); + CHECK(s3d_session_sample(session, 0, 0, 1, &prim, uv), RES_BAD_ARG); + CHECK(s3d_session_sample(session, 0.5f, 0.5f, 0.5f, &prim, uv), RES_OK); CHECK(S3D_PRIMITIVE_EQ(&prim, &S3D_PRIMITIVE_NULL), 1); - CHECK(s3d_scene_end_session(scn), RES_OK); + CHECK(s3d_session_ref_put(session), RES_OK); attribs.usage = S3D_POSITION; attribs.type = S3D_FLOAT3; @@ -119,12 +120,11 @@ 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_OK); + CHECK(s3d_session_create(scn, S3D_SAMPLE, &session), RES_OK); - CHECK(s3d_scene_sample(scn, 0.5f, 0.5f, 0.5f, &prim, uv), RES_OK); + CHECK(s3d_session_sample(session, 0.5f, 0.5f, 0.5f, &prim, uv), RES_OK); CHECK(s3d_primitive_get_attrib(&prim, S3D_POSITION, uv, &attr0), RES_OK); - CHECK(s3d_scene_sample(scn, 0.5f, 0.5f, 0.5f, &prim, uv), RES_OK); + CHECK(s3d_session_sample(session, 0.5f, 0.5f, 0.5f, &prim, uv), RES_OK); CHECK(s3d_primitive_get_attrib(&prim, S3D_POSITION, uv, &attr1), RES_OK); prim1 = prim; @@ -143,23 +143,19 @@ main(int argc, char** argv) CHECK(attr1.type, S3D_FLOAT3); CHECK(f3_eq_eps(attr0.value, attr1.value, 1.e-6f), 1); - CHECK(s3d_scene_sample(scn, 0.3f, 0.1f, 0.2f, &prim, uv), RES_OK); + CHECK(s3d_session_sample(session, 0.3f, 0.1f, 0.2f, &prim, uv), RES_OK); CHECK(s3d_primitive_get_attrib(&prim, S3D_POSITION, uv, &attr1), RES_OK); 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_session_ref_put(session), RES_OK); CHECK(s3d_shape_enable(walls, 0), RES_OK); - 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_session_create(scn, S3D_SAMPLE, &session), RES_OK); + CHECK(s3d_session_sample(session, 0.5f, 0.5f, 0.5f, &prim, uv), RES_OK); CHECK(S3D_PRIMITIVE_EQ(&prim, &S3D_PRIMITIVE_NULL), 1); - CHECK(s3d_scene_end_session(scn), RES_OK); + CHECK(s3d_session_ref_put(session), RES_OK); CHECK(s3d_shape_enable(walls, 1), RES_OK); - CHECK(s3d_scene_sample(scn, 0.5f, 0.5f, 0.5f, &prim, uv), RES_BAD_OP); - ntris = sizeof(cbox_block_ids)/sizeof(unsigned[3]); nverts = sizeof(cbox_short_block)/sizeof(float[3]); desc.vertices = cbox_short_block; @@ -170,35 +166,35 @@ main(int argc, char** argv) CHECK(s3d_scene_attach_shape(scn, short_block), RES_OK); CHECK(s3d_scene_attach_shape(scn, tall_block), RES_OK); - 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_session_create(scn, S3D_SAMPLE, &session), RES_OK); + CHECK(s3d_session_sample(session, 0.5f, 0.5f, 0.5f, &prim, uv), RES_OK); CHECK(s3d_primitive_get_attrib(&prim, S3D_POSITION, uv, &attr0), RES_OK); desc.vertices = cbox_tall_block; CHECK(s3d_mesh_setup_indexed_vertices (tall_block, ntris, cbox_get_ids, nverts, &attribs, 1, &desc), RES_OK); - CHECK(s3d_scene_sample(scn, 0.5f, 0.5f, 0.5f, &prim, uv), RES_OK); + CHECK(s3d_session_sample(session, 0.5f, 0.5f, 0.5f, &prim, uv), RES_OK); CHECK(s3d_primitive_get_attrib(&prim, S3D_POSITION, uv, &attr1), RES_OK); CHECK(f3_eq_eps(attr0.value, attr1.value, 1.e-6f), 1); - CHECK(s3d_scene_end_session(scn), RES_OK); + CHECK(s3d_session_ref_put(session), RES_OK); - 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_session_create(scn, S3D_SAMPLE, &session), RES_OK); + CHECK(s3d_session_sample(session, 0.5f, 0.5f, 0.5f, &prim, uv), RES_OK); CHECK(s3d_primitive_get_attrib(&prim, S3D_POSITION, uv, &attr1), RES_OK); NCHECK(f3_eq_eps(attr0.value, attr1.value, 1.e-6f), 1); - CHECK(s3d_scene_end_session(scn), RES_OK); + CHECK(s3d_session_ref_put(session), RES_OK); CHECK(s3d_shape_enable(cbox, 0), RES_OK); - CHECK(s3d_scene_begin_session(scn2, S3D_SAMPLE|S3D_TRACE), RES_OK); - CHECK(s3d_scene_sample(scn2, 0.5f, 0.5f, 0.5f, &prim, uv), RES_OK); + CHECK(s3d_session_create(scn2, S3D_SAMPLE|S3D_TRACE, &session), RES_OK); + CHECK(s3d_session_sample(session, 0.5f, 0.5f, 0.5f, &prim, uv), RES_OK); CHECK(S3D_PRIMITIVE_EQ(&prim, &S3D_PRIMITIVE_NULL), 1); - CHECK(s3d_scene_end_session(scn2), RES_OK); + CHECK(s3d_session_ref_put(session), RES_OK); CHECK(s3d_shape_enable(cbox, 1), RES_OK); - CHECK(s3d_scene_begin_session(scn2, S3D_SAMPLE|S3D_TRACE), RES_OK); + CHECK(s3d_session_create(scn2, S3D_SAMPLE|S3D_TRACE, &session), RES_OK); FOR_EACH(i, 0, NSAMPS) { const float u = rand_canonic(); const float v = rand_canonic(); const float w = rand_canonic(); - CHECK(s3d_scene_sample(scn2, u, v, w, &prim, uv), RES_OK); + CHECK(s3d_session_sample(session, u, v, w, &prim, uv), RES_OK); CHECK(s3d_primitive_get_attrib(&prim, S3D_POSITION, uv, &attr0), RES_OK); CHECK(prim.inst_id, cbox_id); @@ -208,9 +204,9 @@ main(int argc, char** argv) CHECK(prim.prim_id < 10, 1); CHECK(prim.scene_prim_id >= prim.prim_id, 1); CHECK(prim.scene_prim_id < 30, 1); -/* printf("%f %f %f\n", SPLIT3(attr0.value)); */ + printf("%f %f %f\n", SPLIT3(attr0.value)); } - CHECK(s3d_scene_end_session(scn2), RES_OK); + CHECK(s3d_session_ref_put(session), RES_OK); CHECK(s3d_device_ref_put(dev), RES_OK); CHECK(s3d_scene_ref_put(scn), RES_OK);