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:
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);