star-vx

Structuring voxels for ray-tracing
git clone git://git.meso-star.fr/star-vx.git
Log | Files | Refs | README | LICENSE

commit bddc8f024ebf17a762062b856c0d87116fe2cb37
parent fa08562129eafb16573bdeb447d4dea4bb4ae85e
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Wed, 28 Nov 2018 18:25:38 +0100

Fix CL warnings

Diffstat:
Msrc/svx_tree_builder.h | 9+++++++++
Msrc/test_svx_bintree.c | 9+++++----
Msrc/test_svx_octree.c | 10+++++-----
Msrc/test_svx_utils.h | 3++-
4 files changed, 21 insertions(+), 10 deletions(-)

diff --git a/src/svx_tree_builder.h b/src/svx_tree_builder.h @@ -48,6 +48,11 @@ static const struct voxel VOXEL_NULL = {0, NULL}; #define NCHILDREN BIT(TREE_DIMENSION) +#ifdef COMPILER_CL + #pragma warning(push) + #pragma warning(disable:4324) /* Structure was padded due to alignment */ +#endif + struct XD(node) { struct buffer_index ichild_node; /* Index of the 1st child node */ struct buffer_index ichild_attr; /* Index of the 1st child attr */ @@ -56,6 +61,10 @@ struct XD(node) { ALIGN(16) char data[NCHILDREN][SVX_MAX_SIZEOF_VOXEL]; /* Data of the leaves */ }; +#ifdef COMPILER_CL + #pragma warning(pop) +#endif + /* Stacked children of a tree node */ struct XD(stack) { struct XD(node) nodes[NCHILDREN]; /* List of registered children */ diff --git a/src/test_svx_bintree.c b/src/test_svx_bintree.c @@ -245,7 +245,7 @@ test_at_accessor(struct svx_tree* tree, const size_t nvoxels) CHK(svx_tree_get_desc(tree, &desc) == RES_OK); CHK(desc.type == SVX_BINTREE); - CHK(desc.frame[0] = AXIS); + CHK(desc.frame[0] == AXIS); axis = desc.frame[0]; tree_sz = desc.upper[axis] - desc.lower[axis]; @@ -273,7 +273,7 @@ test_at_accessor(struct svx_tree* tree, const size_t nvoxels) ctx.position = pos[axis]; CHK(svx_tree_at(tree, pos, max_lod, &ctx, &vox) == RES_OK); - mcode = i * (1u<<iter) + ((1u << iter) - 1); + mcode = i * (size_t)(1u<<iter) + ((1u << iter) - 1); mcode = MMIN(mcode, nvoxels-1); CHK(*((double*)vox.data) == mcode); @@ -302,7 +302,7 @@ main(int argc, char** argv) enum svx_axis axis; double low, upp; size_t nvxls; - void* ptr = (void*)0xDECAFBAD; + void* ptr = (void*)(intptr_t)0xDECAFBAD; (void)argc, (void)argv; CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK); @@ -364,7 +364,8 @@ main(int argc, char** argv) ctx.axis = AXIS; ctx.nleaves = 0; - CHK(ctx.leaves = MEM_CALLOC(&allocator, 5, 1)); + ctx.leaves = MEM_CALLOC(&allocator, 5, 1); + CHK(ctx.leaves); CHK(svx_tree_for_each_leaf(tree, check_leaves, &ctx) == RES_OK); CHK(ctx.nleaves == 5); MEM_RM(&allocator, ctx.leaves); diff --git a/src/test_svx_octree.c b/src/test_svx_octree.c @@ -332,14 +332,14 @@ test_at_accessor(struct svx_tree* oct, const size_t nvoxels[3]) pos[0] = tree_desc.lower[0] + ((double)x+1.0/(1u<<(2+iter)))*delta[0]; low[0] = tree_desc.lower[0] + (double)x * delta[0]; upp[0] = low[0] + delta[0]; - if(x*(1u<<iter) >= nvoxels[0]) break; + if(x*(size_t)(1u<<iter) >= nvoxels[0]) break; FOR_EACH(y, 0, nvxls) { pos[1] = tree_desc.lower[1] + ((double)y+1.0/(1u<<(2+iter)))*delta[1]; low[1] = tree_desc.lower[1] + (double)y * delta[1]; upp[1] = low[1] + delta[1]; - if(y*(1u<<iter) >= nvoxels[1]) break; + if(y*(size_t)(1u<<iter) >= nvoxels[1]) break; FOR_EACH(z, 0, nvxls) { struct svx_voxel vox; @@ -350,7 +350,7 @@ test_at_accessor(struct svx_tree* oct, const size_t nvoxels[3]) low[2] = tree_desc.lower[2] + (double)z * delta[2]; upp[2] = low[2] + delta[2]; - if(z*(1u<<iter) >= nvoxels[2]) break; + if(z*(size_t)(1u<<iter) >= nvoxels[2]) break; d3_set(ctx.position, pos); CHK(svx_tree_at(oct, pos, max_lod, &ctx, &vox) == RES_OK); @@ -394,7 +394,7 @@ main(int argc, char** argv) double upp[3]; size_t nvxls[3]; struct leaves_context ctx; - void* ptr = (void*)0xDECAFBAD; + void* ptr = (void*)(intptr_t)0xDECAFBAD; (void)argc, (void)argv; CHK(mem_init_proxy_allocator(&allocator, &mem_default_allocator) == RES_OK); @@ -487,7 +487,7 @@ main(int argc, char** argv) CHK(tree_desc.nleaves == nvxls[0]*nvxls[1]*nvxls[2] / 8); CHK(tree_desc.nvoxels == (tree_desc.nleaves*8 - 1) / 7); CHK(tree_desc.depth == (size_t)log2i((int)(nvxls[0]/2))+1); - CHK(tree_desc.type = SVX_OCTREE); + CHK(tree_desc.type == SVX_OCTREE); dump_data(stdout, oct, TYPE_FLOAT, 1, write_scalars); diff --git a/src/test_svx_utils.h b/src/test_svx_utils.h @@ -170,7 +170,8 @@ dump_data FOR_EACH(ileaf, 0, desc.nleaves) fprintf(stream, "11\n"); fprintf(stream, "CELL_DATA %lu\n", (unsigned long)desc.nleaves); - fprintf(stream, "SCALARS K %s %lu\n", data_type_to_string(type), numcomps); + fprintf(stream, "SCALARS K %s %lu\n", + data_type_to_string(type), (unsigned long)numcomps); fprintf(stream, "LOOKUP_TABLE default\n"); CHK(svx_tree_for_each_leaf(tree, write_leaf_data, stream) == RES_OK); }