summaryrefslogtreecommitdiff
path: root/test/screencapture.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/screencapture.c')
-rw-r--r--test/screencapture.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/test/screencapture.c b/test/screencapture.c
new file mode 100644
index 0000000..1ac8d2c
--- /dev/null
+++ b/test/screencapture.c
@@ -0,0 +1,36 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <cd.h>
+#include <cdnative.h>
+#include <im.h>
+
+void main()
+{
+ cdCanvas *cd_canvas;
+ unsigned char *red, *green, *blue;
+ int width, height, size;
+
+ cd_canvas = cdCreateCanvas(CD_NATIVEWINDOW, NULL);
+ if (!cd_canvas)
+ {
+ printf("Error creating canvas.\n");
+ return;
+ }
+
+ cdActivate(cd_canvas);
+
+ cdGetCanvasSize(&width, &height, NULL, NULL);
+ size = width * height;
+ red = (unsigned char*)calloc(size, 1);
+ green = (unsigned char*)calloc(size, 1);
+ blue = (unsigned char*)calloc(size, 1);
+
+ cdGetImageRGB(red, green, blue, 0, 0, width, height);
+ imSaveRGB(width, height, IM_JPG|IM_COMPRESSED, red, green, blue, "scap.jpg");
+
+ cdKillCanvas(cd_canvas);
+
+ free(red);
+ free(green);
+ free(blue);
+}