Translated GIFPlot example to Guile Scheme.

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@740 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Matthias Köppe 2000-08-30 22:32:58 +00:00
commit ce21bf47bf
9 changed files with 191 additions and 0 deletions

View file

@ -0,0 +1,20 @@
TOP = ../../..
SWIG = $(TOP)/../swig
SWIGOPT =
SRCS =
TARGET = simple
INTERFACE = simple.i
LIBS = -L../.. -lgifplot
INCLUDE = -I../../Include
all:: static
static::
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
INCLUDE='$(INCLUDE)' LIBS='$(LIBS)' SWIGOPT='$(SWIGOPT)' \
TARGET='gifguile' INTERFACE='$(INTERFACE)' guile_static
clean::
rm -f *_wrap* *.o *~ *.so gifguile .~* core *.gif

View file

@ -0,0 +1,3 @@
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. Run `gifguile -s runme.scm'.

View file

@ -0,0 +1,26 @@
;; Draw some simple shapes
(display "Drawing some basic shapes\n")
(define cmap (new-ColorMap))
(define f (new-FrameBuffer 400 400))
;; Clear the picture
(FrameBuffer-clear f (BLACK))
;; Make a red box
(FrameBuffer-box f 40 40 200 200 (RED))
;; Make a blue circle
(FrameBuffer-circle f 200 200 40 (BLUE))
;; Make green line
(FrameBuffer-line f 10 390 390 200 (GREEN))
;; Write an image out to disk
(FrameBuffer-writeGIF f cmap "image.gif")
(display "Wrote image.gif\n")
(delete-FrameBuffer f)
(delete-ColorMap cmap)

View file

@ -0,0 +1,34 @@
/* This example shows a very simple interface wrapping a few
primitive declarations */
%module simple
%{
#include "gifplot.h"
%}
typedef unsigned int 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