summaryrefslogtreecommitdiff
path: root/Examples/GIFPlot/Java/simple
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/GIFPlot/Java/simple')
-rw-r--r--Examples/GIFPlot/Java/simple/Makefile21
-rw-r--r--Examples/GIFPlot/Java/simple/README5
-rw-r--r--Examples/GIFPlot/Java/simple/runme.java41
-rw-r--r--Examples/GIFPlot/Java/simple/simple.i38
4 files changed, 105 insertions, 0 deletions
diff --git a/Examples/GIFPlot/Java/simple/Makefile b/Examples/GIFPlot/Java/simple/Makefile
new file mode 100644
index 0000000..d707fd4
--- /dev/null
+++ b/Examples/GIFPlot/Java/simple/Makefile
@@ -0,0 +1,21 @@
+TOP = ../../..
+SWIG = $(TOP)/../swig
+SWIGOPT = -noproxy
+SRCS =
+TARGET = simple
+INTERFACE = simple.i
+LIBS = -L../.. -lgifplot
+INCLUDES = -I../../Include
+
+all::
+ $(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
+ INCLUDES='$(INCLUDES)' LIBS='$(LIBS)' SWIGOPT='$(SWIGOPT)' \
+ TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' java
+ javac *.java
+
+
+clean::
+ $(MAKE) -f $(TOP)/Makefile java_clean
+ rm -f *.gif
+
+check: all
diff --git a/Examples/GIFPlot/Java/simple/README b/Examples/GIFPlot/Java/simple/README
new file mode 100644
index 0000000..13ff496
--- /dev/null
+++ b/Examples/GIFPlot/Java/simple/README
@@ -0,0 +1,5 @@
+This is a very minimalistic example in which just a few functions
+and constants from library are wrapped and used to draw some simple
+shapes. After doing a make, run the java program, ie 'java runme'.
+
+
diff --git a/Examples/GIFPlot/Java/simple/runme.java b/Examples/GIFPlot/Java/simple/runme.java
new file mode 100644
index 0000000..2d8d2bb
--- /dev/null
+++ b/Examples/GIFPlot/Java/simple/runme.java
@@ -0,0 +1,41 @@
+
+public class runme {
+
+ static {
+ try {
+ System.loadLibrary("simple");
+ } catch (UnsatisfiedLinkError e) {
+ System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e);
+ System.exit(1);
+ }
+ }
+
+ public static void main(String argv[]) {
+
+ // Draw some simple shapes
+ System.out.println( "Drawing some basic shapes" );
+
+ SWIGTYPE_p_ColorMap cmap = simple.new_ColorMap(null);
+ SWIGTYPE_p_FrameBuffer f = simple.new_FrameBuffer(400,400);
+
+ // Clear the picture
+ simple.FrameBuffer_clear(f,(short)simple.BLACK);
+
+ // Make a red box
+ simple.FrameBuffer_box(f,40,40,200,200,(short)simple.RED);
+
+ // Make a blue circle
+ simple.FrameBuffer_circle(f,200,200,40,(short)simple.BLUE);
+
+ // Make green line
+ simple.FrameBuffer_line(f,10,390,390,200, (short)simple.GREEN);
+
+ // Write an image out to disk
+
+ simple.FrameBuffer_writeGIF(f,cmap,"image.gif");
+ System.out.println( "Wrote image.gif" );
+
+ simple.delete_FrameBuffer(f);
+ simple.delete_ColorMap(cmap);
+ }
+}
diff --git a/Examples/GIFPlot/Java/simple/simple.i b/Examples/GIFPlot/Java/simple/simple.i
new file mode 100644
index 0000000..457bc4c
--- /dev/null
+++ b/Examples/GIFPlot/Java/simple/simple.i
@@ -0,0 +1,38 @@
+/* This example shows a very simple interface wrapping a few
+ primitive declarations */
+
+%module simple
+%{
+#include "gifplot.h"
+%}
+
+typedef unsigned char Pixel;
+
+/* Here are a few useful functions */
+
+ColorMap *new_ColorMap(char *filename = 0);
+void delete_ColorMap(ColorMap *cmap);
+
+FrameBuffer *new_FrameBuffer(unsigned int width, unsigned int height);
+void delete_FrameBuffer(FrameBuffer *frame);
+void FrameBuffer_clear(FrameBuffer *frame, Pixel color);
+void FrameBuffer_line(FrameBuffer *frame, int x1, int y1, int x2, int y2, Pixel color);
+void FrameBuffer_box(FrameBuffer *frame, int x1, int y1, int x2, int y2, Pixel color);
+void FrameBuffer_circle(FrameBuffer *frame, int x1, int y1, int radius, Pixel color);
+int FrameBuffer_writeGIF(FrameBuffer *f, ColorMap *c, char *filename);
+
+/* And some useful constants */
+
+#define BLACK 0
+#define WHITE 1
+#define RED 2
+#define GREEN 3
+#define BLUE 4
+#define YELLOW 5
+#define CYAN 6
+#define MAGENTA 7
+
+
+
+
+