commit 8077d0fb5673448b70cfb5698491f9bb169b5edd
parent 617cc197d9c3b90196aad0674d28c4107f88d50f
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Fri, 2 Sep 2016 09:07:41 +0200
Fix compilation errors & warnings on GCC
Diffstat:
7 files changed, 32 insertions(+), 29 deletions(-)
diff --git a/src/ssol_material_c.h b/src/ssol_material_c.h
@@ -30,6 +30,9 @@ struct surface_fragment {
double Ns[3]; /* Normalized world space shading normal */
double uv[2]; /* Texture coordinates */
};
+#define SURFACE_FRAGMENT_NULL__ {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0}}
+static const struct surface_fragment SURFACE_FRAGMENT_NULL =
+ SURFACE_FRAGMENT_NULL__;
enum material_type {
MATERIAL_VIRTUAL,
diff --git a/src/ssol_scene.c b/src/ssol_scene.c
@@ -268,9 +268,9 @@ hit_filter_function
prev = previous_segment(rz);
seg = current_segment(rz);
ASSERT(seg);
-
- /* TODO: need to detect self intersect at the instance level,
- using front/back face to avoid false self intersect events */
+
+ /* TODO: need to detect self intersect at the instance level,
+ * using front/back face to avoid false self intersect events */
if(prev && S3D_PRIMITIVE_EQ(&hit->prim, &prev->hit.prim))
return 1; /* Discard self intersection */
diff --git a/src/ssol_solver.c b/src/ssol_solver.c
@@ -32,18 +32,11 @@
#include <rsys/double3.h>
#include <rsys/double44.h>
-#define END_TEXT__ { "NONE", "SUCCESS", "SHADOW", "POINTING", "MISSING", "BLOCKED", "ERROR" };
+#define END_TEXT__ \
+ { "NONE", "SUCCESS", "SHADOW", "POINTING", "MISSING", "BLOCKED", "ERROR" }
static const char* END_TEXT[] = END_TEXT__;
-enum realization_mode {
- MODE_NONE,
- MODE_STD,
- MODE_ROULETTE,
-
- MODE_COUNT__
-};
-
/*******************************************************************************
* Helper functions
******************************************************************************/
@@ -171,7 +164,7 @@ set_views(struct solver_data* data) {
struct ssol_material* mat;
struct ssol_object* object;
inst = *htable_instance_iterator_data_get(&it);
-
+
/* TODO: keep only primary mirrors */
mat = inst->object->material;
if (material_get_type(mat) != MATERIAL_MIRROR)
@@ -297,7 +290,7 @@ reset_realization(size_t cpt, struct realisation* rz)
static res_T
init_realization
(struct ssol_scene* scene,
- struct ssp_rng* rng,
+ struct ssp_rng* rng,
FILE* out,
struct realisation* rz)
{
@@ -377,7 +370,7 @@ sample_point_on_primary_mirror(struct realisation* rz)
S3D(primitive_get_attrib(&tmp_prim, S3D_POSITION, rz->start.uv, &attrib));
CHECK(attrib.type, S3D_FLOAT3);
/* find the solstice shape and project the sampled point on the mirror */
- rz->start.instance =
+ rz->start.instance =
*htable_instance_find(&data->scene->instances, &tmp_prim.inst_id);
ASSERT(rz->start.instance);
object = object_instance_get_object(rz->start.instance);
@@ -589,7 +582,7 @@ ssol_solve
/* sample a frequency */
sample_wavelength(&rz);
-
+
/* check if the point receives sun light */
if (!receive_sunlight(&rz)) {
rz.end = rz.start.cos_sun >= 0 ? TERM_POINTING : TERM_SHADOW;
diff --git a/src/ssol_solver_c.h b/src/ssol_solver_c.h
@@ -48,6 +48,14 @@ enum realization_termination {
TERM_COUNT__
};
+enum realization_mode {
+ MODE_NONE,
+ MODE_STD,
+ MODE_ROULETTE,
+
+ MODE_COUNT__
+};
+
struct segment {
double weight;
float range[2];
@@ -88,8 +96,6 @@ struct solver_data {
struct surface_fragment fragment;
};
-#define SOLVER_DATA_NULL__ { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL };
-
struct realisation {
enum realization_termination end;
enum realization_mode mode;
@@ -102,6 +108,8 @@ struct realisation {
uint32_t success_mask;
};
+#define SOLVER_DATA_NULL__ \
+ {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, SURFACE_FRAGMENT_NULL__}
static const struct solver_data SOLVER_DATA_NULL = SOLVER_DATA_NULL__;
extern LOCAL_SYM res_T
diff --git a/src/test_ssol_geometries.h b/src/test_ssol_geometries.h
@@ -37,8 +37,7 @@ const unsigned square_walls_ids [] = {
0, 2, 1, 2, 0, 3
};
const unsigned square_walls_ntris = sizeof(square_walls_ids) / sizeof(unsigned[3]);
-
-static struct desc square_walls_desc = { square_walls, square_walls_ids };
+static const struct desc square_walls_desc = { square_walls, square_walls_ids };
/*******************************************************************************
* Box
@@ -64,7 +63,7 @@ const unsigned box_walls_ids [] = {
};
const unsigned box_walls_ntris = sizeof(box_walls_ids) / sizeof(unsigned[3]);
-static struct desc box_walls_desc = { box_walls, box_walls_ids };
+static const struct desc box_walls_desc = { box_walls, box_walls_ids };
/*******************************************************************************
* Callbacks
diff --git a/src/test_ssol_shape.c b/src/test_ssol_shape.c
@@ -63,19 +63,19 @@ main(int argc, char** argv)
attribs[2].get = get_uv;
CHECK(ssol_mesh_setup
- (NULL, box_walls_ntris, get_ids, box_walls_nverts, attribs, 1, &box_walls_desc), RES_BAD_ARG);
+ (NULL, box_walls_ntris, get_ids, box_walls_nverts, attribs, 1, (void*)&box_walls_desc), RES_BAD_ARG);
CHECK(ssol_mesh_setup
- (shape, 0, get_ids, box_walls_nverts, attribs, 1, &box_walls_desc), RES_BAD_ARG);
+ (shape, 0, get_ids, box_walls_nverts, attribs, 1, (void*)&box_walls_desc), RES_BAD_ARG);
CHECK(ssol_mesh_setup
- (shape, box_walls_ntris, NULL, box_walls_nverts, attribs, 1, &box_walls_desc), RES_BAD_ARG);
+ (shape, box_walls_ntris, NULL, box_walls_nverts, attribs, 1, (void*)&box_walls_desc), RES_BAD_ARG);
CHECK(ssol_mesh_setup
- (shape, box_walls_ntris, get_ids, 0, attribs, 1, &box_walls_desc), RES_BAD_ARG);
+ (shape, box_walls_ntris, get_ids, 0, attribs, 1, (void*)&box_walls_desc), RES_BAD_ARG);
CHECK(ssol_mesh_setup
- (shape, box_walls_ntris, get_ids, box_walls_nverts, NULL, 1, &box_walls_desc), RES_BAD_ARG);
+ (shape, box_walls_ntris, get_ids, box_walls_nverts, NULL, 1, (void*)&box_walls_desc), RES_BAD_ARG);
CHECK(ssol_mesh_setup
- (shape, box_walls_ntris, get_ids, box_walls_nverts, attribs, 0, &box_walls_desc), RES_BAD_ARG);
+ (shape, box_walls_ntris, get_ids, box_walls_nverts, attribs, 0, (void*)&box_walls_desc), RES_BAD_ARG);
CHECK(ssol_mesh_setup
- (shape, box_walls_ntris, get_ids, box_walls_nverts, attribs, 3, &box_walls_desc), RES_OK);
+ (shape, box_walls_ntris, get_ids, box_walls_nverts, attribs, 3, (void*)&box_walls_desc), RES_OK);
CHECK(ssol_shape_ref_put(shape), RES_OK);
diff --git a/src/test_ssol_solver.c b/src/test_ssol_solver.c
@@ -102,7 +102,7 @@ main(int argc, char** argv)
attribs[0].usage = SSOL_POSITION;
attribs[0].get = get_position;
CHECK(ssol_mesh_setup
- (square, square_walls_ntris, get_ids, square_walls_nverts, attribs, 1, &square_walls_desc), RES_OK);
+ (square, square_walls_ntris, get_ids, square_walls_nverts, attribs, 1, (void*)&square_walls_desc), RES_OK);
CHECK(ssol_material_create_mirror(dev, &m_material), RES_OK);
shader.normal = get_shader_normal;