commit 736c73c78fe7ddb9bc30ff3acc754db6ee7d49fc
parent f81164c51be1cdf0c2ca5190235f566aff9a41a4
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Thu, 14 Apr 2016 11:59:21 +0200
Add and test the s3daw_get_s3d_device function
Diffstat:
3 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/src/s3daw.c b/src/s3daw.c
@@ -520,6 +520,14 @@ s3daw_get_loaders(struct s3daw* s3daw, struct aw_obj** obj, struct aw_mtl** mtl)
}
res_T
+s3daw_get_s3d_device(struct s3daw* s3daw, struct s3d_device** s3d)
+{
+ if(!s3daw || !s3d) return RES_BAD_ARG;
+ *s3d = s3daw->s3d;
+ return RES_OK;
+}
+
+res_T
s3daw_load(struct s3daw* s3daw, const char* filename)
{
res_T res;
diff --git a/src/s3daw.h b/src/s3daw.h
@@ -90,6 +90,13 @@ s3daw_get_loaders
struct aw_obj** obj, /* May be NULL <=> Do not get the obj loader */
struct aw_mtl** mtl); /* May be NULL <=> Do not get the mtl loader */
+/* Return the internally used Star-3D device. Note that the reference counter
+ * of device is not incremented. */
+S3DAW_API res_T
+s3daw_get_s3d_device
+ (struct s3daw* s3daw,
+ struct s3d_device** device);
+
S3DAW_API res_T
s3daw_load
(struct s3daw* s3daw,
diff --git a/src/test_s3daw.c b/src/test_s3daw.c
@@ -195,6 +195,7 @@ main(int argc, char** argv)
struct aw_obj* aw_obj;
struct s3daw* s3daw;
struct s3d_device* s3d;
+ struct s3d_device* s3d_tmp;
(void)argc, (void)argv;
mem_init_proxy_allocator(&allocator_proxy, &mem_default_allocator);
@@ -230,6 +231,12 @@ main(int argc, char** argv)
CHECK(s3daw_get_loaders(NULL, &aw_obj, &aw_mtl), RES_BAD_ARG);
CHECK(s3daw_get_loaders(s3daw, &aw_obj, &aw_mtl), RES_OK);
+ CHECK(s3daw_get_s3d_device(NULL, NULL), RES_BAD_ARG);
+ CHECK(s3daw_get_s3d_device(s3daw, NULL), RES_BAD_ARG);
+ CHECK(s3daw_get_s3d_device(NULL, &s3d_tmp), RES_BAD_ARG);
+ CHECK(s3daw_get_s3d_device(s3daw, &s3d_tmp), RES_OK);
+ CHECK(s3d_tmp, s3d);
+
test_cbox(s3daw);
CHECK(s3daw_ref_put(s3daw), RES_OK);