commit f39c79abb302934065d907af79d6eb5a77ee5e1e
parent 01d8fbd7fcdfa2537c6a2bfecb74ab3335c1ebb7
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Thu, 21 Feb 2019 14:44:33 +0100
Add and test the sdis_<interface|medium>_get_id function
Diffstat:
6 files changed, 32 insertions(+), 1 deletion(-)
diff --git a/src/sdis.h b/src/sdis.h
@@ -466,6 +466,10 @@ SDIS_API struct sdis_data*
sdis_medium_get_data
(struct sdis_medium* medium);
+SDIS_API unsigned
+sdis_medium_get_id
+ (const struct sdis_medium* medium);
+
/*******************************************************************************
* An interface is the boundary between 2 media.
******************************************************************************/
@@ -495,6 +499,10 @@ SDIS_API struct sdis_data*
sdis_interface_get_data
(struct sdis_interface* interface);
+SDIS_API unsigned
+sdis_interface_get_id
+ (const struct sdis_interface* interface);
+
/*******************************************************************************
* A scene is a collection of primitives. Each primitive is the geometric
* support of the interface between 2 media.
diff --git a/src/sdis_interface.c b/src/sdis_interface.c
@@ -201,6 +201,13 @@ sdis_interface_get_data(struct sdis_interface* interf)
return interf->data;
}
+unsigned
+sdis_interface_get_id(const struct sdis_interface* interf)
+{
+ ASSERT(interf);
+ return interf->id.index;
+}
+
/*******************************************************************************
* Local function
******************************************************************************/
diff --git a/src/sdis_medium.c b/src/sdis_medium.c
@@ -226,9 +226,18 @@ sdis_medium_get_type(const struct sdis_medium* medium)
ASSERT(medium != NULL);
return medium->type;
}
+
struct sdis_data*
sdis_medium_get_data(struct sdis_medium* medium)
{
ASSERT(medium);
return medium->data;
}
+
+unsigned
+sdis_medium_get_id(const struct sdis_medium* medium)
+{
+ ASSERT(medium);
+ return medium->id.index;
+}
+
diff --git a/src/test_sdis_interface.c b/src/test_sdis_interface.c
@@ -25,6 +25,7 @@ main(int argc, char** argv)
struct sdis_medium* fluid = NULL;
struct sdis_medium* solid = NULL;
struct sdis_interface* interf = NULL;
+ struct sdis_interface* interf2 = NULL;
struct sdis_fluid_shader fluid_shader = DUMMY_FLUID_SHADER;
struct sdis_solid_shader solid_shader = DUMMY_SOLID_SHADER;
struct sdis_interface_shader shader = DUMMY_INTERFACE_SHADER;
@@ -112,7 +113,11 @@ main(int argc, char** argv)
OK(sdis_data_create(dev, 4, 16, NULL, &data));
OK(CREATE(dev, solid, fluid, &shader, data, &interf));
+ OK(CREATE(dev, solid, fluid, &shader, NULL, &interf2));
+
CHK(sdis_interface_get_data(interf) == data);
+ CHK(sdis_interface_get_data(interf2) == NULL);
+ CHK(sdis_interface_get_id(interf) != sdis_interface_get_id(interf2));
BA(sdis_interface_get_shader(NULL, &shader2));
BA(sdis_interface_get_shader(interf, NULL));
@@ -130,6 +135,7 @@ main(int argc, char** argv)
CHK(shader.back.specular_fraction == shader2.back.specular_fraction);
OK(sdis_interface_ref_put(interf));
+ OK(sdis_interface_ref_put(interf2));
OK(sdis_data_ref_put(data));
#undef CREATE
diff --git a/src/test_sdis_medium.c b/src/test_sdis_medium.c
@@ -117,6 +117,8 @@ main(int argc, char** argv)
OK(sdis_fluid_create(dev, &fluid_shader, NULL, &fluid));
OK(sdis_solid_create(dev, &solid_shader, NULL, &solid));
+ CHK(sdis_medium_get_id(fluid) != sdis_medium_get_id(solid));
+
BA(sdis_fluid_get_shader(NULL, &fluid_shader2));
BA(sdis_fluid_get_shader(fluid, NULL));
BA(sdis_fluid_get_shader(solid, &fluid_shader2));
diff --git a/src/test_sdis_utils.c b/src/test_sdis_utils.c
@@ -194,4 +194,3 @@ check_green_function(struct sdis_green_function* green)
OK(sdis_estimator_ref_put(estimator));
}
-