commit bbdbd6d4ca6182ccd2c9977289e76f997419e6c2
parent 9a7d6c5b62a82cf41de2965f36a00d0cfe1f2c58
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Fri, 12 Jan 2018 14:28:53 +0100
Upd the sample test to use the scene view
Diffstat:
2 files changed, 64 insertions(+), 66 deletions(-)
diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
@@ -131,9 +131,9 @@ if(NOT NO_TEST)
new_test(test_s2d_device)
new_test(test_s2d_primitive)
+ new_test(test_s2d_sample)
new_test(test_s2d_scene)
new_test(test_s2d_scene_view)
-# new_test(test_s2d_sample)
# new_test(test_s2d_session_advanced)
# new_test(test_s2d_shape)
# new_test(test_s2d_trace_ray)
diff --git a/src/test_s2d_sample.c b/src/test_s2d_sample.c
@@ -40,10 +40,11 @@ main(int argc, char** argv)
struct s2d_vertex_data vdata;
struct s2d_device* dev;
struct s2d_scene* scn;
+ struct s2d_scene_view* scnview;
struct s2d_shape* shape;
struct s2d_primitive prim;
float s;
- unsigned box_id;
+ unsigned square_id;
int i;
(void)argc, (void)argv;
@@ -53,64 +54,65 @@ main(int argc, char** argv)
CHK(s2d_scene_create(dev, &scn) == RES_OK);
CHK(s2d_shape_create_line_segments(dev, &shape) == RES_OK);
- CHK(s2d_shape_get_id(shape, &box_id) == RES_OK);
+ CHK(s2d_shape_get_id(shape, &square_id) == RES_OK);
CHK(s2d_scene_attach_shape(scn, shape) == RES_OK);
- CHK(s2d_scene_begin_session(scn, S2D_SAMPLE) == RES_OK);
-
- CHK(s2d_scene_sample(NULL, 1, 1, NULL, NULL) == RES_BAD_ARG);
- CHK(s2d_scene_sample(scn, 1, 1, NULL, NULL) == RES_BAD_ARG);
- CHK(s2d_scene_sample(NULL, 0, 1, NULL, NULL) == RES_BAD_ARG);
- CHK(s2d_scene_sample(scn, 0, 1, NULL, NULL) == RES_BAD_ARG);
- CHK(s2d_scene_sample(NULL, 1, 0, NULL, NULL) == RES_BAD_ARG);
- CHK(s2d_scene_sample(scn, 1, 0, NULL, NULL) == RES_BAD_ARG);
- CHK(s2d_scene_sample(NULL, 0, 0, NULL, NULL) == RES_BAD_ARG);
- CHK(s2d_scene_sample(scn, 0, 0, NULL, NULL) == RES_BAD_ARG);
- CHK(s2d_scene_sample(NULL, 1, 1, &prim, NULL) == RES_BAD_ARG);
- CHK(s2d_scene_sample(scn, 1, 1, &prim, NULL) == RES_BAD_ARG);
- CHK(s2d_scene_sample(NULL, 0, 1, &prim, NULL) == RES_BAD_ARG);
- CHK(s2d_scene_sample(scn, 0, 1, &prim, NULL) == RES_BAD_ARG);
- CHK(s2d_scene_sample(NULL, 1, 0, &prim, NULL) == RES_BAD_ARG);
- CHK(s2d_scene_sample(scn, 1, 0, &prim, NULL) == RES_BAD_ARG);
- CHK(s2d_scene_sample(NULL, 0, 0, &prim, NULL) == RES_BAD_ARG);
- CHK(s2d_scene_sample(scn, 0, 0, &prim, NULL) == RES_BAD_ARG);
- CHK(s2d_scene_sample(NULL, 1, 1, NULL, &s) == RES_BAD_ARG);
- CHK(s2d_scene_sample(scn, 1, 1, NULL, &s) == RES_BAD_ARG);
- CHK(s2d_scene_sample(NULL, 0, 1, NULL,&s) == RES_BAD_ARG);
- CHK(s2d_scene_sample(scn, 0, 1, NULL, &s) == RES_BAD_ARG);
- CHK(s2d_scene_sample(NULL, 1, 0, NULL, &s) == RES_BAD_ARG);
- CHK(s2d_scene_sample(scn, 1, 0, NULL, &s) == RES_BAD_ARG);
- CHK(s2d_scene_sample(NULL, 0, 0, NULL, &s) == RES_BAD_ARG);
- CHK(s2d_scene_sample(scn, 0, 0, NULL, &s) == RES_BAD_ARG);
- CHK(s2d_scene_sample(NULL, 1, 1, &prim, &s) == RES_BAD_ARG);
- CHK(s2d_scene_sample(scn, 1, 1, &prim, &s) == RES_BAD_ARG);
- CHK(s2d_scene_sample(NULL, 0, 1, &prim, &s) == RES_BAD_ARG);
- CHK(s2d_scene_sample(scn, 0, 1, &prim, &s) == RES_BAD_ARG);
- CHK(s2d_scene_sample(NULL, 1, 0, &prim, &s) == RES_BAD_ARG);
- CHK(s2d_scene_sample(scn, 1, 0, &prim, &s) == RES_BAD_ARG);
- CHK(s2d_scene_sample(NULL, 0, 0, &prim, &s) == RES_BAD_ARG);
- CHK(s2d_scene_sample(scn, 0, 0, &prim, &s) == RES_OK);
+ CHK(s2d_scene_view_create(scn, S2D_SAMPLE, &scnview) == RES_OK);
+
+ CHK(s2d_scene_view_sample(NULL, 1, 1, NULL, NULL) == RES_BAD_ARG);
+ CHK(s2d_scene_view_sample(scnview, 1, 1, NULL, NULL) == RES_BAD_ARG);
+ CHK(s2d_scene_view_sample(NULL, 0, 1, NULL, NULL) == RES_BAD_ARG);
+ CHK(s2d_scene_view_sample(scnview, 0, 1, NULL, NULL) == RES_BAD_ARG);
+ CHK(s2d_scene_view_sample(NULL, 1, 0, NULL, NULL) == RES_BAD_ARG);
+ CHK(s2d_scene_view_sample(scnview, 1, 0, NULL, NULL) == RES_BAD_ARG);
+ CHK(s2d_scene_view_sample(NULL, 0, 0, NULL, NULL) == RES_BAD_ARG);
+ CHK(s2d_scene_view_sample(scnview, 0, 0, NULL, NULL) == RES_BAD_ARG);
+ CHK(s2d_scene_view_sample(NULL, 1, 1, &prim, NULL) == RES_BAD_ARG);
+ CHK(s2d_scene_view_sample(scnview, 1, 1, &prim, NULL) == RES_BAD_ARG);
+ CHK(s2d_scene_view_sample(NULL, 0, 1, &prim, NULL) == RES_BAD_ARG);
+ CHK(s2d_scene_view_sample(scnview, 0, 1, &prim, NULL) == RES_BAD_ARG);
+ CHK(s2d_scene_view_sample(NULL, 1, 0, &prim, NULL) == RES_BAD_ARG);
+ CHK(s2d_scene_view_sample(scnview, 1, 0, &prim, NULL) == RES_BAD_ARG);
+ CHK(s2d_scene_view_sample(NULL, 0, 0, &prim, NULL) == RES_BAD_ARG);
+ CHK(s2d_scene_view_sample(scnview, 0, 0, &prim, NULL) == RES_BAD_ARG);
+ CHK(s2d_scene_view_sample(NULL, 1, 1, NULL, &s) == RES_BAD_ARG);
+ CHK(s2d_scene_view_sample(scnview, 1, 1, NULL, &s) == RES_BAD_ARG);
+ CHK(s2d_scene_view_sample(NULL, 0, 1, NULL,&s) == RES_BAD_ARG);
+ CHK(s2d_scene_view_sample(scnview, 0, 1, NULL, &s) == RES_BAD_ARG);
+ CHK(s2d_scene_view_sample(NULL, 1, 0, NULL, &s) == RES_BAD_ARG);
+ CHK(s2d_scene_view_sample(scnview, 1, 0, NULL, &s) == RES_BAD_ARG);
+ CHK(s2d_scene_view_sample(NULL, 0, 0, NULL, &s) == RES_BAD_ARG);
+ CHK(s2d_scene_view_sample(scnview, 0, 0, NULL, &s) == RES_BAD_ARG);
+ CHK(s2d_scene_view_sample(NULL, 1, 1, &prim, &s) == RES_BAD_ARG);
+ CHK(s2d_scene_view_sample(scnview, 1, 1, &prim, &s) == RES_BAD_ARG);
+ CHK(s2d_scene_view_sample(NULL, 0, 1, &prim, &s) == RES_BAD_ARG);
+ CHK(s2d_scene_view_sample(scnview, 0, 1, &prim, &s) == RES_BAD_ARG);
+ CHK(s2d_scene_view_sample(NULL, 1, 0, &prim, &s) == RES_BAD_ARG);
+ CHK(s2d_scene_view_sample(scnview, 1, 0, &prim, &s) == RES_BAD_ARG);
+ CHK(s2d_scene_view_sample(NULL, 0, 0, &prim, &s) == RES_BAD_ARG);
+ CHK(s2d_scene_view_sample(scnview, 0, 0, &prim, &s) == RES_OK);
CHK(S2D_PRIMITIVE_EQ(&prim, &S2D_PRIMITIVE_NULL) == 1);
vdata.usage = S2D_POSITION;
vdata.type = S2D_FLOAT2;
vdata.get = line_segments_get_position;
- CHECK(s2d_line_segments_setup_indexed_vertices
- (shape, box_nsegs, line_segments_get_ids, box_nverts, &vdata, 1,
- (void*)&box_desc), RES_OK);
+ CHK(s2d_line_segments_setup_indexed_vertices
+ (shape, square_nsegs, line_segments_get_ids, square_nverts, &vdata, 1,
+ (void*)&square_desc) == RES_OK);
- CHK(s2d_scene_sample(scn, 0, 0, &prim, &s) == RES_OK);
+ CHK(s2d_scene_view_sample(scnview, 0, 0, &prim, &s) == RES_OK);
CHK(S2D_PRIMITIVE_EQ(&prim, &S2D_PRIMITIVE_NULL) == 1);
- CHK(s2d_scene_end_session(scn) == RES_OK);
- CHK(s2d_scene_begin_session(scn, S2D_SAMPLE) == RES_OK);
- CHK(s2d_scene_sample(scn, 0, 0, &prim, &s) == RES_OK);
+ CHK(s2d_scene_view_ref_put(scnview) == RES_OK);
+
+ CHK(s2d_scene_view_create(scn, S2D_SAMPLE, &scnview) == RES_OK);
+ CHK(s2d_scene_view_sample(scnview, 0, 0, &prim, &s) == RES_OK);
CHK(S2D_PRIMITIVE_EQ(&prim, &S2D_PRIMITIVE_NULL) == 0);
- CHK(prim.prim_id < 4 == 1);
- CHK(prim.geom_id == box_id);
+ CHK(prim.prim_id < 4);
+ CHK(prim.geom_id == square_id);
CHK(s == 0);
- /* Should take effect on the next session */
+ /* Should take effect int the next created scene view */
CHK(s2d_shape_flip_contour(shape) == RES_OK);
FOR_EACH(i, 0, NSAMPS) {
@@ -120,15 +122,15 @@ main(int argc, char** argv)
const float v = rand_canonic();
float N[2], P[2];
- CHK(s2d_scene_sample(scn, u, v, &prim, &s) == RES_OK);
+ CHK(s2d_scene_view_sample(scnview, u, v, &prim, &s) == RES_OK);
CHK(S2D_PRIMITIVE_EQ(&prim, &S2D_PRIMITIVE_NULL) == 0);
- CHK(prim.prim_id < 4 == 1);
- CHK(prim.geom_id == box_id);
+ CHK(prim.prim_id < 4);
+ CHK(prim.geom_id == square_id);
- CHECK(s2d_primitive_get_attrib
- (&prim, S2D_POSITION, s, &attr_position), RES_OK);
- CHECK(s2d_primitive_get_attrib
- (&prim, S2D_GEOMETRY_NORMAL, s, &attr_normal), RES_OK);
+ CHK(s2d_primitive_get_attrib
+ (&prim, S2D_POSITION, s, &attr_position) == RES_OK);
+ CHK(s2d_primitive_get_attrib
+ (&prim, S2D_GEOMETRY_NORMAL, s, &attr_normal) == RES_OK);
f2_normalize(attr_normal.value, attr_normal.value);
@@ -140,27 +142,23 @@ main(int argc, char** argv)
default: CHK(0 == 1); break; /* Invalid primitive id */
}
- CHK(f2_eq_eps(P, attr_position.value, 1.e-6f) == 1);
- CHK(f2_eq_eps(N, attr_normal.value, 1.e-6f) == 1);
+ CHK(f2_eq_eps(P, attr_position.value, 1.e-6f));
+ CHK(f2_eq_eps(N, attr_normal.value, 1.e-6f));
}
- CHK(s2d_scene_end_session(scn) == RES_OK);
-
- CHK(s2d_scene_begin_session(scn, S2D_TRACE) == RES_OK);
- CHK(s2d_scene_sample(scn, 0, 0, &prim, &s) == RES_BAD_OP);
- CHK(s2d_scene_end_session(scn) == RES_OK);
+ CHK(s2d_scene_view_ref_put(scnview) == RES_OK);
- CHK(s2d_scene_begin_session(scn, S2D_SAMPLE) == RES_OK);
+ CHK(s2d_scene_view_create(scn, S2D_SAMPLE, &scnview) == RES_OK);
FOR_EACH(i, 0, NSAMPS) {
struct s2d_attrib attr;
const float u = rand_canonic();
const float v = rand_canonic();
float N[2];
- CHK(s2d_scene_sample(scn, u, v, &prim, &s) == RES_OK);
+ CHK(s2d_scene_view_sample(scnview, u, v, &prim, &s) == RES_OK);
CHK(S2D_PRIMITIVE_EQ(&prim, &S2D_PRIMITIVE_NULL) == 0);
- CHK(prim.prim_id < 4 == 1);
- CHK(prim.geom_id == box_id);
+ CHK(prim.prim_id < 4);
+ CHK(prim.geom_id == square_id);
CHK(s2d_primitive_get_attrib(&prim, S2D_GEOMETRY_NORMAL, s, &attr) == RES_OK);
f2_normalize(attr.value, attr.value);
@@ -176,7 +174,7 @@ main(int argc, char** argv)
CHK(f2_eq_eps(N, attr.value, 1.e-6f) == 1);
}
- CHK(s2d_scene_end_session(scn) == RES_OK);
+ CHK(s2d_scene_view_ref_put(scnview) == RES_OK);
CHK(s2d_device_ref_put(dev) == RES_OK);
CHK(s2d_scene_ref_put(scn) == RES_OK);