commit 68ace9d987a2de9a06eece608652e4e001462d38
parent 16405eb66ee858c999c2ec92a655f358c9903dd1
Author: vaplv <vaplv@free.fr>
Date: Tue, 23 Sep 2014 17:45:45 +0200
Replace the useless enum aw_result type by res_T
Diffstat:
| M | src/aw.c | | | 12 | ++++++------ |
| M | src/aw.h | | | 44 | +++++++++++++++++++------------------------- |
| M | src/aw_c.h | | | 18 | +++++++++--------- |
| M | src/aw_mtl.c | | | 189 | ++++++++++++++++++++++++++++++++++++++++--------------------------------------- |
| M | src/aw_obj.c | | | 198 | ++++++++++++++++++++++++++++++++++++++----------------------------------------- |
| M | src/test_aw_mtl.c | | | 72 | ++++++++++++++++++++++++++++++++++++------------------------------------ |
| M | src/test_aw_obj.c | | | 170 | ++++++++++++++++++++++++++++++++++++++++---------------------------------------- |
7 files changed, 345 insertions(+), 358 deletions(-)
diff --git a/src/aw.c b/src/aw.c
@@ -22,7 +22,7 @@
/*******************************************************************************
* Local functions
******************************************************************************/
-enum aw_result
+res_T
parse_floatX
(float* f,
const unsigned int count_min,
@@ -38,21 +38,21 @@ parse_floatX
FOR_EACH(i, 0, count_max) {
char* real;
- enum aw_result res;
+ res_T res;
if(NULL == (real = strtok_r(NULL, " ", tk_ctxt)))
break;
res = string_to_float(real, f + i);
- if(res != AW_OK)
+ if(res != R_OK)
return res;
if(f[i] < range_min || f[i] > range_max)
- return AW_BAD_ARGUMENT;
+ return R_BAD_ARG;
}
if(i < count_min)
- return AW_BAD_ARGUMENT;
+ return R_BAD_ARG;
FOR_EACH(i, i, count_max)
f[i] = default_value;
- return AW_OK;
+ return R_OK;
}
diff --git a/src/aw.h b/src/aw.h
@@ -27,19 +27,13 @@
#endif
#ifndef NDEBUG
- #define AW(Func) ASSERT(aw_##Func == AW_OK)
+ #define AW(Func) ASSERT(aw_##Func == R_OK)
#else
#define AW(Func) aw_##Func
#endif
#define AW_ID_NONE ((size_t)(-1))
-enum aw_result {
- AW_BAD_ARGUMENT,
- AW_MEMORY_ERROR,
- AW_OK
-};
-
enum aw_color_space {
AW_COLOR_RGB,
AW_COLOR_XYZ
@@ -144,59 +138,59 @@ BEGIN_DECLS
/*******************************************************************************
* Obj functions
******************************************************************************/
-AW_API enum aw_result
+AW_API res_T
aw_obj_create
(struct mem_allocator* allocator, /* NULL <=> use default allocator */
struct aw_obj** obj);
-AW_API enum aw_result
+AW_API res_T
aw_obj_ref_get
(struct aw_obj* obj);
-AW_API enum aw_result
+AW_API res_T
aw_obj_ref_put
(struct aw_obj* obj);
-AW_API enum aw_result
+AW_API res_T
aw_obj_load
(struct aw_obj* obj,
const char* filename);
-AW_API enum aw_result
+AW_API res_T
aw_obj_load_stream
(struct aw_obj* obj,
FILE* stream);
-AW_API enum aw_result
+AW_API res_T
aw_obj_desc_get
(struct aw_obj* obj,
struct aw_obj_desc* desc);
-AW_API enum aw_result
+AW_API res_T
aw_obj_face_get
(const struct aw_obj* obj,
const size_t face_id,
struct aw_obj_face* face);
-AW_API enum aw_result
+AW_API res_T
aw_obj_group_get
(const struct aw_obj* obj,
const size_t group_id,
struct aw_obj_group* group);
-AW_API enum aw_result
+AW_API res_T
aw_obj_smooth_group_get
(const struct aw_obj* obj,
const size_t smooth_group_id,
struct aw_obj_smooth_group* smooth_group);
-AW_API enum aw_result
+AW_API res_T
aw_obj_mtl_get
(const struct aw_obj* obj,
const size_t mtl_id,
struct aw_obj_mtl* mtl);
-AW_API enum aw_result
+AW_API res_T
aw_obj_vertex_get
(const struct aw_obj* obj,
const size_t vertex_id,
@@ -205,35 +199,35 @@ aw_obj_vertex_get
/*******************************************************************************
* Mtl functions
******************************************************************************/
-AW_API enum aw_result
+AW_API res_T
aw_mtl_create
(struct mem_allocator* allocator, /* NULL <=> use default allocator */
struct aw_mtl** mtl);
-AW_API enum aw_result
+AW_API res_T
aw_mtl_ref_get
(struct aw_mtl* mtl);
-AW_API enum aw_result
+AW_API res_T
aw_mtl_ref_put
(struct aw_mtl* mtl);
-AW_API enum aw_result
+AW_API res_T
aw_mtl_load
(struct aw_mtl* mtl,
const char* filename);
-AW_API enum aw_result
+AW_API res_T
aw_mtl_load_stream
(struct aw_mtl* mtl,
FILE* stream);
-AW_API enum aw_result
+AW_API res_T
aw_mtl_materials_count_get
(struct aw_mtl* mtl,
size_t* materials_count);
-AW_API enum aw_result
+AW_API res_T
aw_mtl_material_get
(struct aw_mtl* mtl,
const size_t imaterial,
diff --git a/src/aw_c.h b/src/aw_c.h
@@ -18,33 +18,33 @@
#include "aw.h"
-static FINLINE enum aw_result
+static FINLINE res_T
string_to_float(const char* str, float* f)
{
char* ptr = NULL;
ASSERT(f);
if(!str)
- return AW_BAD_ARGUMENT;
+ return R_BAD_ARG;
*f = (float)strtod(str, &ptr);
if(ptr == str || *ptr != '\0')
- return AW_BAD_ARGUMENT;
- return AW_OK;
+ return R_BAD_ARG;
+ return R_OK;
}
-static FINLINE enum aw_result
+static FINLINE res_T
string_to_size_t(const char* str, size_t* i)
{
char* ptr = NULL;
ASSERT(i);
if(!str)
- return AW_BAD_ARGUMENT;
+ return R_BAD_ARG;
*i = (size_t)strtol(str, &ptr, 10);
if(ptr == str || *ptr != '\0')
- return AW_BAD_ARGUMENT;
- return AW_OK;
+ return R_BAD_ARG;
+ return R_OK;
}
-extern LOCAL_SYM enum aw_result
+extern LOCAL_SYM res_T
parse_floatX
(float* f,
const unsigned int count_min,
diff --git a/src/aw_mtl.c b/src/aw_mtl.c
@@ -73,12 +73,12 @@ map_copy_pod__(struct aw_map* dst, const struct aw_map* src)
dst->bump_multiplier = src->bump_multiplier;
}
-static FINLINE int
+static FINLINE res_T
map_copy(struct aw_map* dst, const struct aw_map* src)
{
ASSERT(dst && src);
if(dst == src)
- return 0;
+ return R_OK;
map_copy_pod__(dst, src);
if(dst->filename)
@@ -86,10 +86,10 @@ map_copy(struct aw_map* dst, const struct aw_map* src)
if(src->filename) {
dst->filename = mem_alloc(strlen(src->filename)+1);
if(!dst->filename)
- return -1;
+ return R_MEM_ERR;
strcpy(dst->filename, src->filename);
}
- return 0;
+ return R_OK;
}
/*******************************************************************************
@@ -133,33 +133,35 @@ material_copy_pod__(struct aw_material* dst, const struct aw_material* src)
dst->illumination_model = src->illumination_model;
}
-static FINLINE int
+static FINLINE res_T
material_copy(struct aw_material* dst, const struct aw_material* src)
{
+ res_T res;
+
if(dst == src)
- return 0;
+ return R_OK;
if(src->name) {
if(dst->name)
mem_free(dst->name);
dst->name = mem_alloc(strlen(src->name) + 1);
if(!dst->name)
- return -1;
+ return R_MEM_ERR;
strcpy(dst->name, src->name);
}
material_copy_pod__(dst, src);
- if(map_copy(&dst->ambient_map, &src->ambient_map))
- return -1;
- if(map_copy(&dst->diffuse_map, &src->diffuse_map))
- return -1;
- if(map_copy(&dst->specular_map, &src->specular_map))
- return -1;
- if(map_copy(&dst->specular_exponent_map, &src->specular_exponent_map))
- return -1;
- if(map_copy(&dst->bump_map, &src->bump_map))
- return -1;
-
- return 0;
+ res = map_copy(&dst->ambient_map, &src->ambient_map);
+ if(res != R_OK) return res;
+ res = map_copy(&dst->diffuse_map, &src->diffuse_map);
+ if(res != R_OK) return res;
+ res = map_copy(&dst->specular_map, &src->specular_map);
+ if(res != R_OK) return res;
+ res = map_copy(&dst->specular_exponent_map, &src->specular_exponent_map);
+ if(res != R_OK) return res;
+ res = map_copy(&dst->bump_map, &src->bump_map);
+ if(res != R_OK) return res;
+
+ return R_OK;
}
/*******************************************************************************
@@ -187,17 +189,17 @@ struct aw_mtl {
/*******************************************************************************
* Helper functions
******************************************************************************/
-static enum aw_result
+static res_T
parse_name(char** name, char* tk, char** tk_ctxt)
{
char* buf = NULL;
size_t buf_len = 0;
size_t buf_size_max = 0;
- enum aw_result res = AW_OK;
+ res_T res = R_OK;
ASSERT(tk_ctxt && name);
if(!tk) {
- res = AW_BAD_ARGUMENT;
+ res = R_BAD_ARG;
goto error;
}
@@ -209,7 +211,7 @@ parse_name(char** name, char* tk, char** tk_ctxt)
buf_size_max = round_up_pow2(capacity);
buf = mem_realloc(buf, buf_size_max);
if(!buf) {
- res = AW_MEMORY_ERROR;
+ res = R_MEM_ERR;
goto error;
}
}
@@ -230,54 +232,55 @@ error:
goto exit;
}
-static enum aw_result
+static res_T
parse_newmtl(struct aw_mtl* mtl, char** word_tk)
{
char* word;
size_t nmtls;
- enum aw_result res;
+ res_T res;
ASSERT(mtl && word_tk);
word = strtok_r(NULL, "\n", word_tk);
if(!word)
- return AW_BAD_ARGUMENT;
+ return R_BAD_ARG;
nmtls = darray_material_size_get(&mtl->materials);
- if(darray_material_resize(&mtl->materials, nmtls + 1))
- return AW_MEMORY_ERROR;
+ res = darray_material_resize(&mtl->materials, nmtls + 1);
+ if(res != R_OK)
+ return res;
mtl->newmtl = darray_material_data_get(&mtl->materials) + nmtls;
res = parse_name(&mtl->newmtl->name, word, word_tk);
- if(res != AW_OK) {
+ if(res != R_OK) {
darray_material_pop_back(&mtl->materials);
mtl->newmtl = NULL;
- return AW_MEMORY_ERROR;
+ return res;
}
- return AW_OK;
+ return R_OK;
}
-static enum aw_result
+static res_T
parse_color(struct aw_color* col, char** word_tk)
{
char* word;
- enum aw_result res = AW_OK;
+ res_T res = R_OK;
ASSERT(col && word_tk);
word = strtok_r(NULL, " \t", word_tk);
if(!word)
- return AW_BAD_ARGUMENT;
+ return R_BAD_ARG;
if(!strcmp(word, "spectral")) {
fprintf(stderr, "spectral colors are not supported\n");
- return AW_BAD_ARGUMENT;
+ return R_BAD_ARG;
}
col->color_space = strcmp(word, "xyz") == 0 ? AW_COLOR_XYZ : AW_COLOR_RGB;
if(col->color_space == AW_COLOR_XYZ
&& !(word = strtok_r(NULL, " \t", word_tk)))
- return AW_BAD_ARGUMENT;
+ return R_BAD_ARG;
- if(AW_OK != (res = string_to_float(word, &col->value[0])))
+ if(R_OK != (res = string_to_float(word, &col->value[0])))
return res;
/* If only the first component is defined the second and third components are
@@ -286,32 +289,32 @@ parse_color(struct aw_color* col, char** word_tk)
if(!word) {
col->value[1] = col->value[2] = col->value[0];
} else {
- if(AW_OK != (res = string_to_float(word, &col->value[1])))
+ if(R_OK != (res = string_to_float(word, &col->value[1])))
return res;
word = strtok_r(NULL, " \t", word_tk);
- if(AW_OK != (res = string_to_float(word, &col->value[2])))
+ if(R_OK != (res = string_to_float(word, &col->value[2])))
return res;
}
- return AW_OK;
+ return R_OK;
}
-static INLINE enum aw_result
+static INLINE res_T
parse_size_t
(size_t* s, const size_t range_min, const size_t range_max, char** word_tk)
{
char* word;
- enum aw_result res = AW_OK;
+ res_T res = R_OK;
ASSERT(s && word_tk && range_min < range_max);
word = strtok_r(NULL, "\n", word_tk);
- if(AW_OK != (res = string_to_size_t(word, s)))
+ if(R_OK != (res = string_to_size_t(word, s)))
return res;
if(range_min > *s || range_max < *s)
- return AW_BAD_ARGUMENT;
- return AW_OK;
+ return R_BAD_ARG;
+ return R_OK;
}
-static enum aw_result
+static res_T
parse_bool_option
(int* options_mask,
const enum aw_map_flag option,
@@ -321,23 +324,23 @@ parse_bool_option
ASSERT(options_mask && tk_ctxt);
word = strtok_r(NULL, " \t", tk_ctxt);
if(!word)
- return AW_BAD_ARGUMENT;
+ return R_BAD_ARG;
if(strcmp(word, "on") == 0) {
*options_mask |= (int)option;
} else if(strcmp(word, "off") != 0) {
- return AW_BAD_ARGUMENT;
+ return R_BAD_ARG;
}
- return AW_OK;
+ return R_OK;
}
-static FINLINE enum aw_result
+static FINLINE res_T
parse_imfchan_option(enum aw_map_channel* channel, char** tk_ctxt)
{
char* word;
ASSERT(channel && tk_ctxt);
word = strtok_r(NULL, " \t", tk_ctxt);
if(!word)
- return AW_BAD_ARGUMENT;
+ return R_BAD_ARG;
if(!strcmp(word, "r")) {
*channel = AW_MAP_CHANNEL_RED;
} else if(!strcmp(word, "g")) {
@@ -351,12 +354,12 @@ parse_imfchan_option(enum aw_map_channel* channel, char** tk_ctxt)
} else if(!strcmp(word, "z")) {
*channel = AW_MAP_CHANNEL_DEPTH;
} else {
- return AW_BAD_ARGUMENT;
+ return R_BAD_ARG;
}
- return AW_OK;
+ return R_OK;
}
-static enum aw_result
+static res_T
parse_map
(struct aw_map* map,
const enum map_type type,
@@ -367,7 +370,7 @@ parse_map
word = strtok_r(NULL, " \t", tk_ctxt);
while(word) {
- enum aw_result res;
+ res_T res;
if(!strcmp(word, "-blendu")) {
res = parse_bool_option(&map->options_mask, AW_MAP_BLEND_U, tk_ctxt);
@@ -383,7 +386,7 @@ parse_map
} else if(!strcmp(word, "-mm")) { /* Image bias and scale */
res = parse_floatX
(&map->image_bias, 1, 1, -FLT_MAX, FLT_MAX, 0.f, tk_ctxt);
- if(res == AW_OK) {
+ if(res == R_OK) {
res = parse_floatX
(&map->image_scale, 1, 1, -FLT_MAX, FLT_MAX, 0.f, tk_ctxt);
}
@@ -406,17 +409,17 @@ parse_map
mem_free(map->filename);
res = parse_name(&map->filename, word, tk_ctxt);
}
- if(res != AW_OK)
+ if(res != R_OK)
return res;
word = strtok_r(NULL, " \t", tk_ctxt);
}
- return AW_OK;
+ return R_OK;
}
-static enum aw_result
+static res_T
parse_mtl_line(struct aw_mtl* mtl, char* line)
{
- enum aw_result res = AW_OK;
+ res_T res = R_OK;
char* word, *word_tk;
ASSERT(mtl && line);
@@ -425,7 +428,7 @@ parse_mtl_line(struct aw_mtl* mtl, char* line)
if(!strcmp(word, "newmtl")) { /* Material name declaration */
res = parse_newmtl(mtl, &word_tk);
} else if(mtl->newmtl == NULL) {
- res = AW_BAD_ARGUMENT;
+ res = R_BAD_ARG;
} else if(!strcmp(word, "Ka")) { /* Ambient reflectivity */
res = parse_color(&mtl->newmtl->ambient, &word_tk);
} else if(!strcmp(word, "Kd")) { /* Diffuse reflectivity */
@@ -454,17 +457,17 @@ parse_mtl_line(struct aw_mtl* mtl, char* line)
} else if(!strcmp(word, "bump")) { /* Bump map */
res = parse_map(&mtl->newmtl->bump_map, MAP_BUMP, &word_tk);
} else {
- res = AW_OK;
+ res = R_OK;
fprintf(stderr, "%s:%lu: warning: ignored or malformed directive %s\n",
mtl->filename, (unsigned long)mtl->iline, word);
while((word = strtok_r(NULL, " \t", &word_tk)));
}
- if(res != AW_OK)
+ if(res != R_OK)
goto error;
if((word = strtok_r(NULL, " ", &word_tk))) {
fprintf(stderr, "%s:%lu: unexpected directive %s\n",
mtl->filename, (unsigned long)mtl->iline, word);
- res = AW_BAD_ARGUMENT;
+ res = R_BAD_ARG;
goto error;
}
}
@@ -496,23 +499,23 @@ mtl_release(ref_T* ref)
/*******************************************************************************
* Exported functions
******************************************************************************/
-enum aw_result
+res_T
aw_mtl_create
(struct mem_allocator* mem_allocator,
struct aw_mtl** mtl_out)
{
struct mem_allocator* allocator;
struct aw_mtl* mtl = NULL;
- enum aw_result res = AW_OK;
+ res_T res = R_OK;
if(!mtl_out) {
- res = AW_BAD_ARGUMENT;
+ res = R_BAD_ARG;
goto error;
}
allocator = mem_allocator ? mem_allocator : &mem_default_allocator;
mtl = MEM_CALLOC(allocator, 1, sizeof(struct aw_mtl));
if(!mtl) {
- res = AW_MEMORY_ERROR;
+ res = R_MEM_ERR;
goto error;
}
mtl->allocator = allocator;
@@ -531,38 +534,38 @@ error:
goto exit;
}
-enum aw_result
+res_T
aw_mtl_ref_get(struct aw_mtl* mtl)
{
if(!mtl)
- return AW_BAD_ARGUMENT;
+ return R_BAD_ARG;
ref_get(&mtl->ref);
- return AW_OK;
+ return R_OK;
}
-enum aw_result
+res_T
aw_mtl_ref_put(struct aw_mtl* mtl)
{
if(!mtl)
- return AW_BAD_ARGUMENT;
+ return R_BAD_ARG;
ref_put(&mtl->ref, mtl_release);
- return AW_OK;
+ return R_OK;
}
-enum aw_result
+res_T
aw_mtl_load(struct aw_mtl* mtl, const char* filename)
{
FILE* file;
- enum aw_result res = AW_OK;
+ res_T res = R_OK;
if(!mtl || !filename)
- return AW_BAD_ARGUMENT;
+ return R_BAD_ARG;
mtl->filename = filename;
file = fopen(filename, "r");
if(!file) {
fprintf(stderr, "Error opening `%s'\n", filename);
- return AW_BAD_ARGUMENT;
+ return R_BAD_ARG;
}
res = aw_mtl_load_stream(mtl, file);
@@ -571,24 +574,23 @@ aw_mtl_load(struct aw_mtl* mtl, const char* filename)
return res;
}
-enum aw_result
+res_T
aw_mtl_load_stream(struct aw_mtl* mtl, FILE* stream)
{
char* line;
struct darray_char buf;
const unsigned buf_chunk = 256;
- enum aw_result res = AW_OK;
+ res_T res = R_OK;
if(!mtl || !stream) {
- res = AW_BAD_ARGUMENT;
+ res = R_BAD_ARG;
goto error;
}
darray_char_init(mtl->allocator, &buf);
- if(darray_char_resize(&buf, buf_chunk)) {
- res = AW_MEMORY_ERROR;
+ res = darray_char_resize(&buf, buf_chunk);
+ if(res != R_OK)
goto error;
- }
if(!mtl->filename)
mtl->filename = "stream";
@@ -599,10 +601,9 @@ aw_mtl_load_stream(struct aw_mtl* mtl, FILE* stream)
size_t last_char;
while(!strrchr(line,'\n')) { /* Ensure that the whole line was read */
- if(darray_char_resize(&buf, darray_char_size_get(&buf) + buf_chunk)) {
- res = AW_MEMORY_ERROR;
+ res = darray_char_resize(&buf, darray_char_size_get(&buf) + buf_chunk);
+ if(res != R_OK)
goto error;
- }
line = darray_char_data_get(&buf);
if(!fgets(line + strlen(line), (int)buf_chunk, stream)) /* EOF */
break;
@@ -611,7 +612,7 @@ aw_mtl_load_stream(struct aw_mtl* mtl, FILE* stream)
if(line[last_char] == '\n') /* Remove the newline character */
line[last_char] = '\0';
- if(AW_OK != (res = parse_mtl_line(mtl, line)))
+ if(R_OK != (res = parse_mtl_line(mtl, line)))
goto error;
++mtl->iline;
}
@@ -626,24 +627,24 @@ error:
goto exit;
}
-enum aw_result
+res_T
aw_mtl_materials_count_get(struct aw_mtl* mtl, size_t* nmtls)
{
if(!mtl || !nmtls)
- return AW_BAD_ARGUMENT;
+ return R_BAD_ARG;
*nmtls = darray_material_size_get(&mtl->materials);
- return AW_OK;
+ return R_OK;
}
-enum aw_result
+res_T
aw_mtl_material_get
(struct aw_mtl* mtl,
const size_t imaterial,
const struct aw_material** material)
{
if(!mtl || !material || imaterial>=darray_material_size_get(&mtl->materials))
- return AW_BAD_ARGUMENT;
+ return R_BAD_ARG;
*material = darray_material_cdata_get(&mtl->materials) + imaterial;
- return AW_OK;
+ return R_OK;
}
diff --git a/src/aw_obj.c b/src/aw_obj.c
@@ -56,7 +56,7 @@ named_group_release(struct named_group* grp)
str_release(&grp->name);
}
-static INLINE int
+static INLINE res_T
named_group_copy(struct named_group* dst, const struct named_group* src)
{
ASSERT(dst && src);
@@ -65,7 +65,7 @@ named_group_copy(struct named_group* dst, const struct named_group* src)
return str_copy(&dst->name, &src->name);
}
-static INLINE int
+static INLINE res_T
named_group_copy_and_release(struct named_group* dst, struct named_group* src)
{
ASSERT(dst && src);
@@ -179,7 +179,7 @@ flush_smooth_group(struct aw_obj* obj)
grp->faces_count = nfaces - grp->face_id;
}
-static enum aw_result
+static res_T
parse_floatX_in_darray
(struct darray_float* darray,
const unsigned int count_min,
@@ -187,28 +187,29 @@ parse_floatX_in_darray
const float default_value,
char** tk_ctxt)
{
- enum aw_result res;
+ res_T res;
size_t i;
ASSERT(darray);
i = darray_float_size_get(darray);
- if(darray_float_resize(darray, i + count_max))
- return AW_MEMORY_ERROR;
+ res = darray_float_resize(darray, i + count_max);
+ if(res != R_OK)
+ return res;
res = parse_floatX
(darray_float_data_get(darray) + i,
count_min, count_max, -FLT_MAX, FLT_MAX, default_value, tk_ctxt);
- if(res != AW_OK)
+ if(res != R_OK)
darray_float_resize(darray, i);
return res;
}
-static enum aw_result
+static res_T
parse_face(struct aw_obj* obj, char** word_tk)
{
struct aw_obj_face face;
char* word;
- enum aw_result res = AW_OK;
+ res_T res = R_OK;
ASSERT(obj && word_tk);
face.vertex_id = darray_vertex_size_get(&obj->vertices);
@@ -226,7 +227,7 @@ parse_face(struct aw_obj* obj, char** word_tk)
/* position index */
id_pos = strtok_r(word, "/", &id_tk);
res = string_to_size_t(id_pos, &vert.iposition);
- if(res != AW_OK)
+ if(res != R_OK)
goto error;
--vert.iposition; /* Match C memory layout */
if((id = strtok_r(NULL, "/", &id_tk))) {
@@ -235,32 +236,30 @@ parse_face(struct aw_obj* obj, char** word_tk)
goto error;
if(id == id_pos + 2) { /* `//' separator => No tex */
/* normal index */
- if(AW_OK != (res = string_to_size_t(id, &vert.inormal)))
+ if(R_OK != (res = string_to_size_t(id, &vert.inormal)))
goto error;
--vert.inormal; /* Match C memory layout */
} else {
/* texcoord index */
- if(AW_OK != (res = string_to_size_t(id, &vert.itexcoord)))
+ if(R_OK != (res = string_to_size_t(id, &vert.itexcoord)))
goto error;
--vert.itexcoord; /* Match C memory latout */
/* normal index */
if((id = strtok_r(NULL, "/", &id_tk))) {
- if(AW_OK != (res = string_to_size_t(id, &vert.inormal)))
+ if(R_OK != (res = string_to_size_t(id, &vert.inormal)))
goto error;
--vert.inormal; /* Match C memory layout */
}
}
}
- if(darray_vertex_push_back(&obj->vertices, &vert)) {
- res = AW_MEMORY_ERROR;
+ res = darray_vertex_push_back(&obj->vertices, &vert);
+ if(res != R_OK)
goto error;
- }
++face.vertices_count;
}
- if(darray_face_push_back(&obj->faces, &face)) {
- res = AW_MEMORY_ERROR;
+ res = darray_face_push_back(&obj->faces, &face);
+ if(res != R_OK)
goto error;
- }
exit:
return res;
@@ -270,36 +269,33 @@ error:
goto exit;
}
-static enum aw_result
+static res_T
parse_group(struct aw_obj* obj, char** word_tk)
{
char* word;
size_t ngrps = 0, igrp = 0;
- enum aw_result res = AW_OK;
+ res_T res = R_OK;
ASSERT(obj && word_tk);
flush_groups(obj);
word = strtok_r(NULL, " \t", word_tk);
if(!word) {
- res = AW_BAD_ARGUMENT;
+ res = R_BAD_ARG;
goto error;
}
- #define CALL(Func) { if(Func) { res = AW_MEMORY_ERROR; goto error; } }(void)0
ngrps = igrp = darray_named_group_size_get(&obj->groups);
obj->igroups_active = ngrps;
do {
struct named_group* grp = NULL;
- if(darray_named_group_resize(&obj->groups, igrp + 1)) {
- res = AW_MEMORY_ERROR;
+ res = darray_named_group_resize(&obj->groups, igrp + 1);
+ if(res != R_OK)
goto error;
- }
grp = darray_named_group_data_get(&obj->groups) + ngrps;
++igrp;
- if(str_set(&grp->name, word)) {
- res = AW_MEMORY_ERROR;
+ res = str_set(&grp->name, word);
+ if(res != R_OK)
goto error;
- }
grp->iface = darray_face_size_get(&obj->faces);
grp->nfaces = 0;
} while((word = strtok_r(NULL, " \t", word_tk)));
@@ -308,16 +304,16 @@ exit:
return res;
error:
if(igrp != ngrps)
- CHECK(darray_named_group_resize(&obj->groups, ngrps), 0);
+ CHECK(darray_named_group_resize(&obj->groups, ngrps), R_OK);
goto exit;
}
-static enum aw_result
+static res_T
parse_smooth_group(struct aw_obj* obj, char** word_tk)
{
char* word;
struct aw_obj_smooth_group grp;
- enum aw_result res;
+ res_T res;
size_t i;
ASSERT(obj && word_tk);
@@ -330,83 +326,80 @@ parse_smooth_group(struct aw_obj* obj, char** word_tk)
grp.is_smoothed = 1;
} else {
res = string_to_size_t(word, &i);
- if(res != AW_OK)
+ if(res != R_OK)
return res;
grp.is_smoothed = i != 0;
}
grp.face_id = darray_face_size_get(&obj->faces);
grp.faces_count = 0;
- if(darray_smooth_group_push_back(&obj->smooth_groups, &grp))
- return AW_MEMORY_ERROR;
+ res = darray_smooth_group_push_back(&obj->smooth_groups, &grp);
+ if(res != R_OK)
+ return res;
- return AW_OK;
+ return R_OK;
}
-static enum aw_result
+static res_T
parse_mtllib(struct aw_obj* obj, char** word_tk)
{
char* word;
size_t imtllib = 0;
size_t nmtllibs = 0;
- enum aw_result res = AW_OK;
+ res_T res = R_OK;
ASSERT(obj && word_tk);
word = strtok_r(NULL, " \t", word_tk);
if(!word) {
- res = AW_BAD_ARGUMENT;
+ res = R_BAD_ARG;
goto error;
}
nmtllibs = imtllib = darray_mtllib_size_get(&obj->mtllibs);
do {
struct str* str;
- if(darray_mtllib_resize(&obj->mtllibs, imtllib + 1)) {
- res = AW_MEMORY_ERROR;
+ res = darray_mtllib_resize(&obj->mtllibs, imtllib + 1);
+ if(res != R_OK)
goto error;
- }
str = darray_mtllib_data_get(&obj->mtllibs) + imtllib;
++imtllib;
- if(str_set(str, word)) {
- res = AW_MEMORY_ERROR;
+ res = str_set(str, word);
+ if(res != R_OK)
goto error;
- }
} while((word = strtok_r(NULL, " \t", word_tk)));
exit:
return res;
error:
if(imtllib != nmtllibs)
- CHECK(darray_mtllib_resize(&obj->mtllibs, nmtllibs), 0);
+ CHECK(darray_mtllib_resize(&obj->mtllibs, nmtllibs), R_OK);
goto exit;
}
-static enum aw_result
+static res_T
parse_usemtl(struct aw_obj* obj, char** word_tk)
{
char* word;
struct named_group* mtl = NULL;
size_t nmtls;
- enum aw_result res = AW_OK;
+ res_T res = R_OK;
ASSERT(obj && word_tk);
flush_usemtl(obj);
word= strtok_r(NULL, " \t", word_tk);
if(!word_tk) {
- res = AW_BAD_ARGUMENT;
+ res = R_BAD_ARG;
goto error;
}
nmtls = darray_named_group_size_get(&obj->usemtls);
- if(darray_named_group_resize(&obj->usemtls, nmtls + 1)) {
- res = AW_MEMORY_ERROR;
+ res = darray_named_group_resize(&obj->usemtls, nmtls + 1);
+ if(res != R_OK)
goto error;
- }
mtl = darray_named_group_data_get(&obj->usemtls) + nmtls;
- if(str_set(&mtl->name, word)) {
- res = AW_MEMORY_ERROR;
+ res = str_set(&mtl->name, word);
+ if(res != R_OK)
goto error;
- }
mtl->iface = darray_face_size_get(&obj->faces);
mtl->nfaces = 0;
@@ -418,11 +411,11 @@ error:
goto exit;
}
-static enum aw_result
+static res_T
parse_obj_line(struct aw_obj* obj, char* line)
{
char* word, *word_tk;
- enum aw_result res = AW_OK;
+ res_T res = R_OK;
ASSERT(obj && line);
word = strtok_r(line, " \t", &word_tk);
@@ -446,23 +439,23 @@ parse_obj_line(struct aw_obj* obj, char* line)
} else if(!strcmp(word, "usemtl")) { /* Use the mtl library */
res = parse_usemtl(obj, &word_tk);
} else {
- res = AW_OK;
+ res = R_OK;
fprintf(stderr, "%s:%lu: warning: ignored or malformed directive %s",
obj->filename, (unsigned long)obj->iline, word);
}
- if(res != AW_OK)
+ if(res != R_OK)
goto error;
if((word = strtok_r(NULL, " ", &word_tk))) {
fprintf(stderr, "%s:%lu: unexpected directive %s\n",
obj->filename, (unsigned long)obj->iline, word);
- res = AW_BAD_ARGUMENT;
+ res = R_BAD_ARG;
goto error;
}
}
exit:
return res;
error:
- fprintf(stderr, "%s:%lu: error: parsing failed\n",
+ fprintf(stderr, "%s:%lu: error: parsing failed\n",
obj->filename, (unsigned long)obj->iline);
goto exit;
}
@@ -503,23 +496,23 @@ obj_release(ref_T* ref)
/*******************************************************************************
* Exported functions
******************************************************************************/
-enum aw_result
+res_T
aw_obj_create
(struct mem_allocator* mem_allocator,
struct aw_obj** obj_out)
{
struct mem_allocator* allocator;
struct aw_obj* obj = NULL;
- enum aw_result res = AW_OK;
+ res_T res = R_OK;
if(!obj_out) {
- res = AW_BAD_ARGUMENT;
+ res = R_BAD_ARG;
goto error;
}
allocator = mem_allocator ? mem_allocator : &mem_default_allocator;
obj = MEM_CALLOC(allocator, 1, sizeof(struct aw_obj));
if(!obj) {
- res = AW_MEMORY_ERROR;
+ res = R_MEM_ERR;
goto error;
}
obj->allocator = allocator;
@@ -546,38 +539,38 @@ error:
goto exit;
}
-enum aw_result
+res_T
aw_obj_ref_get(struct aw_obj* obj)
{
if(!obj)
- return AW_BAD_ARGUMENT;
+ return R_BAD_ARG;
ref_get(&obj->ref);
- return AW_OK;
+ return R_OK;
}
-enum aw_result
+res_T
aw_obj_ref_put(struct aw_obj* obj)
{
if(!obj)
- return AW_BAD_ARGUMENT;
+ return R_BAD_ARG;
ref_put(&obj->ref, obj_release);
- return AW_OK;
+ return R_OK;
}
-enum aw_result
+res_T
aw_obj_load(struct aw_obj* obj, const char* filename)
{
FILE* file;
- enum aw_result res = AW_OK;
+ res_T res = R_OK;
if(!obj || !filename)
- return AW_BAD_ARGUMENT;
+ return R_BAD_ARG;
obj->filename = filename;
file = fopen(filename, "r");
if(!file) {
fprintf(stderr, "Error opening `%s'\n", filename);
- return AW_BAD_ARGUMENT;
+ return R_BAD_ARG;
}
res = aw_obj_load_stream(obj, file);
@@ -586,24 +579,23 @@ aw_obj_load(struct aw_obj* obj, const char* filename)
return res;
}
-enum aw_result
+res_T
aw_obj_load_stream(struct aw_obj* obj, FILE* stream)
{
char* line;
struct darray_char buf;
const unsigned buf_chunk = 256;
- enum aw_result res = AW_OK;
+ res_T res = R_OK;
if(!obj || !stream) {
- res = AW_BAD_ARGUMENT;
+ res = R_BAD_ARG;
goto error;
}
darray_char_init(obj->allocator, &buf);
- if(darray_char_resize(&buf, buf_chunk)) {
- res = AW_MEMORY_ERROR;
+ res = darray_char_resize(&buf, buf_chunk);
+ if(res != R_OK)
goto error;
- }
if(!obj->filename)
obj->filename = "stream";
@@ -614,10 +606,10 @@ aw_obj_load_stream(struct aw_obj* obj, FILE* stream)
size_t last_char;
while(!strrchr(line,'\n')) { /* Ensure that the whole line was read */
- if(darray_char_resize(&buf, darray_char_size_get(&buf) + buf_chunk)) {
- res = AW_MEMORY_ERROR;
+ res = darray_char_resize(&buf, darray_char_size_get(&buf) + buf_chunk);
+ if(res != R_OK)
goto error;
- }
+
line = darray_char_data_get(&buf);
if(!fgets(line + strlen(line), (int)buf_chunk, stream)) /* EOF */
break;
@@ -626,7 +618,7 @@ aw_obj_load_stream(struct aw_obj* obj, FILE* stream)
if(line[last_char] == '\n') /* Remove the newline character */
line[last_char] = '\0';
- if(AW_OK != (res = parse_obj_line(obj, line)))
+ if(R_OK != (res = parse_obj_line(obj, line)))
goto error;
++obj->iline;
}
@@ -645,44 +637,44 @@ error:
}
-enum aw_result
+res_T
aw_obj_desc_get(struct aw_obj* obj, struct aw_obj_desc* desc)
{
if(!obj || !desc)
- return AW_BAD_ARGUMENT;
+ return R_BAD_ARG;
desc->faces_count = darray_face_size_get(&obj->faces);
desc->groups_count = darray_named_group_size_get(&obj->groups);
desc->smooth_groups_count = darray_smooth_group_size_get(&obj->smooth_groups);
desc->usemtls_count = darray_named_group_size_get(&obj->usemtls);
desc->mtllibs_count = darray_mtllib_size_get(&obj->mtllibs);
- return AW_OK;
+ return R_OK;
}
-enum aw_result
+res_T
aw_obj_face_get
(const struct aw_obj* obj, const size_t iface, struct aw_obj_face* face)
{
if(!obj || !face || iface >= darray_face_size_get(&obj->faces))
- return AW_BAD_ARGUMENT;
+ return R_BAD_ARG;
*face = darray_face_cdata_get(&obj->faces)[iface];
- return AW_OK;
+ return R_OK;
}
-enum aw_result
+res_T
aw_obj_group_get
(const struct aw_obj* obj, const size_t igroup, struct aw_obj_group* grp)
{
const struct named_group* group;
if(!obj || !grp || igroup >= darray_named_group_size_get(&obj->groups))
- return AW_BAD_ARGUMENT;
+ return R_BAD_ARG;
group = darray_named_group_cdata_get(&obj->groups) + igroup;
grp->name = str_cget(&group->name);
grp->face_id = group->iface;
grp->faces_count = group->nfaces;
- return AW_OK;
+ return R_OK;
}
-enum aw_result
+res_T
aw_obj_smooth_group_get
(const struct aw_obj* obj,
const size_t ismooth_group,
@@ -690,33 +682,33 @@ aw_obj_smooth_group_get
{
if(!obj || !group
|| ismooth_group >= darray_smooth_group_size_get(&obj->smooth_groups))
- return AW_BAD_ARGUMENT;
+ return R_BAD_ARG;
*group = darray_smooth_group_cdata_get(&obj->smooth_groups)[ismooth_group];
- return AW_OK;
+ return R_OK;
}
-enum aw_result
+res_T
aw_obj_mtl_get
(const struct aw_obj* obj, const size_t imtl, struct aw_obj_mtl* mtl)
{
const struct named_group* group;
if(!obj || !mtl || imtl >= darray_named_group_size_get(&obj->usemtls))
- return AW_BAD_ARGUMENT;
+ return R_BAD_ARG;
group = darray_named_group_cdata_get(&obj->usemtls) + imtl;
mtl->name = str_cget(&group->name);
mtl->face_id = group->iface;
mtl->faces_count = group->nfaces;
- return AW_OK;
+ return R_OK;
}
-enum aw_result
+res_T
aw_obj_vertex_get
(const struct aw_obj* obj, const size_t ivertex, struct aw_obj_vertex* vertex)
{
const struct vertex* vert;
const float* data;
if(!obj || !vertex || ivertex >= darray_vertex_size_get(&obj->vertices))
- return AW_BAD_ARGUMENT;
+ return R_BAD_ARG;
vert = darray_vertex_cdata_get(&obj->vertices) + ivertex;
/* Fetch vertex position */
@@ -737,6 +729,6 @@ aw_obj_vertex_get
data = darray_float_cdata_get(&obj->normals) + vert->inormal * 3;
f3_set(vertex->normal, data);
}
- return AW_OK;
+ return R_OK;
}
diff --git a/src/test_aw_mtl.c b/src/test_aw_mtl.c
@@ -58,26 +58,26 @@ test_common(struct aw_mtl* mtl)
fwrite(mtl_common, sizeof(char), strlen(mtl_common), file);
fclose(file);
- CHECK(aw_mtl_load(NULL, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_mtl_load(mtl, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_mtl_load(NULL, "test_mtl_common.mtl"), AW_BAD_ARGUMENT);
- CHECK(aw_mtl_load(mtl, "test_mtl_common.mtl"), AW_OK);
+ CHECK(aw_mtl_load(NULL, NULL), R_BAD_ARG);
+ CHECK(aw_mtl_load(mtl, NULL), R_BAD_ARG);
+ CHECK(aw_mtl_load(NULL, "test_mtl_common.mtl"), R_BAD_ARG);
+ CHECK(aw_mtl_load(mtl, "test_mtl_common.mtl"), R_OK);
- CHECK(aw_mtl_materials_count_get(NULL, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_mtl_materials_count_get(mtl, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_mtl_materials_count_get(NULL, &nmtls), AW_BAD_ARGUMENT);
- CHECK(aw_mtl_materials_count_get(mtl, &nmtls), AW_OK);
+ CHECK(aw_mtl_materials_count_get(NULL, NULL), R_BAD_ARG);
+ CHECK(aw_mtl_materials_count_get(mtl, NULL), R_BAD_ARG);
+ CHECK(aw_mtl_materials_count_get(NULL, &nmtls), R_BAD_ARG);
+ CHECK(aw_mtl_materials_count_get(mtl, &nmtls), R_OK);
CHECK(nmtls, 1);
- CHECK(aw_mtl_material_get(NULL, SIZE_MAX, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_mtl_material_get(mtl, SIZE_MAX, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_mtl_material_get(NULL, 0, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_mtl_material_get(mtl, 0, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_mtl_material_get(NULL, SIZE_MAX, &mtr), AW_BAD_ARGUMENT);
- CHECK(aw_mtl_material_get(mtl, SIZE_MAX, &mtr), AW_BAD_ARGUMENT);
- CHECK(aw_mtl_material_get(NULL, 0, &mtr), AW_BAD_ARGUMENT);
- CHECK(aw_mtl_material_get(mtl, 0, &mtr), AW_OK);
+ CHECK(aw_mtl_material_get(NULL, SIZE_MAX, NULL), R_BAD_ARG);
+ CHECK(aw_mtl_material_get(mtl, SIZE_MAX, NULL), R_BAD_ARG);
+ CHECK(aw_mtl_material_get(NULL, 0, NULL), R_BAD_ARG);
+ CHECK(aw_mtl_material_get(mtl, 0, NULL), R_BAD_ARG);
+ CHECK(aw_mtl_material_get(NULL, SIZE_MAX, &mtr), R_BAD_ARG);
+ CHECK(aw_mtl_material_get(mtl, SIZE_MAX, &mtr), R_BAD_ARG);
+ CHECK(aw_mtl_material_get(NULL, 0, &mtr), R_BAD_ARG);
+ CHECK(aw_mtl_material_get(mtl, 0, &mtr), R_OK);
CHECK(strcmp(mtr->name, "my_mtl"), 0);
CHECK(mtr->ambient.color_space, AW_COLOR_RGB);
@@ -195,14 +195,14 @@ test_multiple_materials(struct aw_mtl* mtl)
fwrite(mtl_multi, sizeof(char), strlen(mtl_multi), file);
CHECK(fseek(file, 0, SEEK_SET), 0);
- CHECK(aw_mtl_load_stream(NULL, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_mtl_load_stream(mtl, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_mtl_load_stream(NULL, file), AW_BAD_ARGUMENT);
- CHECK(aw_mtl_load_stream(mtl, file), AW_OK);
- CHECK(aw_mtl_materials_count_get(mtl, &nmtls), AW_OK);
+ CHECK(aw_mtl_load_stream(NULL, NULL), R_BAD_ARG);
+ CHECK(aw_mtl_load_stream(mtl, NULL), R_BAD_ARG);
+ CHECK(aw_mtl_load_stream(NULL, file), R_BAD_ARG);
+ CHECK(aw_mtl_load_stream(mtl, file), R_OK);
+ CHECK(aw_mtl_materials_count_get(mtl, &nmtls), R_OK);
CHECK(nmtls, 3);
- CHECK(aw_mtl_material_get(mtl, 0, &mtr), AW_OK);
+ CHECK(aw_mtl_material_get(mtl, 0, &mtr), R_OK);
CHECK(strcmp(mtr->name, "material_0"), 0);
CHECK(mtr->specular_exponent, 8.f);
CHECK(mtr->refraction_index, 1.5f);
@@ -230,7 +230,7 @@ test_multiple_materials(struct aw_mtl* mtl)
CHECK(mtr->specular_exponent_map.filename, NULL);
CHECK(mtr->bump_map.filename, NULL);
- CHECK(aw_mtl_material_get(mtl, 1, &mtr), AW_OK);
+ CHECK(aw_mtl_material_get(mtl, 1, &mtr), R_OK);
CHECK(strcmp(mtr->name, "textured_material"), 0);
CHECK(mtr->specular_exponent, 6.f);
CHECK(mtr->refraction_index, (float)1.7f);
@@ -250,7 +250,7 @@ test_multiple_materials(struct aw_mtl* mtl)
CHECK(mtr->bump_map.bump_multiplier, (float)0.2f);
CHECK(mtr->specular_exponent_map.filename, NULL);
- CHECK(aw_mtl_material_get(mtl, 2, &mtr), AW_OK);
+ CHECK(aw_mtl_material_get(mtl, 2, &mtr), R_OK);
CHECK(strcmp(mtr->name, "hello_world"), 0);
CHECK(mtr->specular_exponent, 8.f);
CHECK(mtr->refraction_index, 1.5f);
@@ -295,8 +295,8 @@ test_unloadable(struct aw_mtl* mtl)
fwrite(mtl0, sizeof(char), strlen(mtl0), file);
fclose(file);
- CHECK(aw_mtl_load(mtl, "mtl0.mtl"), AW_BAD_ARGUMENT);
- CHECK(aw_mtl_materials_count_get(mtl, &nmtls), AW_OK);
+ CHECK(aw_mtl_load(mtl, "mtl0.mtl"), R_BAD_ARG);
+ CHECK(aw_mtl_materials_count_get(mtl, &nmtls), R_OK);
CHECK(nmtls, 0);
}
int
@@ -308,23 +308,23 @@ main(int argc, char** argv)
mem_init_proxy_allocator(&allocator, &mem_default_allocator);
- CHECK(aw_mtl_create(NULL, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_mtl_create(&allocator, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_mtl_create(NULL, &mtl), AW_OK);
+ CHECK(aw_mtl_create(NULL, NULL), R_BAD_ARG);
+ CHECK(aw_mtl_create(&allocator, NULL), R_BAD_ARG);
+ CHECK(aw_mtl_create(NULL, &mtl), R_OK);
- CHECK(aw_mtl_ref_get(NULL), AW_BAD_ARGUMENT);
- CHECK(aw_mtl_ref_get(mtl), AW_OK);
- CHECK(aw_mtl_ref_put(NULL), AW_BAD_ARGUMENT);
- CHECK(aw_mtl_ref_put(mtl), AW_OK);
- CHECK(aw_mtl_ref_put(mtl), AW_OK);
+ CHECK(aw_mtl_ref_get(NULL), R_BAD_ARG);
+ CHECK(aw_mtl_ref_get(mtl), R_OK);
+ CHECK(aw_mtl_ref_put(NULL), R_BAD_ARG);
+ CHECK(aw_mtl_ref_put(mtl), R_OK);
+ CHECK(aw_mtl_ref_put(mtl), R_OK);
- CHECK(aw_mtl_create(&allocator, &mtl), AW_OK);
+ CHECK(aw_mtl_create(&allocator, &mtl), R_OK);
test_common(mtl);
test_multiple_materials(mtl);
test_unloadable(mtl);
- CHECK(aw_mtl_ref_put(mtl), AW_OK);
+ CHECK(aw_mtl_ref_put(mtl), R_OK);
if(MEM_ALLOCATED_SIZE(&allocator)) {
char dump[512];
diff --git a/src/test_aw_obj.c b/src/test_aw_obj.c
@@ -54,66 +54,66 @@ test_plane(struct aw_obj* obj)
fwrite(plane_obj, sizeof(char), strlen(plane_obj), file);
fclose(file);
- CHECK(aw_obj_load(NULL, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_obj_load(obj, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_obj_load(NULL, "test_obj_plane.obj"), AW_BAD_ARGUMENT);
- CHECK(aw_obj_load(obj, "none.obj"), AW_BAD_ARGUMENT);
- CHECK(aw_obj_load(obj, "test_obj_plane.obj"), AW_OK);
-
- CHECK(aw_obj_desc_get(NULL, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_obj_desc_get(obj, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_obj_desc_get(NULL, &desc), AW_BAD_ARGUMENT);
- CHECK(aw_obj_desc_get(obj, &desc), AW_OK);
+ CHECK(aw_obj_load(NULL, NULL), R_BAD_ARG);
+ CHECK(aw_obj_load(obj, NULL), R_BAD_ARG);
+ CHECK(aw_obj_load(NULL, "test_obj_plane.obj"), R_BAD_ARG);
+ CHECK(aw_obj_load(obj, "none.obj"), R_BAD_ARG);
+ CHECK(aw_obj_load(obj, "test_obj_plane.obj"), R_OK);
+
+ CHECK(aw_obj_desc_get(NULL, NULL), R_BAD_ARG);
+ CHECK(aw_obj_desc_get(obj, NULL), R_BAD_ARG);
+ CHECK(aw_obj_desc_get(NULL, &desc), R_BAD_ARG);
+ CHECK(aw_obj_desc_get(obj, &desc), R_OK);
CHECK(desc.faces_count, 1);
CHECK(desc.groups_count, 0);
CHECK(desc.smooth_groups_count, 0);
CHECK(desc.usemtls_count, 1);
CHECK(desc.mtllibs_count, 1);
- CHECK(aw_obj_face_get(NULL, AW_ID_NONE, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_obj_face_get(obj, AW_ID_NONE, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_obj_face_get(NULL, 0, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_obj_face_get(obj, 0, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_obj_face_get(NULL, AW_ID_NONE, &face), AW_BAD_ARGUMENT);
- CHECK(aw_obj_face_get(obj, AW_ID_NONE, &face), AW_BAD_ARGUMENT);
- CHECK(aw_obj_face_get(NULL, 0, &face), AW_BAD_ARGUMENT);
- CHECK(aw_obj_face_get(obj, 0, &face), AW_OK);
+ CHECK(aw_obj_face_get(NULL, AW_ID_NONE, NULL), R_BAD_ARG);
+ CHECK(aw_obj_face_get(obj, AW_ID_NONE, NULL), R_BAD_ARG);
+ CHECK(aw_obj_face_get(NULL, 0, NULL), R_BAD_ARG);
+ CHECK(aw_obj_face_get(obj, 0, NULL), R_BAD_ARG);
+ CHECK(aw_obj_face_get(NULL, AW_ID_NONE, &face), R_BAD_ARG);
+ CHECK(aw_obj_face_get(obj, AW_ID_NONE, &face), R_BAD_ARG);
+ CHECK(aw_obj_face_get(NULL, 0, &face), R_BAD_ARG);
+ CHECK(aw_obj_face_get(obj, 0, &face), R_OK);
CHECK(face.vertex_id, 0);
CHECK(face.vertices_count, 4);
CHECK(face.group_id, AW_ID_NONE);
CHECK(face.smooth_group_id, AW_ID_NONE);
CHECK(face.mtl_id, 0);
- CHECK(aw_obj_mtl_get(NULL, AW_ID_NONE, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_obj_mtl_get(obj, AW_ID_NONE, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_obj_mtl_get(NULL, 0, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_obj_mtl_get(obj, 0, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_obj_mtl_get(NULL, AW_ID_NONE, &mtl), AW_BAD_ARGUMENT);
- CHECK(aw_obj_mtl_get(obj, AW_ID_NONE, &mtl), AW_BAD_ARGUMENT);
- CHECK(aw_obj_mtl_get(NULL, 0, &mtl), AW_BAD_ARGUMENT);
- CHECK(aw_obj_mtl_get(obj, 0, &mtl), AW_OK);
+ CHECK(aw_obj_mtl_get(NULL, AW_ID_NONE, NULL), R_BAD_ARG);
+ CHECK(aw_obj_mtl_get(obj, AW_ID_NONE, NULL), R_BAD_ARG);
+ CHECK(aw_obj_mtl_get(NULL, 0, NULL), R_BAD_ARG);
+ CHECK(aw_obj_mtl_get(obj, 0, NULL), R_BAD_ARG);
+ CHECK(aw_obj_mtl_get(NULL, AW_ID_NONE, &mtl), R_BAD_ARG);
+ CHECK(aw_obj_mtl_get(obj, AW_ID_NONE, &mtl), R_BAD_ARG);
+ CHECK(aw_obj_mtl_get(NULL, 0, &mtl), R_BAD_ARG);
+ CHECK(aw_obj_mtl_get(obj, 0, &mtl), R_OK);
CHECK(strcmp(mtl.name, "wood"), 0);
CHECK(mtl.face_id, 0);
CHECK(mtl.faces_count, 1);
- CHECK(aw_obj_vertex_get(NULL, AW_ID_NONE, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_obj_vertex_get(obj, AW_ID_NONE, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_obj_vertex_get(NULL, 0, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_obj_vertex_get(obj, 0, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_obj_vertex_get(NULL, AW_ID_NONE, &vertex), AW_BAD_ARGUMENT);
- CHECK(aw_obj_vertex_get(obj, AW_ID_NONE, &vertex), AW_BAD_ARGUMENT);
- CHECK(aw_obj_vertex_get(NULL, 0, &vertex), AW_BAD_ARGUMENT);
+ CHECK(aw_obj_vertex_get(NULL, AW_ID_NONE, NULL), R_BAD_ARG);
+ CHECK(aw_obj_vertex_get(obj, AW_ID_NONE, NULL), R_BAD_ARG);
+ CHECK(aw_obj_vertex_get(NULL, 0, NULL), R_BAD_ARG);
+ CHECK(aw_obj_vertex_get(obj, 0, NULL), R_BAD_ARG);
+ CHECK(aw_obj_vertex_get(NULL, AW_ID_NONE, &vertex), R_BAD_ARG);
+ CHECK(aw_obj_vertex_get(obj, AW_ID_NONE, &vertex), R_BAD_ARG);
+ CHECK(aw_obj_vertex_get(NULL, 0, &vertex), R_BAD_ARG);
- CHECK(aw_obj_vertex_get(obj, 0, &vertex), AW_OK);
+ CHECK(aw_obj_vertex_get(obj, 0, &vertex), R_OK);
CHECK(f4_eq(vertex.position, f4(v4, 0.f, 2.f, 0.f, 1.f)), 1);
CHECK(f3_eq(vertex.texcoord, f3(v4, 0.f, 1.f, 0.f)), 1);
- CHECK(aw_obj_vertex_get(obj, 1, &vertex), AW_OK);
+ CHECK(aw_obj_vertex_get(obj, 1, &vertex), R_OK);
CHECK(f4_eq(vertex.position, f4(v4, 0.f, 0.f, 0.f, 1.f)), 1);
CHECK(f3_eq(vertex.texcoord, f3(v4, 0.f, 0.f, 0.f)), 1);
- CHECK(aw_obj_vertex_get(obj, 2, &vertex), AW_OK);
+ CHECK(aw_obj_vertex_get(obj, 2, &vertex), R_OK);
CHECK(f4_eq(vertex.position, f4(v4, 2.f, 0.f, 0.f, 1.f)), 1);
CHECK(f3_eq(vertex.texcoord, f3(v4, 1.f, 0.f, 0.f)), 1);
- CHECK(aw_obj_vertex_get(obj, 3, &vertex), AW_OK);
+ CHECK(aw_obj_vertex_get(obj, 3, &vertex), R_OK);
CHECK(f4_eq(vertex.position, f4(v4, 2.f, 2.f, 0.f, 1.f)), 1);
CHECK(f3_eq(vertex.texcoord, f3(v4, 1.f, 1.f, 0.f)), 1);
}
@@ -158,80 +158,80 @@ test_squares(struct aw_obj* obj)
NCHECK(file, NULL);
fwrite(squares_obj, sizeof(char), strlen(squares_obj), file);
fclose(file);
- CHECK(aw_obj_load(obj, "test_obj_squares.obj"), AW_OK);
+ CHECK(aw_obj_load(obj, "test_obj_squares.obj"), R_OK);
- CHECK(aw_obj_desc_get(obj, &desc), AW_OK);
+ CHECK(aw_obj_desc_get(obj, &desc), R_OK);
CHECK(desc.faces_count, 2);
CHECK(desc.groups_count, 1);
CHECK(desc.smooth_groups_count, 1);
CHECK(desc.usemtls_count, 0);
CHECK(desc.mtllibs_count, 0);
- CHECK(aw_obj_face_get(obj, 0, &face), AW_OK);
+ CHECK(aw_obj_face_get(obj, 0, &face), R_OK);
CHECK(face.vertex_id, 0);
CHECK(face.vertices_count, 4);
CHECK(face.group_id, 0);
CHECK(face.smooth_group_id, 0);
CHECK(face.mtl_id, AW_ID_NONE);
- CHECK(aw_obj_vertex_get(obj, 0, &vertex), AW_OK);
+ CHECK(aw_obj_vertex_get(obj, 0, &vertex), R_OK);
CHECK(f4_eq(vertex.position, f4(v4, 0.f, 2.f, 0.f, 1.f)), 1);
CHECK(f3_eq(vertex.normal, f3(v4, 0.f, 0.f, 1.f)), 1);
- CHECK(aw_obj_vertex_get(obj, 1, &vertex), AW_OK);
+ CHECK(aw_obj_vertex_get(obj, 1, &vertex), R_OK);
CHECK(f4_eq(vertex.position, f4(v4, 0.f, 0.f, 0.f, 1.f)), 1);
CHECK(f3_eq(vertex.normal, f3(v4, 0.f, 0.f, 1.f)), 1);
- CHECK(aw_obj_vertex_get(obj, 2, &vertex), AW_OK);
+ CHECK(aw_obj_vertex_get(obj, 2, &vertex), R_OK);
CHECK(f4_eq(vertex.position, f4(v4, 2.f, 0.f, 0.f, 1.f)), 1);
CHECK(f3_eq(vertex.normal, f3(v4, 0.276597f, 0.f, 0.960986f)), 1);
- CHECK(aw_obj_vertex_get(obj, 3, &vertex), AW_OK);
+ CHECK(aw_obj_vertex_get(obj, 3, &vertex), R_OK);
CHECK(f4_eq(vertex.position, f4(v4, 2.f, 2.f, 0.f, 1.f)), 1);
CHECK(f3_eq(vertex.normal, f3(v4, 0.276597f, 0.f, 0.960986f)), 1);
- CHECK(aw_obj_face_get(obj, 1, &face), AW_OK);
+ CHECK(aw_obj_face_get(obj, 1, &face), R_OK);
CHECK(face.vertex_id, 4);
CHECK(face.vertices_count, 4);
CHECK(face.group_id, 0);
CHECK(face.smooth_group_id, 0);
CHECK(face.mtl_id, AW_ID_NONE);
- CHECK(aw_obj_vertex_get(obj, 4, &vertex), AW_OK);
+ CHECK(aw_obj_vertex_get(obj, 4, &vertex), R_OK);
CHECK(f4_eq(vertex.position, f4(v4, 2.f, 2.f, 0.f, 1.f)), 1);
CHECK(f3_eq(vertex.normal, f3(v4, 0.276597f, 0.f, 0.960986f)), 1);
- CHECK(aw_obj_vertex_get(obj, 5, &vertex), AW_OK);
+ CHECK(aw_obj_vertex_get(obj, 5, &vertex), R_OK);
CHECK(f4_eq(vertex.position, f4(v4, 2.f, 0.f, 0.f, 1.f)), 1);
CHECK(f3_eq(vertex.normal, f3(v4, 0.276597f, 0.f, 0.960986f)), 1);
- CHECK(aw_obj_vertex_get(obj, 6, &vertex), AW_OK);
+ CHECK(aw_obj_vertex_get(obj, 6, &vertex), R_OK);
CHECK(f4_eq(vertex.position, f4(v4, 4.f, 0.f, -1.255298f, 1.f)), 1);
CHECK(f3_eq(vertex.normal, f3(v4, 0.531611f, 0.f, 0.846988f)), 1);
- CHECK(aw_obj_vertex_get(obj, 7, &vertex), AW_OK);
+ CHECK(aw_obj_vertex_get(obj, 7, &vertex), R_OK);
CHECK(f4_eq(vertex.position, f4(v4, 4.f, 2.f, -1.255298f, 1.f)), 1);
CHECK(f3_eq(vertex.normal, f3(v4, 0.531611f, 0.f, 0.846988f)), 1);
- CHECK(aw_obj_group_get(NULL, AW_ID_NONE, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_obj_group_get(obj, AW_ID_NONE, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_obj_group_get(NULL, 0, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_obj_group_get(obj, 0, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_obj_group_get(NULL, AW_ID_NONE, &group), AW_BAD_ARGUMENT);
- CHECK(aw_obj_group_get(obj, AW_ID_NONE, &group), AW_BAD_ARGUMENT);
- CHECK(aw_obj_group_get(NULL, 0, &group), AW_BAD_ARGUMENT);
- CHECK(aw_obj_group_get(obj, 0, &group), AW_OK);
+ CHECK(aw_obj_group_get(NULL, AW_ID_NONE, NULL), R_BAD_ARG);
+ CHECK(aw_obj_group_get(obj, AW_ID_NONE, NULL), R_BAD_ARG);
+ CHECK(aw_obj_group_get(NULL, 0, NULL), R_BAD_ARG);
+ CHECK(aw_obj_group_get(obj, 0, NULL), R_BAD_ARG);
+ CHECK(aw_obj_group_get(NULL, AW_ID_NONE, &group), R_BAD_ARG);
+ CHECK(aw_obj_group_get(obj, AW_ID_NONE, &group), R_BAD_ARG);
+ CHECK(aw_obj_group_get(NULL, 0, &group), R_BAD_ARG);
+ CHECK(aw_obj_group_get(obj, 0, &group), R_OK);
CHECK(strcmp(group.name, "all"), 0);
CHECK(group.face_id, 0);
CHECK(group.faces_count, 2);
- CHECK(aw_obj_smooth_group_get(NULL, AW_ID_NONE, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_obj_smooth_group_get(obj, AW_ID_NONE, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_obj_smooth_group_get(NULL, 0, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_obj_smooth_group_get(obj, 0, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_obj_smooth_group_get(NULL, AW_ID_NONE, &sgroup), AW_BAD_ARGUMENT);
- CHECK(aw_obj_smooth_group_get(obj, AW_ID_NONE, &sgroup), AW_BAD_ARGUMENT);
- CHECK(aw_obj_smooth_group_get(NULL, 0, &sgroup), AW_BAD_ARGUMENT);
- CHECK(aw_obj_smooth_group_get(obj, 0, &sgroup), AW_OK);
+ CHECK(aw_obj_smooth_group_get(NULL, AW_ID_NONE, NULL), R_BAD_ARG);
+ CHECK(aw_obj_smooth_group_get(obj, AW_ID_NONE, NULL), R_BAD_ARG);
+ CHECK(aw_obj_smooth_group_get(NULL, 0, NULL), R_BAD_ARG);
+ CHECK(aw_obj_smooth_group_get(obj, 0, NULL), R_BAD_ARG);
+ CHECK(aw_obj_smooth_group_get(NULL, AW_ID_NONE, &sgroup), R_BAD_ARG);
+ CHECK(aw_obj_smooth_group_get(obj, AW_ID_NONE, &sgroup), R_BAD_ARG);
+ CHECK(aw_obj_smooth_group_get(NULL, 0, &sgroup), R_BAD_ARG);
+ CHECK(aw_obj_smooth_group_get(obj, 0, &sgroup), R_OK);
CHECK(sgroup.is_smoothed, 1);
CHECK(sgroup.face_id, 0);
CHECK(sgroup.faces_count, 2);
- CHECK(aw_obj_mtl_get(obj, 0, &mtl), AW_BAD_ARGUMENT);
+ CHECK(aw_obj_mtl_get(obj, 0, &mtl), R_BAD_ARG);
}
static void
@@ -283,12 +283,12 @@ test_cube(struct aw_obj* obj)
fwrite(cube_obj, sizeof(char), strlen(cube_obj), file);
CHECK(fseek(file, 0, SEEK_SET), 0);
- CHECK(aw_obj_load_stream(NULL, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_obj_load_stream(obj, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_obj_load_stream(NULL, file), AW_BAD_ARGUMENT);
- CHECK(aw_obj_load_stream(obj, file), AW_OK);
+ CHECK(aw_obj_load_stream(NULL, NULL), R_BAD_ARG);
+ CHECK(aw_obj_load_stream(obj, NULL), R_BAD_ARG);
+ CHECK(aw_obj_load_stream(NULL, file), R_BAD_ARG);
+ CHECK(aw_obj_load_stream(obj, file), R_OK);
- CHECK(aw_obj_desc_get(obj, &desc), AW_OK);
+ CHECK(aw_obj_desc_get(obj, &desc), R_OK);
CHECK(desc.faces_count, 6);
CHECK(desc.groups_count, 6);
CHECK(desc.smooth_groups_count, 0);
@@ -297,7 +297,7 @@ test_cube(struct aw_obj* obj)
FOR_EACH(i, 0, 6) {
struct aw_obj_face face;
- CHECK(aw_obj_face_get(obj, i, &face), AW_OK);
+ CHECK(aw_obj_face_get(obj, i, &face), R_OK);
CHECK(face.vertex_id, i*4);
CHECK(face.vertices_count, 4);
CHECK(face.group_id, i);
@@ -307,7 +307,7 @@ test_cube(struct aw_obj* obj)
FOR_EACH(i, 0, 6) {
struct aw_obj_group group;
- CHECK(aw_obj_group_get(obj, i, &group), AW_OK);
+ CHECK(aw_obj_group_get(obj, i, &group), R_OK);
CHECK(strcmp(group.name, group_names[i]), 0);
CHECK(group.face_id, i);
CHECK(group.faces_count, 1);
@@ -315,7 +315,7 @@ test_cube(struct aw_obj* obj)
FOR_EACH(i, 0, 6) {
struct aw_obj_mtl mtl;
- CHECK(aw_obj_mtl_get(obj, i, &mtl), AW_OK);
+ CHECK(aw_obj_mtl_get(obj, i, &mtl), R_OK);
CHECK(strcmp(mtl.name, mtl_names[i]), 0);
CHECK(mtl.face_id, i);
CHECK(mtl.faces_count, 1);
@@ -332,25 +332,25 @@ main(int argc, char** argv)
mem_init_proxy_allocator(&allocator, &mem_default_allocator);
- CHECK(aw_obj_create(NULL, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_obj_create(&allocator, NULL), AW_BAD_ARGUMENT);
- CHECK(aw_obj_create(NULL, &obj), AW_OK);
+ CHECK(aw_obj_create(NULL, NULL), R_BAD_ARG);
+ CHECK(aw_obj_create(&allocator, NULL), R_BAD_ARG);
+ CHECK(aw_obj_create(NULL, &obj), R_OK);
- CHECK(aw_obj_ref_get(NULL), AW_BAD_ARGUMENT);
- CHECK(aw_obj_ref_get(obj), AW_OK);
- CHECK(aw_obj_ref_put(NULL), AW_BAD_ARGUMENT);
- CHECK(aw_obj_ref_put(obj), AW_OK);
- CHECK(aw_obj_ref_put(obj), AW_OK);
+ CHECK(aw_obj_ref_get(NULL), R_BAD_ARG);
+ CHECK(aw_obj_ref_get(obj), R_OK);
+ CHECK(aw_obj_ref_put(NULL), R_BAD_ARG);
+ CHECK(aw_obj_ref_put(obj), R_OK);
+ CHECK(aw_obj_ref_put(obj), R_OK);
- CHECK(aw_obj_create(&allocator, &obj), AW_OK);
+ CHECK(aw_obj_create(&allocator, &obj), R_OK);
test_plane(obj);
test_squares(obj);
test_cube(obj);
FOR_EACH(i, 1, argc)
- CHECK(aw_obj_load(obj, argv[i]), AW_OK);
+ CHECK(aw_obj_load(obj, argv[i]), R_OK);
- CHECK(aw_obj_ref_put(obj), AW_OK);
+ CHECK(aw_obj_ref_put(obj), R_OK);
if(MEM_ALLOCATED_SIZE(&allocator)) {
char dump[512];