star-sf

Set of surface and volume scattering functions
git clone git://git.meso-star.fr/star-sf.git
Log | Files | Refs | README | LICENSE

commit 835db4b5f162750d960e0747d190d64d5b8001ad
parent 232c959b557d644334ca5e85d9246f341e9e6605
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Mon, 11 Dec 2017 11:15:57 +0100

Fix deprecations introduced by RSys 0.6

Diffstat:
Mcmake/CMakeLists.txt | 2+-
Msrc/test_ssf_beckmann_distribution.c | 38+++++++++++++++++++-------------------
Msrc/test_ssf_blinn_distribution.c | 44++++++++++++++++++++++----------------------
Msrc/test_ssf_bsdf.c | 144++++++++++++++++++++++++++++++++++++++++----------------------------------------
Msrc/test_ssf_fresnel.c | 100++++++++++++++++++++++++++++++++++++++++----------------------------------------
Msrc/test_ssf_fresnel_constant.c | 48++++++++++++++++++++++++------------------------
Msrc/test_ssf_fresnel_dielectric_conductor.c | 20++++++++++----------
Msrc/test_ssf_fresnel_dielectric_dielectric.c | 22+++++++++++-----------
Msrc/test_ssf_fresnel_no_op.c | 12++++++------
Msrc/test_ssf_lambertian_reflection.c | 66+++++++++++++++++++++++++++++++++---------------------------------
Msrc/test_ssf_microfacet_distribution.c | 134++++++++++++++++++++++++++++++++++++++++----------------------------------------
Msrc/test_ssf_microfacet_reflection.c | 48++++++++++++++++++++++++------------------------
Msrc/test_ssf_pillbox_distribution.c | 38+++++++++++++++++++-------------------
Msrc/test_ssf_specular_reflection.c | 75+++++++++++++++++++++++++++++++++++++--------------------------------------
Msrc/test_ssf_specular_transmission.c | 74+++++++++++++++++++++++++++++++++++++-------------------------------------
Msrc/test_ssf_thin_specular_dielectric.c | 136++++++++++++++++++++++++++++++++++++++++----------------------------------------
Msrc/test_ssf_utils.h | 4++--
17 files changed, 502 insertions(+), 503 deletions(-)

diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt @@ -25,7 +25,7 @@ set(SSF_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../src) # Dependencies ################################################################################ find_package(RCMake REQUIRED) -find_package(RSys 0.4 REQUIRED) +find_package(RSys 0.6 REQUIRED) find_package(StarSP 0.5 REQUIRED) include_directories(${RSys_INCLUDE_DIR} ${StarSP_INCLUDE_DIR}) diff --git a/src/test_ssf_beckmann_distribution.c b/src/test_ssf_beckmann_distribution.c @@ -33,36 +33,36 @@ main(int argc, char** argv) mem_init_proxy_allocator(&allocator, &mem_default_allocator); - CHECK(ssp_rng_create(&allocator, &ssp_rng_threefry, &rng), RES_OK); + CHK(ssp_rng_create(&allocator, &ssp_rng_threefry, &rng) == RES_OK); - CHECK(ssf_microfacet_distribution_create - (&allocator, &ssf_beckmann_distribution, &distrib), RES_OK); - CHECK(ssf_microfacet_distribution_create - (&allocator, &microfacet_dummy, &dummy), RES_OK); + CHK(ssf_microfacet_distribution_create + (&allocator, &ssf_beckmann_distribution, &distrib) == RES_OK); + CHK(ssf_microfacet_distribution_create + (&allocator, &microfacet_dummy, &dummy) == RES_OK); - CHECK(ssf_beckmann_distribution_setup(NULL, -1), RES_BAD_ARG); - CHECK(ssf_beckmann_distribution_setup(distrib, -1), RES_BAD_ARG); - CHECK(ssf_beckmann_distribution_setup(NULL, 0.5), RES_BAD_ARG); - CHECK(ssf_beckmann_distribution_setup(distrib, 0.5), RES_OK); - CHECK(ssf_beckmann_distribution_setup(dummy, 0.5), RES_BAD_ARG); + CHK(ssf_beckmann_distribution_setup(NULL, -1) == RES_BAD_ARG); + CHK(ssf_beckmann_distribution_setup(distrib, -1) == RES_BAD_ARG); + CHK(ssf_beckmann_distribution_setup(NULL, 0.5) == RES_BAD_ARG); + CHK(ssf_beckmann_distribution_setup(distrib, 0.5) == RES_OK); + CHK(ssf_beckmann_distribution_setup(dummy, 0.5) == RES_BAD_ARG); - CHECK(ssf_beckmann_distribution_setup(distrib, 1), RES_OK); - CHECK(ssf_beckmann_distribution_setup(distrib, nextafter(0, 1)), RES_OK); - CHECK(ssf_beckmann_distribution_setup(distrib, nextafter(1, 2)), RES_BAD_ARG); - CHECK(ssf_beckmann_distribution_setup(distrib, 0), RES_BAD_ARG); + CHK(ssf_beckmann_distribution_setup(distrib, 1) == RES_OK); + CHK(ssf_beckmann_distribution_setup(distrib, nextafter(0, 1)) == RES_OK); + CHK(ssf_beckmann_distribution_setup(distrib, nextafter(1, 2)) == RES_BAD_ARG); + CHK(ssf_beckmann_distribution_setup(distrib, 0) == RES_BAD_ARG); FOR_EACH(itest, 0, NTESTS) { const double roughness = nextafter(ssp_rng_canonical(rng), 2); /*in ]0, 1]*/ - CHECK(ssf_beckmann_distribution_setup(distrib, roughness), RES_OK); + CHK(ssf_beckmann_distribution_setup(distrib, roughness) == RES_OK); check_microfacet_distribution(distrib, rng); } - CHECK(ssf_microfacet_distribution_ref_put(distrib), RES_OK); - CHECK(ssf_microfacet_distribution_ref_put(dummy), RES_OK); - CHECK(ssp_rng_ref_put(rng), RES_OK); + CHK(ssf_microfacet_distribution_ref_put(distrib) == RES_OK); + CHK(ssf_microfacet_distribution_ref_put(dummy) == RES_OK); + CHK(ssp_rng_ref_put(rng) == RES_OK); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); - CHECK(mem_allocated_size(), 0); + CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_ssf_blinn_distribution.c b/src/test_ssf_blinn_distribution.c @@ -30,41 +30,41 @@ main(int argc, char** argv) (void)argc, (void)argv; mem_init_proxy_allocator(&allocator, &mem_default_allocator); - CHECK(ssp_rng_create(&allocator, &ssp_rng_threefry, &rng), RES_OK); + CHK(ssp_rng_create(&allocator, &ssp_rng_threefry, &rng) == RES_OK); - CHECK(ssf_microfacet_distribution_create - (&allocator, &ssf_blinn_distribution, &distrib), RES_OK); - CHECK(ssf_microfacet_distribution_create - (&allocator, &microfacet_dummy, &dummy), RES_OK); + CHK(ssf_microfacet_distribution_create + (&allocator, &ssf_blinn_distribution, &distrib) == RES_OK); + CHK(ssf_microfacet_distribution_create + (&allocator, &microfacet_dummy, &dummy) == RES_OK); - CHECK(ssf_blinn_distribution_setup(NULL, -1), RES_BAD_ARG); - CHECK(ssf_blinn_distribution_setup(distrib, -1), RES_BAD_ARG); - CHECK(ssf_blinn_distribution_setup(NULL, 8), RES_BAD_ARG); - CHECK(ssf_blinn_distribution_setup(distrib, 8), RES_OK); - CHECK(ssf_blinn_distribution_setup(distrib, 0), RES_OK); - CHECK(ssf_blinn_distribution_setup(dummy, 0), RES_BAD_ARG); + CHK(ssf_blinn_distribution_setup(NULL, -1) == RES_BAD_ARG); + CHK(ssf_blinn_distribution_setup(distrib, -1) == RES_BAD_ARG); + CHK(ssf_blinn_distribution_setup(NULL, 8) == RES_BAD_ARG); + CHK(ssf_blinn_distribution_setup(distrib, 8) == RES_OK); + CHK(ssf_blinn_distribution_setup(distrib, 0) == RES_OK); + CHK(ssf_blinn_distribution_setup(dummy, 0) == RES_BAD_ARG); - CHECK(ssf_blinn_distribution_setup - (distrib, SSF_BLINN_DISTRIBUTION_MAX_EXPONENT), RES_OK); - CHECK(ssf_blinn_distribution_setup - (distrib, nextafter(SSF_BLINN_DISTRIBUTION_MAX_EXPONENT, DBL_MAX)), + CHK(ssf_blinn_distribution_setup + (distrib, SSF_BLINN_DISTRIBUTION_MAX_EXPONENT) ==RES_OK); + CHK(ssf_blinn_distribution_setup + (distrib, nextafter(SSF_BLINN_DISTRIBUTION_MAX_EXPONENT, DBL_MAX)) == RES_BAD_ARG); - CHECK(ssf_blinn_distribution_setup(distrib, nextafter(0,-1)), RES_BAD_ARG); - CHECK(ssf_blinn_distribution_setup(distrib, 32.32), RES_OK); + CHK(ssf_blinn_distribution_setup(distrib, nextafter(0,-1)) == RES_BAD_ARG); + CHK(ssf_blinn_distribution_setup(distrib, 32.32) == RES_OK); FOR_EACH(itest, 0, NTESTS) { const double exponent = ssp_rng_uniform_double (rng, 0, SSF_BLINN_DISTRIBUTION_MAX_EXPONENT); - CHECK(ssf_blinn_distribution_setup(distrib, exponent), RES_OK); + CHK(ssf_blinn_distribution_setup(distrib, exponent) == RES_OK); check_microfacet_distribution(distrib, rng); } - CHECK(ssf_microfacet_distribution_ref_put(distrib), RES_OK); - CHECK(ssf_microfacet_distribution_ref_put(dummy), RES_OK); - CHECK(ssp_rng_ref_put(rng), RES_OK); + CHK(ssf_microfacet_distribution_ref_put(distrib) == RES_OK); + CHK(ssf_microfacet_distribution_ref_put(dummy) == RES_OK); + CHK(ssp_rng_ref_put(rng) == RES_OK); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); - CHECK(mem_allocated_size(), 0); + CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_ssf_bsdf.c b/src/test_ssf_bsdf.c @@ -35,9 +35,9 @@ struct ALIGN(64) bsdf { static res_T bsdf_init(struct mem_allocator* allocator, void* bsdf) { - NCHECK(allocator, NULL); - NCHECK(bsdf, NULL); - CHECK(IS_ALIGNED(bsdf, 64), 1); + CHK(allocator != NULL); + CHK(bsdf != NULL); + CHK(IS_ALIGNED(bsdf, 64) == 1); ((struct bsdf*)bsdf)->id = 0xDECAFBAD; bsdf_is_init = 1; return RES_OK; @@ -46,8 +46,8 @@ bsdf_init(struct mem_allocator* allocator, void* bsdf) static void bsdf_release(void* bsdf) { - NCHECK(bsdf, NULL); - CHECK(((struct bsdf*)bsdf)->id, 0xDECAFBAD); + CHK(bsdf != NULL); + CHK(((struct bsdf*)bsdf)->id == 0xDECAFBAD); bsdf_is_init = 0; } @@ -62,10 +62,10 @@ bsdf_sample double* pdf) { struct bsdf* BxDF = bsdf; - NCHECK(BxDF, NULL); - CHECK(BxDF->rng, rng); - CHECK(d3_eq(BxDF->wo, wo), 1); - CHECK(d3_eq(BxDF->N, N), 1); + CHK(BxDF != NULL); + CHK(BxDF->rng == rng); + CHK(d3_eq(BxDF->wo, wo) == 1); + CHK(d3_eq(BxDF->N, N) == 1); d3(wi, 1.0, 2.0, 3.0); *type = 314; *pdf = 4; @@ -80,12 +80,12 @@ bsdf_eval const double wi[3]) { struct bsdf* BxDF = bsdf; - NCHECK(BxDF, NULL); - NCHECK(wi, NULL); - NCHECK(wo, NULL); - CHECK(d3_eq(BxDF->wo, wo), 1); - CHECK(d3_eq(BxDF->N, N), 1); - CHECK(d3_eq(BxDF->wi, wi), 1); + CHK(BxDF != NULL); + CHK(wi != NULL); + CHK(wo != NULL); + CHK(d3_eq(BxDF->wo, wo) == 1); + CHK(d3_eq(BxDF->N, N) == 1); + CHK(d3_eq(BxDF->wi, wi) == 1); return BxDF->value; } @@ -97,12 +97,12 @@ bsdf_pdf const double wi[3]) { struct bsdf* BxDF = bsdf; - NCHECK(BxDF, NULL); - NCHECK(wi, NULL); - NCHECK(wo, NULL); - CHECK(d3_eq(BxDF->wo, wo), 1); - CHECK(d3_eq(BxDF->N, N), 1); - CHECK(d3_eq(BxDF->wi, wi), 1); + CHK(BxDF != NULL); + CHK(wi != NULL); + CHK(wo != NULL); + CHK(d3_eq(BxDF->wo, wo) == 1); + CHK(d3_eq(BxDF->N, N) == 1); + CHK(d3_eq(BxDF->wi, wi) == 1); return BxDF->pdf; } @@ -122,7 +122,7 @@ main(int argc, char** argv) (void)argc, (void)argv; mem_init_proxy_allocator(&allocator, &mem_default_allocator); - CHECK(ssp_rng_create(&allocator, &ssp_rng_threefry, &rng), RES_OK); + CHK(ssp_rng_create(&allocator, &ssp_rng_threefry, &rng) == RES_OK); type.init = bsdf_init; type.release = bsdf_release; @@ -132,55 +132,55 @@ main(int argc, char** argv) type.sizeof_bsdf = sizeof(struct bsdf); type.alignof_bsdf = ALIGNOF(struct bsdf); - CHECK(ssf_bsdf_create(NULL, NULL, NULL), RES_BAD_ARG); - CHECK(ssf_bsdf_create(&allocator, NULL, NULL), RES_BAD_ARG); - CHECK(ssf_bsdf_create(NULL, &type, NULL), RES_BAD_ARG); - CHECK(ssf_bsdf_create(&allocator, &type, NULL), RES_BAD_ARG); - CHECK(ssf_bsdf_create(NULL, NULL, &bsdf), RES_BAD_ARG); - CHECK(ssf_bsdf_create(&allocator, NULL, &bsdf), RES_BAD_ARG); - - CHECK(bsdf_is_init, 0); - CHECK(ssf_bsdf_create(NULL, &type, &bsdf), RES_OK); - CHECK(bsdf_is_init, 1); - - CHECK(ssf_bsdf_ref_get(NULL), RES_BAD_ARG); - CHECK(ssf_bsdf_ref_get(bsdf), RES_OK); - CHECK(ssf_bsdf_ref_put(NULL), RES_BAD_ARG); - CHECK(ssf_bsdf_ref_put(bsdf), RES_OK); - CHECK(bsdf_is_init, 1); - CHECK(ssf_bsdf_ref_put(bsdf), RES_OK); - CHECK(bsdf_is_init, 0); - - CHECK(ssf_bsdf_create(&allocator, &type, &bsdf), RES_OK); - CHECK(bsdf_is_init, 1); - CHECK(ssf_bsdf_ref_put(bsdf), RES_OK); - CHECK(bsdf_is_init, 0); + CHK(ssf_bsdf_create(NULL, NULL, NULL) == RES_BAD_ARG); + CHK(ssf_bsdf_create(&allocator, NULL, NULL) == RES_BAD_ARG); + CHK(ssf_bsdf_create(NULL, &type, NULL) == RES_BAD_ARG); + CHK(ssf_bsdf_create(&allocator, &type, NULL) == RES_BAD_ARG); + CHK(ssf_bsdf_create(NULL, NULL, &bsdf) == RES_BAD_ARG); + CHK(ssf_bsdf_create(&allocator, NULL, &bsdf) == RES_BAD_ARG); + + CHK(bsdf_is_init == 0); + CHK(ssf_bsdf_create(NULL, &type, &bsdf) == RES_OK); + CHK(bsdf_is_init == 1); + + CHK(ssf_bsdf_ref_get(NULL) == RES_BAD_ARG); + CHK(ssf_bsdf_ref_get(bsdf) == RES_OK); + CHK(ssf_bsdf_ref_put(NULL) == RES_BAD_ARG); + CHK(ssf_bsdf_ref_put(bsdf) == RES_OK); + CHK(bsdf_is_init == 1); + CHK(ssf_bsdf_ref_put(bsdf) == RES_OK); + CHK(bsdf_is_init == 0); + + CHK(ssf_bsdf_create(&allocator, &type, &bsdf) == RES_OK); + CHK(bsdf_is_init == 1); + CHK(ssf_bsdf_ref_put(bsdf) == RES_OK); + CHK(bsdf_is_init == 0); type.init = NULL; - CHECK(ssf_bsdf_create(&allocator, &type, &bsdf), RES_BAD_ARG); - CHECK(bsdf_is_init, 0); + CHK(ssf_bsdf_create(&allocator, &type, &bsdf) == RES_BAD_ARG); + CHK(bsdf_is_init == 0); type.init = bsdf_init; type.release = NULL; - CHECK(ssf_bsdf_create(&allocator, &type, &bsdf), RES_BAD_ARG); - CHECK(bsdf_is_init, 0); + CHK(ssf_bsdf_create(&allocator, &type, &bsdf) == RES_BAD_ARG); + CHK(bsdf_is_init == 0); type.release = bsdf_release; type.sample = NULL; - CHECK(ssf_bsdf_create(&allocator, &type, &bsdf), RES_BAD_ARG); - CHECK(bsdf_is_init, 0); + CHK(ssf_bsdf_create(&allocator, &type, &bsdf) == RES_BAD_ARG); + CHK(bsdf_is_init == 0); type.sample = bsdf_sample; type.alignof_bsdf = 3; - CHECK(ssf_bsdf_create(&allocator, &type, &bsdf), RES_BAD_ARG); - CHECK(bsdf_is_init, 0); + CHK(ssf_bsdf_create(&allocator, &type, &bsdf) == RES_BAD_ARG); + CHK(bsdf_is_init == 0); type.alignof_bsdf = ALIGNOF(struct bsdf); - CHECK(ssf_bsdf_create(&allocator, &type, &bsdf), RES_OK); - CHECK(bsdf_is_init, 1); + CHK(ssf_bsdf_create(&allocator, &type, &bsdf) == RES_OK); + CHK(bsdf_is_init == 1); - CHECK(ssf_bsdf_get_data(NULL, NULL), RES_BAD_ARG); - CHECK(ssf_bsdf_get_data(bsdf, NULL), RES_BAD_ARG); - CHECK(ssf_bsdf_get_data(NULL, (void**)&data), RES_BAD_ARG); - CHECK(ssf_bsdf_get_data(bsdf, (void**)&data), RES_OK); + CHK(ssf_bsdf_get_data(NULL, NULL) == RES_BAD_ARG); + CHK(ssf_bsdf_get_data(bsdf, NULL) == RES_BAD_ARG); + CHK(ssf_bsdf_get_data(NULL, (void**)&data) == RES_BAD_ARG); + CHK(ssf_bsdf_get_data(bsdf, (void**)&data) == RES_OK); - CHECK(data->id, 0xDECAFBAD); + CHK(data->id == 0xDECAFBAD); d3_normalize(wo, d3(wo, -1, -1, 0)); d3(N, 0.0, 1.0, 0.0); @@ -189,30 +189,30 @@ main(int argc, char** argv) data->rng = rng; data->reflectivity = 0.1234; - CHECK(ssf_bsdf_sample(bsdf, rng, wo, N, wi, &i, &pdf), 0.1234); - CHECK(ssf_bsdf_sample(bsdf, rng, wo, N, wi, &i, &pdf), 0.1234); - CHECK(i, 314); - CHECK(pdf, 4); + CHK(ssf_bsdf_sample(bsdf, rng, wo, N, wi, &i, &pdf) == 0.1234); + CHK(ssf_bsdf_sample(bsdf, rng, wo, N, wi, &i, &pdf) == 0.1234); + CHK(i == 314); + CHK(pdf == 4); data->reflectivity = 0.314; - CHECK(ssf_bsdf_sample(bsdf, rng, wo, N, wi, &i, &pdf), 0.314); + CHK(ssf_bsdf_sample(bsdf, rng, wo, N, wi, &i, &pdf) == 0.314); d3_normalize(wi, wi); d3_set(data->wi, wi); data->value = 0.4567; - CHECK(ssf_bsdf_eval(bsdf, wo, N, wi), data->value); + CHK(ssf_bsdf_eval(bsdf, wo, N, wi) == data->value); data->pdf = 0.890; - CHECK(ssf_bsdf_pdf(bsdf, wo, N, wi), data->pdf); + CHK(ssf_bsdf_pdf(bsdf, wo, N, wi) == data->pdf); - CHECK(bsdf_is_init, 1); - CHECK(ssf_bsdf_ref_put(bsdf), RES_OK); - CHECK(bsdf_is_init, 0); + CHK(bsdf_is_init == 1); + CHK(ssf_bsdf_ref_put(bsdf) == RES_OK); + CHK(bsdf_is_init == 0); - CHECK(ssp_rng_ref_put(rng), RES_OK); + CHK(ssp_rng_ref_put(rng) == RES_OK); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); - CHECK(mem_allocated_size(), 0); + CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_ssf_fresnel.c b/src/test_ssf_fresnel.c @@ -27,9 +27,9 @@ struct ALIGN(64) fresnel { static res_T fresnel_init(struct mem_allocator* allocator, void* fresnel) { - NCHECK(allocator, NULL); - NCHECK(fresnel, NULL); - CHECK(IS_ALIGNED(fresnel, 64), 1); + CHK(allocator != NULL); + CHK(fresnel != NULL); + CHK(IS_ALIGNED(fresnel, 64) == 1); ((struct fresnel*)fresnel)->id = 0xDECAFBAD; fresnel_is_init = 1; return RES_OK; @@ -38,8 +38,8 @@ fresnel_init(struct mem_allocator* allocator, void* fresnel) static void fresnel_release(void* fresnel) { - NCHECK(fresnel, NULL); - CHECK(((struct fresnel*)fresnel)->id, 0xDECAFBAD); + CHK(fresnel != NULL); + CHK(((struct fresnel*)fresnel)->id == 0xDECAFBAD); fresnel_is_init = 0; } @@ -47,9 +47,9 @@ static double fresnel_eval(void* fresnel, const double cos_theta) { struct fresnel* f = fresnel; - NCHECK(f, NULL); - CHECK(f->id, 0xDECAFBAD); - CHECK(f->cos_theta, cos_theta); + CHK(f != NULL); + CHK(f->id == 0xDECAFBAD); + CHK(f->cos_theta == cos_theta); return f->value; } @@ -70,72 +70,72 @@ main(int argc, char** argv) type.sizeof_fresnel = sizeof(struct fresnel); type.alignof_fresnel = ALIGNOF(struct fresnel); - CHECK(ssf_fresnel_create(NULL, NULL, NULL), RES_BAD_ARG); + CHK(ssf_fresnel_create(NULL, NULL, NULL) == RES_BAD_ARG); - CHECK(ssf_fresnel_create(NULL, NULL, NULL), RES_BAD_ARG); - CHECK(ssf_fresnel_create(&allocator, NULL, NULL), RES_BAD_ARG); - CHECK(ssf_fresnel_create(NULL, &type, NULL), RES_BAD_ARG); - CHECK(ssf_fresnel_create(&allocator, &type, NULL), RES_BAD_ARG); - CHECK(ssf_fresnel_create(NULL, NULL, &fresnel), RES_BAD_ARG); - CHECK(ssf_fresnel_create(&allocator, NULL, &fresnel), RES_BAD_ARG); + CHK(ssf_fresnel_create(NULL, NULL, NULL) == RES_BAD_ARG); + CHK(ssf_fresnel_create(&allocator, NULL, NULL) == RES_BAD_ARG); + CHK(ssf_fresnel_create(NULL, &type, NULL) == RES_BAD_ARG); + CHK(ssf_fresnel_create(&allocator, &type, NULL) == RES_BAD_ARG); + CHK(ssf_fresnel_create(NULL, NULL, &fresnel) == RES_BAD_ARG); + CHK(ssf_fresnel_create(&allocator, NULL, &fresnel) == RES_BAD_ARG); - CHECK(fresnel_is_init, 0); - CHECK(ssf_fresnel_create(NULL, &type, &fresnel), RES_OK); - CHECK(fresnel_is_init, 1); + CHK(fresnel_is_init == 0); + CHK(ssf_fresnel_create(NULL, &type, &fresnel) == RES_OK); + CHK(fresnel_is_init == 1); - CHECK(ssf_fresnel_ref_get(NULL), RES_BAD_ARG); - CHECK(ssf_fresnel_ref_get(fresnel), RES_OK); - CHECK(ssf_fresnel_ref_put(NULL), RES_BAD_ARG); - CHECK(ssf_fresnel_ref_put(fresnel), RES_OK); - CHECK(fresnel_is_init, 1); - CHECK(ssf_fresnel_ref_put(fresnel), RES_OK); - CHECK(fresnel_is_init, 0); + CHK(ssf_fresnel_ref_get(NULL) == RES_BAD_ARG); + CHK(ssf_fresnel_ref_get(fresnel) == RES_OK); + CHK(ssf_fresnel_ref_put(NULL) == RES_BAD_ARG); + CHK(ssf_fresnel_ref_put(fresnel) == RES_OK); + CHK(fresnel_is_init == 1); + CHK(ssf_fresnel_ref_put(fresnel) == RES_OK); + CHK(fresnel_is_init == 0); - CHECK(ssf_fresnel_create(&allocator, &type, &fresnel), RES_OK); - CHECK(fresnel_is_init, 1); - CHECK(ssf_fresnel_ref_put(fresnel), RES_OK); - CHECK(fresnel_is_init, 0); + CHK(ssf_fresnel_create(&allocator, &type, &fresnel) == RES_OK); + CHK(fresnel_is_init == 1); + CHK(ssf_fresnel_ref_put(fresnel) == RES_OK); + CHK(fresnel_is_init == 0); type.init = NULL; - CHECK(ssf_fresnel_create(&allocator, &type, &fresnel), RES_BAD_ARG); - CHECK(fresnel_is_init, 0); + CHK(ssf_fresnel_create(&allocator, &type, &fresnel) == RES_BAD_ARG); + CHK(fresnel_is_init == 0); type.init = fresnel_init; type.release = NULL; - CHECK(ssf_fresnel_create(&allocator, &type, &fresnel), RES_BAD_ARG); - CHECK(fresnel_is_init, 0); + CHK(ssf_fresnel_create(&allocator, &type, &fresnel) == RES_BAD_ARG); + CHK(fresnel_is_init == 0); type.release = fresnel_release; type.eval = NULL; - CHECK(ssf_fresnel_create(&allocator, &type, &fresnel), RES_BAD_ARG); - CHECK(fresnel_is_init, 0); + CHK(ssf_fresnel_create(&allocator, &type, &fresnel) == RES_BAD_ARG); + CHK(fresnel_is_init == 0); type.eval = fresnel_eval; type.alignof_fresnel = 0; - CHECK(ssf_fresnel_create(&allocator, &type, &fresnel), RES_BAD_ARG); - CHECK(fresnel_is_init, 0); + CHK(ssf_fresnel_create(&allocator, &type, &fresnel) == RES_BAD_ARG); + CHK(fresnel_is_init == 0); type.alignof_fresnel = ALIGNOF(struct fresnel); - CHECK(ssf_fresnel_create(&allocator, &type, &fresnel), RES_OK); - CHECK(fresnel_is_init, 1); + CHK(ssf_fresnel_create(&allocator, &type, &fresnel) == RES_OK); + CHK(fresnel_is_init == 1); - CHECK(ssf_fresnel_get_data(NULL, NULL), RES_BAD_ARG); - CHECK(ssf_fresnel_get_data(fresnel, NULL), RES_BAD_ARG); - CHECK(ssf_fresnel_get_data(NULL, (void**)&data), RES_BAD_ARG); - CHECK(ssf_fresnel_get_data(fresnel, (void**)&data), RES_OK); + CHK(ssf_fresnel_get_data(NULL, NULL) == RES_BAD_ARG); + CHK(ssf_fresnel_get_data(fresnel, NULL) == RES_BAD_ARG); + CHK(ssf_fresnel_get_data(NULL, (void**)&data) == RES_BAD_ARG); + CHK(ssf_fresnel_get_data(fresnel, (void**)&data) == RES_OK); - CHECK(data->id, 0xDECAFBAD); + CHK(data->id == 0xDECAFBAD); data->cos_theta = 0.1; data->value = 1.234; - CHECK(ssf_fresnel_eval(fresnel, 0.1), data->value); + CHK(ssf_fresnel_eval(fresnel, 0.1) == data->value); data->cos_theta = 1.234; data->value = 8.1; - CHECK(ssf_fresnel_eval(fresnel, 1.234), data->value); + CHK(ssf_fresnel_eval(fresnel, 1.234) == data->value); - CHECK(fresnel_is_init, 1); - CHECK(ssf_fresnel_ref_put(fresnel), RES_OK); - CHECK(fresnel_is_init, 0); + CHK(fresnel_is_init == 1); + CHK(ssf_fresnel_ref_put(fresnel) == RES_OK); + CHK(fresnel_is_init == 0); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); - CHECK(mem_allocated_size(), 0); + CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_ssf_fresnel_constant.c b/src/test_ssf_fresnel_constant.c @@ -27,32 +27,32 @@ main(int argc, char** argv) (void)argc, (void)argv; mem_init_proxy_allocator(&allocator, &mem_default_allocator); - CHECK(ssf_fresnel_create(&allocator, &ssf_fresnel_constant, &fresnel), RES_OK); - CHECK(ssf_fresnel_create(&allocator, &fresnel_dummy, &dummy), RES_OK); - - CHECK(ssf_fresnel_constant_setup(NULL, -1), RES_BAD_ARG); - CHECK(ssf_fresnel_constant_setup(fresnel, -1), RES_BAD_ARG); - CHECK(ssf_fresnel_constant_setup(NULL, 0.5), RES_BAD_ARG); - CHECK(ssf_fresnel_constant_setup(fresnel, 0), RES_OK); - CHECK(ssf_fresnel_constant_setup(fresnel, 1), RES_OK); - CHECK(ssf_fresnel_constant_setup(fresnel, 0.5), RES_OK); - CHECK(ssf_fresnel_constant_setup(fresnel, nextafter(0, -1)), RES_BAD_ARG); - CHECK(ssf_fresnel_constant_setup(fresnel, nextafter(1, 2)), RES_BAD_ARG); - CHECK(ssf_fresnel_constant_setup(dummy, 0.5), RES_BAD_ARG); - - CHECK(ssf_fresnel_eval(fresnel, 0), 0.5); - CHECK(ssf_fresnel_eval(fresnel, 1), 0.5); - CHECK(ssf_fresnel_eval(fresnel, 0.1234), 0.5); - CHECK(ssf_fresnel_constant_setup(fresnel, 0.123), RES_OK); - CHECK(ssf_fresnel_eval(fresnel, 0), 0.123); - CHECK(ssf_fresnel_eval(fresnel, 1), 0.123); - CHECK(ssf_fresnel_eval(fresnel, 0.25), 0.123); - - CHECK(ssf_fresnel_ref_put(fresnel), RES_OK); - CHECK(ssf_fresnel_ref_put(dummy), RES_OK); + CHK(ssf_fresnel_create(&allocator, &ssf_fresnel_constant, &fresnel) == RES_OK); + CHK(ssf_fresnel_create(&allocator, &fresnel_dummy, &dummy) == RES_OK); + + CHK(ssf_fresnel_constant_setup(NULL, -1) == RES_BAD_ARG); + CHK(ssf_fresnel_constant_setup(fresnel, -1) == RES_BAD_ARG); + CHK(ssf_fresnel_constant_setup(NULL, 0.5) == RES_BAD_ARG); + CHK(ssf_fresnel_constant_setup(fresnel, 0) == RES_OK); + CHK(ssf_fresnel_constant_setup(fresnel, 1) == RES_OK); + CHK(ssf_fresnel_constant_setup(fresnel, 0.5) == RES_OK); + CHK(ssf_fresnel_constant_setup(fresnel, nextafter(0, -1)) == RES_BAD_ARG); + CHK(ssf_fresnel_constant_setup(fresnel, nextafter(1, 2)) == RES_BAD_ARG); + CHK(ssf_fresnel_constant_setup(dummy, 0.5) == RES_BAD_ARG); + + CHK(ssf_fresnel_eval(fresnel, 0) == 0.5); + CHK(ssf_fresnel_eval(fresnel, 1) == 0.5); + CHK(ssf_fresnel_eval(fresnel, 0.1234) == 0.5); + CHK(ssf_fresnel_constant_setup(fresnel, 0.123) == RES_OK); + CHK(ssf_fresnel_eval(fresnel, 0) == 0.123); + CHK(ssf_fresnel_eval(fresnel, 1) == 0.123); + CHK(ssf_fresnel_eval(fresnel, 0.25) == 0.123); + + CHK(ssf_fresnel_ref_put(fresnel) == RES_OK); + CHK(ssf_fresnel_ref_put(dummy) == RES_OK); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); - CHECK(mem_allocated_size(), 0); + CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_ssf_fresnel_dielectric_conductor.c b/src/test_ssf_fresnel_dielectric_conductor.c @@ -27,23 +27,23 @@ main(int argc, char** argv) (void)argc, (void)argv; mem_init_proxy_allocator(&allocator, &mem_default_allocator); - CHECK(ssf_fresnel_create(&allocator, &fresnel_dummy, &dummy), RES_OK); - CHECK(ssf_fresnel_create - (&allocator, &ssf_fresnel_dielectric_conductor, &fresnel), RES_OK); + CHK(ssf_fresnel_create(&allocator, &fresnel_dummy, &dummy) == RES_OK); + CHK(ssf_fresnel_create + (&allocator, &ssf_fresnel_dielectric_conductor, &fresnel) == RES_OK); - CHECK(ssf_fresnel_dielectric_conductor_setup(NULL, 1.0, 1.0, 1.0), RES_BAD_ARG); - CHECK(ssf_fresnel_dielectric_conductor_setup(fresnel, 1.0, 1.0, 1.0), RES_OK); - CHECK(ssf_fresnel_dielectric_conductor_setup(dummy, 1.0, 1.0, 1.0), RES_BAD_ARG); + CHK(ssf_fresnel_dielectric_conductor_setup(NULL, 1.0, 1.0, 1.0) == RES_BAD_ARG); + CHK(ssf_fresnel_dielectric_conductor_setup(fresnel, 1.0, 1.0, 1.0) == RES_OK); + CHK(ssf_fresnel_dielectric_conductor_setup(dummy, 1.0, 1.0, 1.0) == RES_BAD_ARG); /* TODO eval a dielectric->conductor Fresnel term on a reference */ - /*CHECK(ssf_fresnel_eval(fresnel, 1), ref);*/ + /*CHK(ssf_fresnel_eval(fresnel, 1) == ref);*/ - CHECK(ssf_fresnel_ref_put(fresnel), RES_OK); - CHECK(ssf_fresnel_ref_put(dummy), RES_OK); + CHK(ssf_fresnel_ref_put(fresnel) == RES_OK); + CHK(ssf_fresnel_ref_put(dummy) == RES_OK); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); - CHECK(mem_allocated_size(), 0); + CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_ssf_fresnel_dielectric_dielectric.c b/src/test_ssf_fresnel_dielectric_dielectric.c @@ -31,17 +31,17 @@ main(int argc, char** argv) (void)argc, (void)argv; mem_init_proxy_allocator(&allocator, &mem_default_allocator); - CHECK(ssf_fresnel_create(&allocator, &fresnel_dummy, &dummy), RES_OK); - CHECK(ssf_fresnel_create - (&allocator, &ssf_fresnel_dielectric_dielectric, &fresnel), RES_OK); + CHK(ssf_fresnel_create(&allocator, &fresnel_dummy, &dummy) == RES_OK); + CHK(ssf_fresnel_create + (&allocator, &ssf_fresnel_dielectric_dielectric, &fresnel) == RES_OK); - CHECK(ssf_fresnel_dielectric_dielectric_setup(NULL, -1.0, -1.0), RES_BAD_ARG); - CHECK(ssf_fresnel_dielectric_dielectric_setup(fresnel, -1.0, -1.0), RES_OK); - CHECK(ssf_fresnel_dielectric_dielectric_setup(dummy,-1.0, -1.0), RES_BAD_ARG); - CHECK(ssf_fresnel_dielectric_dielectric_setup(fresnel,1.000277, 1.5), RES_OK); + CHK(ssf_fresnel_dielectric_dielectric_setup(NULL, -1.0, -1.0) == RES_BAD_ARG); + CHK(ssf_fresnel_dielectric_dielectric_setup(fresnel, -1.0, -1.0) == RES_OK); + CHK(ssf_fresnel_dielectric_dielectric_setup(dummy,-1.0, -1.0) == RES_BAD_ARG); + CHK(ssf_fresnel_dielectric_dielectric_setup(fresnel,1.000277, 1.5) == RES_OK); val = ssf_fresnel_eval(fresnel, 1); - CHECK(eq_eps(val, 0.04, 1.e-4), 1); + CHK(eq_eps(val, 0.04, 1.e-4) == 1); FOR_EACH(i, 0, nsteps+1) { const double theta_i = MMIN((double)i*step, PI/2); @@ -50,11 +50,11 @@ main(int argc, char** argv) printf("%g %g\n", theta_i, val); } - CHECK(ssf_fresnel_ref_put(fresnel), RES_OK); - CHECK(ssf_fresnel_ref_put(dummy), RES_OK); + CHK(ssf_fresnel_ref_put(fresnel) == RES_OK); + CHK(ssf_fresnel_ref_put(dummy) == RES_OK); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); - CHECK(mem_allocated_size(), 0); + CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_ssf_fresnel_no_op.c b/src/test_ssf_fresnel_no_op.c @@ -24,16 +24,16 @@ main(int argc, char** argv) (void)argc, (void)argv; mem_init_proxy_allocator(&allocator, &mem_default_allocator); - CHECK(ssf_fresnel_create(&allocator, &ssf_fresnel_no_op, &fresnel), RES_OK); + CHK(ssf_fresnel_create(&allocator, &ssf_fresnel_no_op, &fresnel) == RES_OK); - CHECK(ssf_fresnel_eval(fresnel, 0), 1.0); - CHECK(ssf_fresnel_eval(fresnel, 1), 1.0); - CHECK(ssf_fresnel_eval(fresnel, 0.48), 1.0); + CHK(ssf_fresnel_eval(fresnel, 0) == 1.0); + CHK(ssf_fresnel_eval(fresnel, 1) == 1.0); + CHK(ssf_fresnel_eval(fresnel, 0.48) == 1.0); - CHECK(ssf_fresnel_ref_put(fresnel), RES_OK); + CHK(ssf_fresnel_ref_put(fresnel) == RES_OK); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); - CHECK(mem_allocated_size(), 0); + CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_ssf_lambertian_reflection.c b/src/test_ssf_lambertian_reflection.c @@ -40,31 +40,31 @@ main(int argc, char** argv) (void)argc, (void)argv; mem_init_proxy_allocator(&allocator, &mem_default_allocator); - CHECK(ssp_rng_create(&allocator, &ssp_rng_threefry, &rng), RES_OK); + CHK(ssp_rng_create(&allocator, &ssp_rng_threefry, &rng) == RES_OK); - CHECK(ssf_bsdf_create(&allocator, &ssf_lambertian_reflection, &brdf), RES_OK); - CHECK(ssf_bsdf_create(&allocator, &bsdf_dummy, &dummy), RES_OK); + CHK(ssf_bsdf_create(&allocator, &ssf_lambertian_reflection, &brdf) == RES_OK); + CHK(ssf_bsdf_create(&allocator, &bsdf_dummy, &dummy) == RES_OK); - CHECK(ssf_lambertian_reflection_setup(NULL, -1.0), RES_BAD_ARG); - CHECK(ssf_lambertian_reflection_setup(brdf, -1.0), RES_BAD_ARG); - CHECK(ssf_lambertian_reflection_setup(NULL, 1.0), RES_BAD_ARG); - CHECK(ssf_lambertian_reflection_setup(brdf, 1.0), RES_OK); - CHECK(ssf_lambertian_reflection_setup(brdf, 0.0), RES_OK); - CHECK(ssf_lambertian_reflection_setup(brdf, 1.1), RES_BAD_ARG); - CHECK(ssf_lambertian_reflection_setup(dummy, 0.0), RES_BAD_ARG); + CHK(ssf_lambertian_reflection_setup(NULL, -1.0) == RES_BAD_ARG); + CHK(ssf_lambertian_reflection_setup(brdf, -1.0) == RES_BAD_ARG); + CHK(ssf_lambertian_reflection_setup(NULL, 1.0) == RES_BAD_ARG); + CHK(ssf_lambertian_reflection_setup(brdf, 1.0) == RES_OK); + CHK(ssf_lambertian_reflection_setup(brdf, 0.0) == RES_OK); + CHK(ssf_lambertian_reflection_setup(brdf, 1.1) == RES_BAD_ARG); + CHK(ssf_lambertian_reflection_setup(dummy, 0.0) == RES_BAD_ARG); d3(N, 0.0, 0.0, 1.0); d3_normalize(wo, d3(wo, 1.0, 0.0, 1.0)); R = ssf_bsdf_sample(brdf, rng, wo, N, wi, &type, &pdf); - CHECK(eq_eps(wi[2]/PI, pdf, 1.e-6), 1); - CHECK(R, 0); - CHECK(type, SSF_DIFFUSE|SSF_REFLECTION); + CHK(eq_eps(wi[2]/PI, pdf, 1.e-6) == 1); + CHK(R == 0); + CHK(type == (SSF_DIFFUSE|SSF_REFLECTION)); - CHECK(ssf_lambertian_reflection_setup(brdf, 0.7), RES_OK); + CHK(ssf_lambertian_reflection_setup(brdf, 0.7) == RES_OK); R = ssf_bsdf_sample(brdf, rng, wo, N, wi, &type, &pdf); - CHECK(eq_eps(R, 0.7, 1.e-6), 1); - CHECK(eq_eps(pdf, d3_dot(wi, N)/PI, 1.e-6), 1); - CHECK(type, SSF_DIFFUSE|SSF_REFLECTION); + CHK(eq_eps(R, 0.7, 1.e-6) == 1); + CHK(eq_eps(pdf, d3_dot(wi, N)/PI, 1.e-6) == 1); + CHK(type == (SSF_DIFFUSE|SSF_REFLECTION)); d3_normalize(wo, d3(wo, 1.0, 0.0, 1.0)); N[0] = ssp_rng_uniform_double(rng, -1, 1); @@ -79,16 +79,16 @@ main(int argc, char** argv) double cos_wi_N; R = ssf_bsdf_sample(brdf, rng, wo, N, wi, &type, &pdf) / PI; cos_wi_N = d3_dot(wi, N); - CHECK(eq_eps(R, 0.7/PI, 1.e-6), 1); - CHECK(eq_eps(cos_wi_N/PI, pdf, 1.e-6), 1); - CHECK(type, SSF_DIFFUSE|SSF_REFLECTION); + CHK(eq_eps(R, 0.7/PI, 1.e-6) == 1); + CHK(eq_eps(cos_wi_N/PI, pdf, 1.e-6) == 1); + CHK(type == (SSF_DIFFUSE|SSF_REFLECTION)); sum += cos_wi_N; sum_sqr += cos_wi_N * cos_wi_N; } E = sum/(double)NSTEPS; V = sum_sqr/(double)NSTEPS - E*E; SE = sqrt(V/(double)NSTEPS); - CHECK(eq_eps(E, 2.0/3.0, SE), 1); + CHK(eq_eps(E, 2.0/3.0, SE) == 1); sum = sum_sqr = 0; FOR_EACH(i, 0, NSTEPS) { @@ -97,9 +97,9 @@ main(int argc, char** argv) R = ssf_bsdf_sample(brdf, rng, wo, N, wi, &type, &pdf)/PI; cos_wi_N = d3_dot(wi, N); - CHECK(eq_eps(R, 0.7/PI, 1.e-6), 1); - CHECK(eq_eps(cos_wi_N/PI, pdf, 1.e-6), 1); - CHECK(type, SSF_DIFFUSE|SSF_REFLECTION); + CHK(eq_eps(R, 0.7/PI, 1.e-6) == 1); + CHK(eq_eps(cos_wi_N/PI, pdf, 1.e-6) == 1); + CHK(type == (SSF_DIFFUSE|SSF_REFLECTION)); w = cos_wi_N*cos_wi_N; sum += w; sum_sqr += w*w; @@ -108,25 +108,25 @@ main(int argc, char** argv) E = sum/(double)NSTEPS; V = sum_sqr/(double)NSTEPS - E*E; SE = sqrt(V/(double)NSTEPS); - CHECK(eq_eps(E, 2.0/4.0, 2.0*SE), 1); - CHECK(eq_eps(SE, 1.0/sqrt((double)NSTEPS) * sqrt(1.0/3.0 - 1.0/4.0), 1.e-6), 1); + CHK(eq_eps(E, 2.0/4.0, 2.0*SE) == 1); + CHK(eq_eps(SE, 1.0/sqrt((double)NSTEPS) * sqrt(1.0/3.0 - 1.0/4.0), 1.e-6) == 1); FOR_EACH(i, 0, NSTEPS) { double val; R = ssf_bsdf_sample(brdf, rng, wo, N, wi, &type, &pdf); - CHECK(eq_eps(R, 0.7, 1.e-6), 1); + CHK(eq_eps(R, 0.7, 1.e-6) == 1); val = ssf_bsdf_eval(brdf, wo, N, wi) * d3_dot(wi, N); - CHECK(eq_eps(val, R * pdf, 1.e-6), 1); - CHECK(type, SSF_DIFFUSE|SSF_REFLECTION); + CHK(eq_eps(val, R * pdf, 1.e-6) == 1); + CHK(type == (SSF_DIFFUSE|SSF_REFLECTION)); } - CHECK(ssf_bsdf_ref_put(brdf), RES_OK); - CHECK(ssf_bsdf_ref_put(dummy), RES_OK); - CHECK(ssp_rng_ref_put(rng), RES_OK); + CHK(ssf_bsdf_ref_put(brdf) == RES_OK); + CHK(ssf_bsdf_ref_put(dummy) == RES_OK); + CHK(ssp_rng_ref_put(rng) == RES_OK); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); - CHECK(mem_allocated_size(), 0); + CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_ssf_microfacet_distribution.c b/src/test_ssf_microfacet_distribution.c @@ -32,9 +32,9 @@ struct ALIGN(64) ufacet { static res_T ufacet_init(struct mem_allocator* allocator, void* distrib) { - NCHECK(allocator, NULL); - NCHECK(distrib, NULL); - CHECK(IS_ALIGNED(distrib, 64), 1); + CHK(allocator != NULL); + CHK(distrib != NULL); + CHK(IS_ALIGNED(distrib, 64) == 1); ((struct ufacet*)distrib)->id = 0xDECAFBAD; ufacet_is_init = 1; return RES_OK; @@ -43,8 +43,8 @@ ufacet_init(struct mem_allocator* allocator, void* distrib) static void ufacet_release(void* distrib) { - NCHECK(distrib, NULL); - CHECK(((struct ufacet*)distrib)->id, 0xDECAFBAD); + CHK(distrib != NULL); + CHK(((struct ufacet*)distrib)->id == 0xDECAFBAD); ufacet_is_init = 0; } @@ -57,12 +57,12 @@ ufacet_sample double* pdf) { struct ufacet* ufacet = distrib; - NCHECK(ufacet, NULL); - NCHECK(N, NULL); - NCHECK(wh, NULL); - NCHECK(pdf, NULL); - CHECK(ufacet->rng, rng); - CHECK(d3_eq(ufacet->N, N), 1); + CHK(ufacet != NULL); + CHK(N != NULL); + CHK(wh != NULL); + CHK(pdf != NULL); + CHK(ufacet->rng == rng); + CHK(d3_eq(ufacet->N, N) == 1); d3_normalize(wh, d3(wh, 1.0, 2.0, 3.0)); *pdf = ufacet->pdf; } @@ -74,11 +74,11 @@ ufacet_eval const double wh[3]) { struct ufacet* ufacet = distrib; - NCHECK(distrib, NULL); - NCHECK(N, NULL); - NCHECK(wh, NULL); - CHECK(d3_eq(ufacet->wh, wh), 1); - CHECK(d3_eq(ufacet->N, N), 1); + CHK(distrib != NULL); + CHK(N != NULL); + CHK(wh != NULL); + CHK(d3_eq(ufacet->wh, wh) == 1); + CHK(d3_eq(ufacet->N, N) == 1); return ufacet->value; } @@ -89,10 +89,10 @@ ufacet_pdf const double wh[3]) { struct ufacet* ufacet = distrib; - NCHECK(N, NULL); - NCHECK(wh, NULL); - CHECK(d3_eq(ufacet->wh, wh), 1); - CHECK(d3_eq(ufacet->N, N), 1); + CHK(N != NULL); + CHK(wh != NULL); + CHK(d3_eq(ufacet->wh, wh) == 1); + CHK(d3_eq(ufacet->N, N) == 1); return ufacet->pdf; } @@ -109,7 +109,7 @@ main(int argc, char** argv) (void)argc, (void)argv; mem_init_proxy_allocator(&allocator, &mem_default_allocator); - CHECK(ssp_rng_create(&allocator, &ssp_rng_threefry, &rng), RES_OK); + CHK(ssp_rng_create(&allocator, &ssp_rng_threefry, &rng) == RES_OK); type.init = ufacet_init; type.release = ufacet_release; @@ -120,57 +120,57 @@ main(int argc, char** argv) type.alignof_distribution = ALIGNOF(struct ufacet); #define CREATE ssf_microfacet_distribution_create - CHECK(CREATE(NULL, NULL, NULL), RES_BAD_ARG); - CHECK(CREATE(&allocator, NULL, NULL), RES_BAD_ARG); - CHECK(CREATE(NULL, &type, NULL), RES_BAD_ARG); - CHECK(CREATE(&allocator, &type, NULL), RES_BAD_ARG); - CHECK(CREATE(NULL, NULL, &distrib), RES_BAD_ARG); - CHECK(CREATE(&allocator, NULL, &distrib), RES_BAD_ARG); - - CHECK(ufacet_is_init, 0); - CHECK(CREATE(NULL, &type, &distrib), RES_OK); - CHECK(ufacet_is_init, 1); - - CHECK(ssf_microfacet_distribution_ref_get(NULL), RES_BAD_ARG); - CHECK(ssf_microfacet_distribution_ref_get(distrib), RES_OK); - CHECK(ssf_microfacet_distribution_ref_put(NULL), RES_BAD_ARG); - CHECK(ssf_microfacet_distribution_ref_put(distrib), RES_OK); - CHECK(ufacet_is_init, 1); - CHECK(ssf_microfacet_distribution_ref_put(distrib), RES_OK); - CHECK(ufacet_is_init, 0); - - CHECK(CREATE(&allocator, &type, &distrib), RES_OK); - CHECK(ufacet_is_init, 1); - CHECK(ssf_microfacet_distribution_ref_put(distrib), RES_OK); - CHECK(ufacet_is_init, 0); + CHK(CREATE(NULL, NULL, NULL) == RES_BAD_ARG); + CHK(CREATE(&allocator, NULL, NULL) == RES_BAD_ARG); + CHK(CREATE(NULL, &type, NULL) == RES_BAD_ARG); + CHK(CREATE(&allocator, &type, NULL) == RES_BAD_ARG); + CHK(CREATE(NULL, NULL, &distrib) == RES_BAD_ARG); + CHK(CREATE(&allocator, NULL, &distrib) == RES_BAD_ARG); + + CHK(ufacet_is_init == 0); + CHK(CREATE(NULL, &type, &distrib) == RES_OK); + CHK(ufacet_is_init == 1); + + CHK(ssf_microfacet_distribution_ref_get(NULL) == RES_BAD_ARG); + CHK(ssf_microfacet_distribution_ref_get(distrib) == RES_OK); + CHK(ssf_microfacet_distribution_ref_put(NULL) == RES_BAD_ARG); + CHK(ssf_microfacet_distribution_ref_put(distrib) == RES_OK); + CHK(ufacet_is_init == 1); + CHK(ssf_microfacet_distribution_ref_put(distrib) == RES_OK); + CHK(ufacet_is_init == 0); + + CHK(CREATE(&allocator, &type, &distrib) == RES_OK); + CHK(ufacet_is_init == 1); + CHK(ssf_microfacet_distribution_ref_put(distrib) == RES_OK); + CHK(ufacet_is_init == 0); type.init = NULL; - CHECK(CREATE(&allocator, &type, &distrib), RES_BAD_ARG); + CHK(CREATE(&allocator, &type, &distrib) == RES_BAD_ARG); type.init = ufacet_init; type.release = NULL; - CHECK(CREATE(&allocator, &type, &distrib), RES_BAD_ARG); + CHK(CREATE(&allocator, &type, &distrib) == RES_BAD_ARG); type.release = ufacet_release; type.sample = NULL; - CHECK(CREATE(&allocator, &type, &distrib), RES_BAD_ARG); + CHK(CREATE(&allocator, &type, &distrib) == RES_BAD_ARG); type.sample = ufacet_sample; type.eval = NULL; - CHECK(CREATE(&allocator, &type, &distrib), RES_BAD_ARG); + CHK(CREATE(&allocator, &type, &distrib) == RES_BAD_ARG); type.eval = ufacet_eval; type.pdf = NULL; - CHECK(CREATE(&allocator, &type, &distrib), RES_BAD_ARG); + CHK(CREATE(&allocator, &type, &distrib) == RES_BAD_ARG); type.pdf = ufacet_pdf; type.alignof_distribution = 0; - CHECK(CREATE(&allocator, &type, &distrib), RES_BAD_ARG); + CHK(CREATE(&allocator, &type, &distrib) == RES_BAD_ARG); type.alignof_distribution = ALIGNOF(struct ufacet); - CHECK(CREATE(&allocator, &type, &distrib), RES_OK); - CHECK(ufacet_is_init, 1); + CHK(CREATE(&allocator, &type, &distrib) == RES_OK); + CHK(ufacet_is_init == 1); #undef CREATE - CHECK(ssf_microfacet_distribution_get_data(NULL, NULL), RES_BAD_ARG); - CHECK(ssf_microfacet_distribution_get_data(distrib, NULL), RES_BAD_ARG); - CHECK(ssf_microfacet_distribution_get_data(NULL, (void**)&data), RES_BAD_ARG); - CHECK(ssf_microfacet_distribution_get_data(distrib, (void**)&data), RES_OK); - CHECK(data->id, 0xDECAFBAD); + CHK(ssf_microfacet_distribution_get_data(NULL, NULL) == RES_BAD_ARG); + CHK(ssf_microfacet_distribution_get_data(distrib, NULL) == RES_BAD_ARG); + CHK(ssf_microfacet_distribution_get_data(NULL, (void**)&data) == RES_BAD_ARG); + CHK(ssf_microfacet_distribution_get_data(distrib, (void**)&data) == RES_OK); + CHK(data->id == 0xDECAFBAD); d3(N, 0.0, 1.0, 0.0); d3_set(data->N, N); @@ -180,22 +180,22 @@ main(int argc, char** argv) data->value = 0.43; ssf_microfacet_distribution_sample(distrib, rng, N, wh, &pdf); - CHECK(d3_eq(wh, data->wh), 1); - CHECK(pdf, data->pdf); + CHK(d3_eq(wh, data->wh) == 1); + CHK(pdf == data->pdf); ssf_microfacet_distribution_sample(distrib, rng, N, wh, &pdf); - CHECK(d3_eq(wh, data->wh), 1); - CHECK(pdf, data->pdf); + CHK(d3_eq(wh, data->wh) == 1); + CHK(pdf == data->pdf); - CHECK(ssf_microfacet_distribution_eval(distrib, N, wh), data->value); - CHECK(ssf_microfacet_distribution_pdf(distrib, N, wh), data->pdf); + CHK(ssf_microfacet_distribution_eval(distrib, N, wh) == data->value); + CHK(ssf_microfacet_distribution_pdf(distrib, N, wh) == data->pdf); - CHECK(ssf_microfacet_distribution_ref_put(distrib), RES_OK); - CHECK(ufacet_is_init, 0); + CHK(ssf_microfacet_distribution_ref_put(distrib) == RES_OK); + CHK(ufacet_is_init == 0); - CHECK(ssp_rng_ref_put(rng), RES_OK); + CHK(ssp_rng_ref_put(rng) == RES_OK); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); - CHECK(mem_allocated_size(), 0); + CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_ssf_microfacet_reflection.c b/src/test_ssf_microfacet_reflection.c @@ -34,23 +34,23 @@ main(int argc, char** argv) (void)argc, (void)argv; mem_init_proxy_allocator(&allocator, &mem_default_allocator); - CHECK(ssp_rng_create(&allocator, &ssp_rng_threefry, &rng), RES_OK); - CHECK(ssf_bsdf_create(&allocator, &ssf_microfacet2_reflection, &bsdf), RES_OK); - CHECK(ssf_bsdf_create(&allocator, &bsdf_dummy, &dummy), RES_OK); - CHECK(ssf_fresnel_create(&allocator, &ssf_fresnel_no_op, &F), RES_OK); - CHECK(ssf_microfacet_distribution_create - (&allocator, &ssf_beckmann_distribution, &D), RES_OK); + CHK(ssp_rng_create(&allocator, &ssp_rng_threefry, &rng) == RES_OK); + CHK(ssf_bsdf_create(&allocator, &ssf_microfacet2_reflection, &bsdf) == RES_OK); + CHK(ssf_bsdf_create(&allocator, &bsdf_dummy, &dummy) == RES_OK); + CHK(ssf_fresnel_create(&allocator, &ssf_fresnel_no_op, &F) == RES_OK); + CHK(ssf_microfacet_distribution_create + (&allocator, &ssf_beckmann_distribution, &D) == RES_OK); - CHECK(ssf_beckmann_distribution_setup(D, 0.9), RES_OK); + CHK(ssf_beckmann_distribution_setup(D, 0.9) == RES_OK); - CHECK(ssf_microfacet_reflection_setup(NULL, NULL, NULL), RES_BAD_ARG); - CHECK(ssf_microfacet_reflection_setup(bsdf, NULL, NULL), RES_BAD_ARG); - CHECK(ssf_microfacet_reflection_setup(NULL, F, NULL), RES_BAD_ARG); - CHECK(ssf_microfacet_reflection_setup(bsdf, F, NULL), RES_BAD_ARG); - CHECK(ssf_microfacet_reflection_setup(NULL, NULL, D), RES_BAD_ARG); - CHECK(ssf_microfacet_reflection_setup(bsdf, NULL, D), RES_BAD_ARG); - CHECK(ssf_microfacet_reflection_setup(NULL, F, D), RES_BAD_ARG); - CHECK(ssf_microfacet_reflection_setup(bsdf, F, D), RES_OK); + CHK(ssf_microfacet_reflection_setup(NULL, NULL, NULL) == RES_BAD_ARG); + CHK(ssf_microfacet_reflection_setup(bsdf, NULL, NULL) == RES_BAD_ARG); + CHK(ssf_microfacet_reflection_setup(NULL, F, NULL) == RES_BAD_ARG); + CHK(ssf_microfacet_reflection_setup(bsdf, F, NULL) == RES_BAD_ARG); + CHK(ssf_microfacet_reflection_setup(NULL, NULL, D) == RES_BAD_ARG); + CHK(ssf_microfacet_reflection_setup(bsdf, NULL, D) == RES_BAD_ARG); + CHK(ssf_microfacet_reflection_setup(NULL, F, D) == RES_BAD_ARG); + CHK(ssf_microfacet_reflection_setup(bsdf, F, D) == RES_OK); /* Check energy conservation */ ssp_ran_sphere_uniform(rng, N, NULL); @@ -58,20 +58,20 @@ main(int argc, char** argv) FOR_EACH(i, 0, NSTEPS) { double wi[3], pdf; int type; - CHECK(ssf_bsdf_sample(bsdf, rng, wo, N, wi, &type, &pdf), 1); - CHECK(type, SSF_GLOSSY | SSF_REFLECTION); - CHECK(d3_dot(wi, N) > 0, 1); + CHK(ssf_bsdf_sample(bsdf, rng, wo, N, wi, &type, &pdf) == 1); + CHK(type == (SSF_GLOSSY | SSF_REFLECTION)); + CHK(d3_dot(wi, N) > 0); } - CHECK(ssf_bsdf_ref_put(bsdf), RES_OK); - CHECK(ssf_bsdf_ref_put(dummy), RES_OK); - CHECK(ssf_fresnel_ref_put(F), RES_OK); - CHECK(ssf_microfacet_distribution_ref_put(D), RES_OK); - CHECK(ssp_rng_ref_put(rng), RES_OK); + CHK(ssf_bsdf_ref_put(bsdf) == RES_OK); + CHK(ssf_bsdf_ref_put(dummy) == RES_OK); + CHK(ssf_fresnel_ref_put(F) == RES_OK); + CHK(ssf_microfacet_distribution_ref_put(D) == RES_OK); + CHK(ssp_rng_ref_put(rng) == RES_OK); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); - CHECK(mem_allocated_size(), 0); + CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_ssf_pillbox_distribution.c b/src/test_ssf_pillbox_distribution.c @@ -32,37 +32,37 @@ main(int argc, char** argv) (void)argc, (void)argv; mem_init_proxy_allocator(&allocator, &mem_default_allocator); - CHECK(ssp_rng_create(&allocator, &ssp_rng_threefry, &rng), RES_OK); + CHK(ssp_rng_create(&allocator, &ssp_rng_threefry, &rng) == RES_OK); - CHECK(ssf_microfacet_distribution_create - (&allocator, &ssf_pillbox_distribution, &distrib), RES_OK); - CHECK(ssf_microfacet_distribution_create - (&allocator, &microfacet_dummy, &dummy), RES_OK); + CHK(ssf_microfacet_distribution_create + (&allocator, &ssf_pillbox_distribution, &distrib) == RES_OK); + CHK(ssf_microfacet_distribution_create + (&allocator, &microfacet_dummy, &dummy) == RES_OK); - CHECK(ssf_pillbox_distribution_setup(NULL, -1), RES_BAD_ARG); - CHECK(ssf_pillbox_distribution_setup(distrib, -1), RES_BAD_ARG); - CHECK(ssf_pillbox_distribution_setup(NULL, 0.5), RES_BAD_ARG); - CHECK(ssf_pillbox_distribution_setup(distrib, 0.5), RES_OK); - CHECK(ssf_pillbox_distribution_setup(dummy, 0.5), RES_BAD_ARG); + CHK(ssf_pillbox_distribution_setup(NULL, -1) == RES_BAD_ARG); + CHK(ssf_pillbox_distribution_setup(distrib, -1) == RES_BAD_ARG); + CHK(ssf_pillbox_distribution_setup(NULL, 0.5) == RES_BAD_ARG); + CHK(ssf_pillbox_distribution_setup(distrib, 0.5) == RES_OK); + CHK(ssf_pillbox_distribution_setup(dummy, 0.5) == RES_BAD_ARG); - CHECK(ssf_pillbox_distribution_setup(distrib, 1), RES_OK); - CHECK(ssf_pillbox_distribution_setup(distrib, nextafter(0, 1)), RES_OK); - CHECK(ssf_pillbox_distribution_setup(distrib, nextafter(1, 2)), RES_BAD_ARG); - CHECK(ssf_pillbox_distribution_setup(distrib, 0), RES_BAD_ARG); + CHK(ssf_pillbox_distribution_setup(distrib, 1) == RES_OK); + CHK(ssf_pillbox_distribution_setup(distrib, nextafter(0, 1)) == RES_OK); + CHK(ssf_pillbox_distribution_setup(distrib, nextafter(1, 2)) == RES_BAD_ARG); + CHK(ssf_pillbox_distribution_setup(distrib, 0) == RES_BAD_ARG); FOR_EACH(itest, 0, NTESTS) { const double roughness = nextafter(ssp_rng_canonical(rng), 2); /*in ]0, 1]*/ - CHECK(ssf_pillbox_distribution_setup(distrib, roughness), RES_OK); + CHK(ssf_pillbox_distribution_setup(distrib, roughness) == RES_OK); check_microfacet_distribution(distrib, rng); } - CHECK(ssf_microfacet_distribution_ref_put(distrib), RES_OK); - CHECK(ssf_microfacet_distribution_ref_put(dummy), RES_OK); - CHECK(ssp_rng_ref_put(rng), RES_OK); + CHK(ssf_microfacet_distribution_ref_put(distrib) == RES_OK); + CHK(ssf_microfacet_distribution_ref_put(dummy) == RES_OK); + CHK(ssp_rng_ref_put(rng) == RES_OK); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); - CHECK(mem_allocated_size(), 0); + CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_ssf_specular_reflection.c b/src/test_ssf_specular_reflection.c @@ -36,71 +36,70 @@ main(int argc, char** argv) (void)argc, (void)argv; mem_init_proxy_allocator(&allocator, &mem_default_allocator); - CHECK(ssp_rng_create(&allocator, &ssp_rng_threefry, &rng), RES_OK); - CHECK(ssf_bsdf_create(&allocator, &ssf_specular_reflection, &brdf), RES_OK); - CHECK(ssf_bsdf_create(&allocator, &bsdf_dummy, &dummy), RES_OK); - CHECK(ssf_fresnel_create - (&allocator, &ssf_fresnel_dielectric_dielectric, &fresnel), RES_OK); - CHECK(ssf_fresnel_dielectric_dielectric_setup(fresnel, 0.7, 1), RES_OK); + CHK(ssp_rng_create(&allocator, &ssp_rng_threefry, &rng) == RES_OK); + CHK(ssf_bsdf_create(&allocator, &ssf_specular_reflection, &brdf) == RES_OK); + CHK(ssf_bsdf_create(&allocator, &bsdf_dummy, &dummy) == RES_OK); + CHK(ssf_fresnel_create + (&allocator, &ssf_fresnel_dielectric_dielectric, &fresnel) == RES_OK); + CHK(ssf_fresnel_dielectric_dielectric_setup(fresnel, 0.7, 1) == RES_OK); - CHECK(ssf_specular_reflection_setup(NULL, NULL), RES_BAD_ARG); - CHECK(ssf_specular_reflection_setup(brdf, NULL), RES_BAD_ARG); - CHECK(ssf_specular_reflection_setup(NULL, fresnel), RES_BAD_ARG); - CHECK(ssf_specular_reflection_setup(brdf, fresnel), RES_OK); - CHECK(ssf_specular_reflection_setup(dummy, fresnel), RES_BAD_ARG); + CHK(ssf_specular_reflection_setup(NULL, NULL) == RES_BAD_ARG); + CHK(ssf_specular_reflection_setup(brdf, NULL) == RES_BAD_ARG); + CHK(ssf_specular_reflection_setup(NULL, fresnel) == RES_BAD_ARG); + CHK(ssf_specular_reflection_setup(brdf, fresnel) == RES_OK); + CHK(ssf_specular_reflection_setup(dummy, fresnel) == RES_BAD_ARG); d3(N, 0.0, 1.0, 0.0); d3_normalize(wo, d3(wo, 1.0, 1.0, 0.0)); R = ssf_bsdf_sample(brdf, rng, wo, N, wi, &type, &pdf); - CHECK(eq_eps(R, ssf_fresnel_eval(fresnel, d3_dot(N, wi)), 1.e-6), 1); - CHECK(IS_INF(pdf), 1); - CHECK(type, SSF_SPECULAR|SSF_REFLECTION); + CHK(eq_eps(R, ssf_fresnel_eval(fresnel, d3_dot(N, wi)), 1.e-6) == 1); + CHK(IS_INF(pdf) == 1); + CHK(type == (SSF_SPECULAR|SSF_REFLECTION)); d3_normalize(wo, d3(wo, 1.0, 1.0, 0.0)); - CHECK(ssf_specular_reflection_setup(brdf, fresnel), RES_OK); + CHK(ssf_specular_reflection_setup(brdf, fresnel) == RES_OK); R = ssf_bsdf_sample(brdf, rng, wo, N, wi, &type, &pdf); - CHECK(eq_eps(R, ssf_fresnel_eval(fresnel, d3_dot(N, wi)), 1.e-6), 1); - CHECK(IS_INF(pdf), 1); - CHECK(d3_eq_eps(d3(wo, -wo[0], wo[1], 0.0), wi, 1.e-6), 1); - CHECK(type, SSF_SPECULAR|SSF_REFLECTION); + CHK(eq_eps(R, ssf_fresnel_eval(fresnel, d3_dot(N, wi)), 1.e-6) == 1); + CHK(IS_INF(pdf) == 1); + CHK(d3_eq_eps(d3(wo, -wo[0], wo[1], 0.0), wi, 1.e-6) == 1); + CHK(type == (SSF_SPECULAR|SSF_REFLECTION)); - CHECK(ssf_bsdf_eval(brdf, wo, N, wi), 0.0); - CHECK(ssf_bsdf_pdf(brdf, wo, N, wi), 0.0); + CHK(ssf_bsdf_eval(brdf, wo, N, wi) == 0.0); + CHK(ssf_bsdf_pdf(brdf, wo, N, wi) == 0.0); d3(wo, 0.0, 1.0, 0.0); R = ssf_bsdf_sample(brdf, rng, wo, N, wi, &type, &pdf); - CHECK(eq_eps(R, ssf_fresnel_eval(fresnel, d3_dot(N, wi)), 1.e-6), 1); - CHECK(IS_INF(pdf), 1); - CHECK(d3_eq_eps(d3(wo, 0.0, 1.0, 0.0), wi, 1.e-6), 1); - CHECK(type, SSF_SPECULAR|SSF_REFLECTION); + CHK(eq_eps(R, ssf_fresnel_eval(fresnel, d3_dot(N, wi)), 1.e-6) == 1); + CHK(IS_INF(pdf) == 1); + CHK(d3_eq_eps(d3(wo, 0.0, 1.0, 0.0), wi, 1.e-6) == 1); + CHK(type == (SSF_SPECULAR|SSF_REFLECTION)); d3_normalize(wo, d3(wo, -1.0, 1.0, 0.0)); R = ssf_bsdf_sample(brdf, rng, wo, N, wi, &type, &pdf); - CHECK(eq_eps(R, ssf_fresnel_eval(fresnel, d3_dot(N, wi)), 1.e-6), 1); - CHECK(IS_INF(pdf), 1); - CHECK(d3_eq_eps(d3(wo, -wo[0], wo[1], 0.0), wi, 1.e-6), 1); - CHECK(type, SSF_SPECULAR|SSF_REFLECTION); + CHK(eq_eps(R, ssf_fresnel_eval(fresnel, d3_dot(N, wi)), 1.e-6) == 1); + CHK(IS_INF(pdf) == 1); + CHK(d3_eq_eps(d3(wo, -wo[0], wo[1], 0.0), wi, 1.e-6) == 1); + CHK(type == (SSF_SPECULAR|SSF_REFLECTION)); wo[0] = ssp_rng_uniform_double(rng, -1, 1); wo[1] = ssp_rng_uniform_double(rng, 0, 1); wo[2] = ssp_rng_uniform_double(rng, -1, 1); d3_normalize(wo, wo); R = ssf_bsdf_sample(brdf, rng, wo, N, wi, &type, &pdf); - CHECK(type, SSF_SPECULAR|SSF_REFLECTION); + CHK(type == (SSF_SPECULAR|SSF_REFLECTION)); FOR_EACH(i, 0, NSTEPS) { - CHECK(eq_eps(ssf_bsdf_sample - (brdf, rng, wo, N, wi, &type, &pdf), R, 1.e-6), 1); - CHECK(type, SSF_SPECULAR|SSF_REFLECTION); + CHK(eq_eps(ssf_bsdf_sample(brdf, rng, wo, N, wi, &type, &pdf), R, 1.e-6)); + CHK(type == (SSF_SPECULAR|SSF_REFLECTION)); } - CHECK(ssf_bsdf_ref_put(brdf), RES_OK); - CHECK(ssf_bsdf_ref_put(dummy), RES_OK); - CHECK(ssf_fresnel_ref_put(fresnel), RES_OK); - CHECK(ssp_rng_ref_put(rng), RES_OK); + CHK(ssf_bsdf_ref_put(brdf) == RES_OK); + CHK(ssf_bsdf_ref_put(dummy) == RES_OK); + CHK(ssf_fresnel_ref_put(fresnel) == RES_OK); + CHK(ssp_rng_ref_put(rng) == RES_OK); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); - CHECK(mem_allocated_size(), 0); + CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_ssf_specular_transmission.c b/src/test_ssf_specular_transmission.c @@ -35,69 +35,69 @@ main(int argc, char** argv) (void)argc, (void)argv; mem_init_proxy_allocator(&allocator, &mem_default_allocator); - CHECK(ssp_rng_create(&allocator, &ssp_rng_threefry, &rng), RES_OK); - CHECK(ssf_bxdf_create(&allocator, &ssf_specular_transmission, &btdf), RES_OK); - CHECK(ssf_bxdf_create(&allocator, &bxdf_dummy, &dummy), RES_OK); + CHK(ssp_rng_create(&allocator, &ssp_rng_threefry, &rng) == RES_OK); + CHK(ssf_bxdf_create(&allocator, &ssf_specular_transmission, &btdf) == RES_OK); + CHK(ssf_bxdf_create(&allocator, &bxdf_dummy, &dummy) == RES_OK); CHECK(ssf_fresnel_create (&allocator, &ssf_fresnel_dielectric_dielectric, &fresnel), RES_OK); - CHECK(ssf_fresnel_dielectric_dielectric_setup(fresnel, 1.00027, 1.5), RES_OK); + CHK(ssf_fresnel_dielectric_dielectric_setup(fresnel, 1.00027, 1.5) == RES_OK); - CHECK(ssf_specular_transmission_setup(NULL, -1, -1), RES_BAD_ARG); - CHECK(ssf_specular_transmission_setup(btdf, -1, -1), RES_BAD_ARG); - CHECK(ssf_specular_transmission_setup(NULL, 1.00027, -1), RES_BAD_ARG); - CHECK(ssf_specular_transmission_setup(btdf, 1.00027, -1), RES_BAD_ARG); - CHECK(ssf_specular_transmission_setup(NULL, -1, 1.5), RES_BAD_ARG); - CHECK(ssf_specular_transmission_setup(btdf, -1, 1.5), RES_BAD_ARG); - CHECK(ssf_specular_transmission_setup(NULL, 1.00027, 1.5), RES_BAD_ARG); - CHECK(ssf_specular_transmission_setup(btdf, 1.00027, 1.5), RES_OK); - CHECK(ssf_specular_transmission_setup(dummy, 1.00027, 1.5), RES_BAD_ARG); + CHK(ssf_specular_transmission_setup(NULL, -1, -1) == RES_BAD_ARG); + CHK(ssf_specular_transmission_setup(btdf, -1, -1) == RES_BAD_ARG); + CHK(ssf_specular_transmission_setup(NULL, 1.00027, -1) == RES_BAD_ARG); + CHK(ssf_specular_transmission_setup(btdf, 1.00027, -1) == RES_BAD_ARG); + CHK(ssf_specular_transmission_setup(NULL, -1, 1.5) == RES_BAD_ARG); + CHK(ssf_specular_transmission_setup(btdf, -1, 1.5) == RES_BAD_ARG); + CHK(ssf_specular_transmission_setup(NULL, 1.00027, 1.5) == RES_BAD_ARG); + CHK(ssf_specular_transmission_setup(btdf, 1.00027, 1.5) == RES_OK); + CHK(ssf_specular_transmission_setup(dummy, 1.00027, 1.5) == RES_BAD_ARG); d3(N, 0.0, 1.0, 0.0); d3_normalize(wo, d3(wo, 1.0, 1.0, 0.0)); R = ssf_bxdf_sample(btdf, rng, wo, N, wi, &type, &pdf); - CHECK(eq_eps(R, ssf_fresnel_eval(fresnel, fabs(d3_dot(N, wi))), 1.e-6), RES_OK); - CHECK(d3_eq_eps(wi, d3_minus(tmp, wo), 1.e-6), 0); - CHECK(wi[1] < 0, 1); - CHECK(IS_INF(pdf), 1); - CHECK(type, SSF_SPECULAR|SSF_TRANSMISSION); + CHK(eq_eps(R, ssf_fresnel_eval(fresnel, fabs(d3_dot(N, wi))), 1.e-6) == RES_OK); + CHK(d3_eq_eps(wi, d3_minus(tmp, wo), 1.e-6) == 0); + CHK(wi[1] < 0 == 1); + CHK(IS_INF(pdf) == 1); + CHK(type == SSF_SPECULAR|SSF_TRANSMISSION); - CHECK(ssf_bxdf_eval(btdf, wo, N, wi), 0.0); - CHECK(ssf_bxdf_pdf(btdf, wo, N, wi), 0.0); + CHK(ssf_bxdf_eval(btdf, wo, N, wi) == 0.0); + CHK(ssf_bxdf_pdf(btdf, wo, N, wi) == 0.0); d3(wo, 0.0, 1.0, 0.0); R = ssf_bxdf_sample(btdf, rng, wo, N, wi, &type, &pdf); - CHECK(eq_eps(R, ssf_fresnel_eval(fresnel, fabs(d3_dot(N, wi))), 1.e-6), RES_OK); - CHECK(IS_INF(pdf), 1); - CHECK(d3_eq_eps(wi, d3_minus(tmp, wo), 1.e-6), 1); - CHECK(type, SSF_SPECULAR|SSF_TRANSMISSION); + CHK(eq_eps(R, ssf_fresnel_eval(fresnel, fabs(d3_dot(N, wi))), 1.e-6) == RES_OK); + CHK(IS_INF(pdf) == 1); + CHK(d3_eq_eps(wi, d3_minus(tmp, wo), 1.e-6) == 1); + CHK(type == SSF_SPECULAR|SSF_TRANSMISSION); d3_normalize(wo, d3(wo, -1.0, 1.0, 0.0)); R = ssf_bxdf_sample(btdf, rng, wo, N, wi, &type, &pdf); reflect(tmp, wi, N); - CHECK(type, SSF_SPECULAR|SSF_TRANSMISSION); + CHK(type == SSF_SPECULAR|SSF_TRANSMISSION); d3_normalize(wo, d3(wo, 1.0, 1.0, 0.0)); R = ssf_bxdf_sample(btdf, rng, wo, N, wi, &type, &pdf); - CHECK(d3_eq_eps(wi, tmp, 1.e-6), 1); - CHECK(type, SSF_SPECULAR|SSF_TRANSMISSION); + CHK(d3_eq_eps(wi, tmp, 1.e-6) == 1); + CHK(type == SSF_SPECULAR|SSF_TRANSMISSION); d3_normalize(wo, d3(wo, -1, 1.e-6, 0)); R = ssf_bxdf_sample(btdf, rng, wo, N, wi, &type, &pdf); - CHECK(eq_eps(R, 0, 1.e-3), 1); - CHECK(type, SSF_SPECULAR|SSF_TRANSMISSION); + CHK(eq_eps(R, 0, 1.e-3) == 1); + CHK(type == SSF_SPECULAR|SSF_TRANSMISSION); /* Check total internal reflection */ - CHECK(ssf_specular_transmission_setup(btdf, 1.5, 1.00027), RES_OK); + CHK(ssf_specular_transmission_setup(btdf, 1.5, 1.00027) == RES_OK); R = ssf_bxdf_sample(btdf, rng, wo, N, wi, &type, &pdf); - CHECK(eq_eps(R, 0, 1.e-3), 1); - CHECK(type, SSF_SPECULAR|SSF_REFLECTION); + CHK(eq_eps(R, 0, 1.e-3) == 1); + CHK(type == SSF_SPECULAR|SSF_REFLECTION); - CHECK(ssf_fresnel_ref_put(fresnel), RES_OK); - CHECK(ssf_bxdf_ref_put(btdf), RES_OK); - CHECK(ssf_bxdf_ref_put(dummy), RES_OK); - CHECK(ssp_rng_ref_put(rng), RES_OK); + CHK(ssf_fresnel_ref_put(fresnel) == RES_OK); + CHK(ssf_bxdf_ref_put(btdf) == RES_OK); + CHK(ssf_bxdf_ref_put(dummy) == RES_OK); + CHK(ssp_rng_ref_put(rng) == RES_OK); check_memory_allocator(&allocator); mem_shutdown_proxy_allocator(&allocator); - CHECK(mem_allocated_size(), 0); + CHK(mem_allocated_size() == 0); return 0; } diff --git a/src/test_ssf_thin_specular_dielectric.c b/src/test_ssf_thin_specular_dielectric.c @@ -40,85 +40,85 @@ main(int argc, char** argv) (void)argc, (void)argv; mem_init_proxy_allocator(&allocator, &mem_default_allocator); - CHECK(ssp_rng_create(&allocator, &ssp_rng_threefry, &rng), RES_OK); - CHECK(ssf_bsdf_create - (&allocator, &ssf_thin_specular_dielectric, &bsdf), RES_OK); - CHECK(ssf_bsdf_create(&allocator, &bsdf_dummy, &dummy), RES_OK); + CHK(ssp_rng_create(&allocator, &ssp_rng_threefry, &rng) == RES_OK); + CHK(ssf_bsdf_create + (&allocator, &ssf_thin_specular_dielectric, &bsdf) == RES_OK); + CHK(ssf_bsdf_create(&allocator, &bsdf_dummy, &dummy) == RES_OK); #define SETUP ssf_thin_specular_dielectric_setup - CHECK(SETUP(NULL, -1, 0, 0, -1), RES_BAD_ARG); - CHECK(SETUP(bsdf, -1, 0, 0, -1), RES_BAD_ARG); - CHECK(SETUP(NULL, 1, 0, 0, -1), RES_BAD_ARG); - CHECK(SETUP(bsdf, 1, 0, 0, -1), RES_BAD_ARG); - CHECK(SETUP(NULL, -1, 1.00027, 0, -1), RES_BAD_ARG); - CHECK(SETUP(bsdf, -1, 1.00027, 0, -1), RES_BAD_ARG); - CHECK(SETUP(NULL, 1, 1.00027, 0, -1), RES_BAD_ARG); - CHECK(SETUP(bsdf, 1, 1.00027, 0, -1), RES_BAD_ARG); - CHECK(SETUP(NULL, -1, 0, 1.5, -1), RES_BAD_ARG); - CHECK(SETUP(bsdf, -1, 0, 1.5, -1), RES_BAD_ARG); - CHECK(SETUP(NULL, 1, 0, 1.5, -1), RES_BAD_ARG); - CHECK(SETUP(bsdf, 1, 0, 1.5, -1), RES_BAD_ARG); - CHECK(SETUP(NULL, -1, 1.00027, 1.5, -1), RES_BAD_ARG); - CHECK(SETUP(bsdf, -1, 1.00027, 1.5, -1), RES_BAD_ARG); - CHECK(SETUP(NULL, 1, 1.00027, 1.5, -1), RES_BAD_ARG); - CHECK(SETUP(bsdf, 1, 1.00027, 1.5, -1), RES_BAD_ARG); - CHECK(SETUP(NULL, -1, 0, 0, 0.1), RES_BAD_ARG); - CHECK(SETUP(bsdf, -1, 0, 0, 0.1), RES_BAD_ARG); - CHECK(SETUP(NULL, 1, 0, 0, 0.1), RES_BAD_ARG); - CHECK(SETUP(bsdf, 1, 0, 0, 0.1), RES_BAD_ARG); - CHECK(SETUP(NULL, -1, 1.00027, 0, 0.1), RES_BAD_ARG); - CHECK(SETUP(bsdf, -1, 1.00027, 0, 0.1), RES_BAD_ARG); - CHECK(SETUP(NULL, 1, 1.00027, 0, 0.1), RES_BAD_ARG); - CHECK(SETUP(bsdf, 1, 1.00027, 0, 0.1), RES_BAD_ARG); - CHECK(SETUP(NULL, -1, 0, 1.5, 0.1), RES_BAD_ARG); - CHECK(SETUP(bsdf, -1, 0, 1.5, 0.1), RES_BAD_ARG); - CHECK(SETUP(NULL, 1, 0, 1.5, 0.1), RES_BAD_ARG); - CHECK(SETUP(bsdf, 1, 0, 1.5, 0.1), RES_BAD_ARG); - CHECK(SETUP(NULL, -1, 1.00027, 1.5, 0.1), RES_BAD_ARG); - CHECK(SETUP(bsdf, -1, 1.00027, 1.5, 0.1), RES_BAD_ARG); - CHECK(SETUP(NULL, 1, 1.00027, 1.5, 0.1), RES_BAD_ARG); - CHECK(SETUP(bsdf, 1, 1.00027, 1.5, 0.1), RES_OK); - CHECK(SETUP(dummy, 1, 1.00027, 1.5, 0.1), RES_BAD_ARG); + CHK(SETUP(NULL, -1, 0, 0, -1) == RES_BAD_ARG); + CHK(SETUP(bsdf, -1, 0, 0, -1) == RES_BAD_ARG); + CHK(SETUP(NULL, 1, 0, 0, -1) == RES_BAD_ARG); + CHK(SETUP(bsdf, 1, 0, 0, -1) == RES_BAD_ARG); + CHK(SETUP(NULL, -1, 1.00027, 0, -1) == RES_BAD_ARG); + CHK(SETUP(bsdf, -1, 1.00027, 0, -1) == RES_BAD_ARG); + CHK(SETUP(NULL, 1, 1.00027, 0, -1) == RES_BAD_ARG); + CHK(SETUP(bsdf, 1, 1.00027, 0, -1) == RES_BAD_ARG); + CHK(SETUP(NULL, -1, 0, 1.5, -1) == RES_BAD_ARG); + CHK(SETUP(bsdf, -1, 0, 1.5, -1) == RES_BAD_ARG); + CHK(SETUP(NULL, 1, 0, 1.5, -1) == RES_BAD_ARG); + CHK(SETUP(bsdf, 1, 0, 1.5, -1) == RES_BAD_ARG); + CHK(SETUP(NULL, -1, 1.00027, 1.5, -1) == RES_BAD_ARG); + CHK(SETUP(bsdf, -1, 1.00027, 1.5, -1) == RES_BAD_ARG); + CHK(SETUP(NULL, 1, 1.00027, 1.5, -1) == RES_BAD_ARG); + CHK(SETUP(bsdf, 1, 1.00027, 1.5, -1) == RES_BAD_ARG); + CHK(SETUP(NULL, -1, 0, 0, 0.1) == RES_BAD_ARG); + CHK(SETUP(bsdf, -1, 0, 0, 0.1) == RES_BAD_ARG); + CHK(SETUP(NULL, 1, 0, 0, 0.1) == RES_BAD_ARG); + CHK(SETUP(bsdf, 1, 0, 0, 0.1) == RES_BAD_ARG); + CHK(SETUP(NULL, -1, 1.00027, 0, 0.1) == RES_BAD_ARG); + CHK(SETUP(bsdf, -1, 1.00027, 0, 0.1) == RES_BAD_ARG); + CHK(SETUP(NULL, 1, 1.00027, 0, 0.1) == RES_BAD_ARG); + CHK(SETUP(bsdf, 1, 1.00027, 0, 0.1) == RES_BAD_ARG); + CHK(SETUP(NULL, -1, 0, 1.5, 0.1) == RES_BAD_ARG); + CHK(SETUP(bsdf, -1, 0, 1.5, 0.1) == RES_BAD_ARG); + CHK(SETUP(NULL, 1, 0, 1.5, 0.1) == RES_BAD_ARG); + CHK(SETUP(bsdf, 1, 0, 1.5, 0.1) == RES_BAD_ARG); + CHK(SETUP(NULL, -1, 1.00027, 1.5, 0.1) == RES_BAD_ARG); + CHK(SETUP(bsdf, -1, 1.00027, 1.5, 0.1) == RES_BAD_ARG); + CHK(SETUP(NULL, 1, 1.00027, 1.5, 0.1) == RES_BAD_ARG); + CHK(SETUP(bsdf, 1, 1.00027, 1.5, 0.1) == RES_OK); + CHK(SETUP(dummy, 1, 1.00027, 1.5, 0.1) == RES_BAD_ARG); #undef SETUP d3(N, 0.0, 1.0, 0.0); d3_normalize(wo, d3(wo, 1.0, 1.0, 0.0)); R = ssf_bsdf_sample(bsdf, rng, wo, N, wi, &type, &pdf); - NCHECK(R, 0); - NCHECK(type & SSF_SPECULAR, 0); - CHECK(IS_INF(pdf), 1); - CHECK(d3_eq_eps(wi, d3(tmp, -wo[0], wo[1], 0), 1.e-6) - || d3_eq_eps(wi, d3(tmp, -wo[0], -wo[1], 0), 1.e-6), 1); + CHK(R != 0); + CHK(type & SSF_SPECULAR); + CHK(IS_INF(pdf) == 1); + CHK(d3_eq_eps(wi, d3(tmp, -wo[0], wo[1], 0), 1.e-6) + || d3_eq_eps(wi, d3(tmp, -wo[0],-wo[1], 0), 1.e-6)); - CHECK(ssf_bsdf_eval(bsdf, wo, N, wi), 0.0); - CHECK(ssf_bsdf_pdf(bsdf, wo, N, wi), 0.0); + CHK(ssf_bsdf_eval(bsdf, wo, N, wi) == 0.0); + CHK(ssf_bsdf_pdf(bsdf, wo, N, wi) == 0.0); d3(wo, 0.0, 1.0, 0.0); R = ssf_bsdf_sample(bsdf, rng, wo, N, wi, &type, &pdf); - NCHECK(R, 0); - CHECK(IS_INF(pdf), 1); - CHECK(d3_eq_eps(wi, d3(tmp, -wo[0], -wo[1], 0), 1.e-6), 1); - CHECK(type, SSF_SPECULAR | SSF_TRANSMISSION); + CHK(R != 0); + CHK(IS_INF(pdf) == 1); + CHK(d3_eq_eps(wi, d3(tmp, -wo[0], -wo[1], 0), 1.e-6) == 1); + CHK(type == (SSF_SPECULAR | SSF_TRANSMISSION)); d3(wo, 1.0, 0.0, 0.0); R = ssf_bsdf_sample(bsdf, rng, wo, N, wi, &type, &pdf); - NCHECK(R, 0); - CHECK(IS_INF(pdf), 1); - CHECK(d3_eq_eps(wi, d3(tmp, -wo[0], wo[1], 0), 1.e-6), 1); - CHECK(type, SSF_SPECULAR | SSF_REFLECTION); + CHK(R != 0); + CHK(IS_INF(pdf) == 1); + CHK(d3_eq_eps(wi, d3(tmp, -wo[0], wo[1], 0), 1.e-6) == 1); + CHK(type == (SSF_SPECULAR | SSF_REFLECTION)); /* Check total internal reflection, i.e. no transmission */ d3_normalize(wo, d3(wo, 1, 0.0000001, 0)); - CHECK(ssf_thin_specular_dielectric_setup(bsdf, 0, 1.4, 1.0, 1), RES_OK); + CHK(ssf_thin_specular_dielectric_setup(bsdf, 0, 1.4, 1.0, 1) == RES_OK); R = ssf_bsdf_sample(bsdf, rng, wo, N, wi, &type, &pdf); - CHECK(R, 1); - CHECK(IS_INF(pdf), 1); - CHECK(d3_eq_eps(wi, d3(tmp, -wo[0], wo[1], 0), 1.e-6), 1); - CHECK(type, SSF_SPECULAR | SSF_REFLECTION); + CHK(R == 1); + CHK(IS_INF(pdf) == 1); + CHK(d3_eq_eps(wi, d3(tmp, -wo[0], wo[1], 0), 1.e-6) == 1); + CHK(type == (SSF_SPECULAR | SSF_REFLECTION)); FOR_EACH(i, 0, NSTEPS) { R = ssf_bsdf_sample(bsdf, rng, wo, N, wi, &type, &pdf); - CHECK(type & SSF_REFLECTION, 1); - CHECK(R, 1); + CHK(type & SSF_REFLECTION); + CHK(R == 1); } /* Check T VS R proportion and E conservation */ @@ -139,9 +139,9 @@ main(int argc, char** argv) #define STD(x, x2, n) \ (VAR((x), (x2), (n)) > 0 ? sqrt(VAR((x), (x2), (n)) / (double)(n)) : 0) /* Check conservation of energy */ - CHECK(MEAN(SR+ST, NSTEPS), 1); + CHK(MEAN(SR+ST, NSTEPS) == 1); /* Check T VS R proportion */ - CHECK(eq_eps(MEAN(SR, NSTEPS), 0.0540540540, 3 * STD(SR,SR2,NSTEPS)), 1); + CHK(eq_eps(MEAN(SR, NSTEPS), 0.0540540540, 3 * STD(SR,SR2,NSTEPS)) == 1); #undef MEAN #undef VAR #undef STD @@ -156,20 +156,20 @@ main(int argc, char** argv) FOR_EACH(i, 0, NSTEPS) { R = ssf_bsdf_sample(bsdf, rng, wo, N, wi, &type, &pdf); - NCHECK(R, 0); - CHECK(IS_INF(pdf), 1); + CHK(R != 0); + CHK(IS_INF(pdf) == 1); if(d3_eq_eps(wi, reflect, 1.e-6)) { - CHECK(type, SSF_SPECULAR | SSF_REFLECTION); + CHK(type == (SSF_SPECULAR | SSF_REFLECTION)); } else if(d3_eq_eps(wi, refract, 1e-6), 1) { - CHECK(type, SSF_SPECULAR | SSF_TRANSMISSION); + CHK(type == (SSF_SPECULAR | SSF_TRANSMISSION)); } else { FATAL("Unexpected value.\n"); } } - CHECK(ssp_rng_ref_put(rng), RES_OK); - CHECK(ssf_bsdf_ref_put(bsdf), RES_OK); - CHECK(ssf_bsdf_ref_put(dummy), RES_OK); + CHK(ssp_rng_ref_put(rng) == RES_OK); + CHK(ssf_bsdf_ref_put(bsdf) == RES_OK); + CHK(ssf_bsdf_ref_put(dummy) == RES_OK); return 0; } diff --git a/src/test_ssf_utils.h b/src/test_ssf_utils.h @@ -216,7 +216,7 @@ check_microfacet_distribution V = MMAX(sum2 / (double)n - E*E, 0); SE = sqrt(V/(double)n); } while(SE > E * 0.05); - CHECK(eq_eps(E, 1.0, 3*SE), 1); + CHK(eq_eps(E, 1.0, 3*SE) == 1); /* Check the sampling of a direction wh and the returned pdf */ FOR_EACH(i, 0, NSTEPS) { @@ -225,7 +225,7 @@ check_microfacet_distribution ssf_microfacet_distribution_sample(distrib, rng, N, wh, &pdf); D = ssf_microfacet_distribution_eval(distrib, N, wh); weight = D * d3_dot(wh, N) / pdf; - CHECK(eq_eps(weight, 1.0, 1.e-6), 1); + CHK(eq_eps(weight, 1.0, 1.e-6) == 1); } }