summaryrefslogtreecommitdiff
path: root/pencil_test.c
diff options
context:
space:
mode:
Diffstat (limited to 'pencil_test.c')
-rw-r--r--pencil_test.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/pencil_test.c b/pencil_test.c
index b1c26d4..19af46b 100644
--- a/pencil_test.c
+++ b/pencil_test.c
@@ -8,10 +8,14 @@
#include <assert.h>
#include <stdio.h>
#include <oslib/osfile.h>
+#include <oslib/osspriteop.h>
#include <rufl.h>
#include "pencil.h"
+#define SPRITE "Resources:$.Resources.Desktop.Sprites"
+
+
static void test_pencil(void);
@@ -43,6 +47,9 @@ void test_pencil(void)
char *drawfile_buffer;
size_t drawfile_size;
os_error *error;
+ fileswitch_object_type obj_type;
+ int size;
+ osspriteop_area *area;
diagram = pencil_create();
if (!diagram) {
@@ -84,6 +91,42 @@ void test_pencil(void)
return;
}
+ error = xosfile_read_no_path(SPRITE, &obj_type, 0, 0, &size, 0);
+ if (error) {
+ printf("xosfile_read_no_path failed: 0x%x: %s\n",
+ error->errnum, error->errmess);
+ return;
+ }
+ if (obj_type != fileswitch_IS_FILE) {
+ printf("File " SPRITE " does not exist\n");
+ return;
+ }
+
+ area = malloc(size + 4);
+ if (!area) {
+ printf("Out of memory\n");
+ return;
+ }
+ area->size = size + 4;
+ area->sprite_count = 0;
+ area->first = 0;
+ area->used = 16;
+
+ error = xosspriteop_load_sprite_file(osspriteop_USER_AREA,
+ area, SPRITE);
+ if (error) {
+ printf("xosspriteop_load_sprite_file failed: 0x%x: %s\n",
+ error->errnum, error->errmess);
+ return;
+ }
+
+ code = pencil_sprite(diagram, 400, 200, 200, 100,
+ ((char *) area) + area->first);
+ if (code != pencil_OK) {
+ printf("pencil_sprite failed: %i\n", code);
+ return;
+ }
+
pencil_dump(diagram);
code = pencil_save_drawfile(diagram, "Pencil-Test",
@@ -101,4 +144,6 @@ void test_pencil(void)
error->errnum, error->errmess);
return;
}
+
+ pencil_free(diagram);
}