diff --git a/.gitattributes b/.gitattributes index 83ffa0f7aaeee92a316e7f721c1b3602f5b06226..3cd131a70e0c1dec93976c24ce0ed11ba4e4cdea 100644 --- a/.gitattributes +++ b/.gitattributes @@ -180,6 +180,7 @@ testfont binary /src/modules/Image/pattern.c foreign_ident /src/modules/Image/pnm.c foreign_ident /src/modules/Image/polyfill.c foreign_ident +/src/modules/Image/polygon.c foreign_ident /src/modules/Image/togif.c foreign_ident /src/modules/Image/x.c foreign_ident /src/modules/MIME/Makefile.in foreign_ident diff --git a/src/modules/Image/Makefile.in b/src/modules/Image/Makefile.in index 67a5a79716fe3e442a2c3dfc6edf0500c86c6c14..f7e3236fc8561cc2fd5595d74a916c1f648262dd 100644 --- a/src/modules/Image/Makefile.in +++ b/src/modules/Image/Makefile.in @@ -1,9 +1,9 @@ -# $Id: Makefile.in,v 1.14 1998/03/28 14:49:02 grubba Exp $ +# $Id: Makefile.in,v 1.15 1998/04/20 01:42:20 mirar Exp $ SRCDIR=@srcdir@ VPATH=@srcdir@:@srcdir@/../..:../.. OBJS = image.o font.o togif.o matrix.o pnm.o blit.o \ pattern.o dct.o operator.o x.o colortable.o polyfill.o \ - orient.o + orient.o polygon.o MODNAME=image MODULE_SUBDIRS=encodings MODULE_ARCHIVES=encodings/encodings.a diff --git a/src/modules/Image/image.c b/src/modules/Image/image.c index f3f926d29c8d4f0839305dccdda92b3716d20cb5..9c047685f964502c5967e59dfbd6cc5c61c45ba8 100644 --- a/src/modules/Image/image.c +++ b/src/modules/Image/image.c @@ -1,9 +1,9 @@ -/* $Id: image.c,v 1.102 1998/04/18 15:57:20 mirar Exp $ */ +/* $Id: image.c,v 1.103 1998/04/20 01:42:21 mirar Exp $ */ /* **! module Image **! note -**! $Id: image.c,v 1.102 1998/04/18 15:57:20 mirar Exp $ +**! $Id: image.c,v 1.103 1998/04/20 01:42:21 mirar Exp $ **! class image **! **! The main object of the <ref>Image</ref> module, this object @@ -97,7 +97,7 @@ #include "stralloc.h" #include "global.h" -RCSID("$Id: image.c,v 1.102 1998/04/18 15:57:20 mirar Exp $"); +RCSID("$Id: image.c,v 1.103 1998/04/20 01:42:21 mirar Exp $"); #include "pike_macros.h" #include "object.h" #include "constants.h" @@ -111,6 +111,7 @@ RCSID("$Id: image.c,v 1.102 1998/04/18 15:57:20 mirar Exp $"); #include "image.h" #include "colortable.h" +#include "polygon.h" #include "builtin_functions.h" struct program *image_program; @@ -3783,6 +3784,7 @@ void pike_module_init(void) init_font_programs(); init_colortable_programs(); + init_polygon_programs(); add_function("`[]",image_index_magic, "function(string:object)",0); @@ -3802,6 +3804,7 @@ void pike_module_exit(void) } exit_font(); exit_colortable(); + exit_polygon(); exit_image_gif(); exit_image_pnm(); diff --git a/src/modules/Image/polygon.c b/src/modules/Image/polygon.c new file mode 100644 index 0000000000000000000000000000000000000000..0b5d4230195c57b25de1eb679f8cbce6c755d785 --- /dev/null +++ b/src/modules/Image/polygon.c @@ -0,0 +1,104 @@ +#include "global.h" +#include <config.h> + +/* $Id: polygon.c,v 1.1 1998/04/20 01:42:24 mirar Exp $ */ + +/* +**! module Image +**! note +**! $Id: polygon.c,v 1.1 1998/04/20 01:42:24 mirar Exp $ +**! class polygon +**! +**! This object keep polygon information, +**! for quick polygon operations. +**! +**! see also: Image, Image.image, Image.image->polyfill +*/ + +#undef COLORTABLE_DEBUG +#undef COLORTABLE_REDUCE_DEBUG + +RCSID("$Id: polygon.c,v 1.1 1998/04/20 01:42:24 mirar Exp $"); + +#include <math.h> + +#include "config.h" + +#include "stralloc.h" +#include "pike_macros.h" +#include "object.h" +#include "constants.h" +#include "interpret.h" +#include "svalue.h" +#include "array.h" +#include "threads.h" +#include "builtin_functions.h" + +#include "image.h" +#include "polygon.h" +#include "dmalloc.h" + +struct program *image_polygon_program; +extern struct program *image_program; + + +#ifdef THIS +#undef THIS /* Needed for NT */ +#endif +#define THIS ((struct polygon *)(fp->current_storage)) +#define THISOBJ (fp->current_object) + +/***************** init & exit *********************************/ + +static void free_polygon_struct(struct polygon *nct) +{ +} + +static void polygon_init_stuff(struct polygon *nct) +{ +} + +static void init_polygon_struct(struct object *obj) +{ + polygon_init_stuff(THIS); +} + +static void exit_polygon_struct(struct object *obj) +{ + free_polygon_struct(THIS); +} + +/***************** internal stuff ******************************/ + +/***************** called stuff ********************************/ + +static void image_polygon_create(INT32 args) +{ +} + +/***************** global init etc *****************************/ + +void init_polygon_programs(void) +{ + start_new_program(); + add_storage(sizeof(struct polygon)); + + set_init_callback(init_polygon_struct); + set_exit_callback(exit_polygon_struct); + + add_function("create",image_polygon_create, + "function(object|array(int|float) ...:void)",0); + + image_polygon_program=end_program(); + add_program_constant("polygon",image_polygon_program, 0); +} + +void exit_polygon(void) +{ + if(image_polygon_program) + { + free_program(image_polygon_program); + image_polygon_program=0; + } +} + diff --git a/src/modules/Image/polygon.h b/src/modules/Image/polygon.h new file mode 100644 index 0000000000000000000000000000000000000000..dcee2f3af62498163acd093eb52da6246d1a8e1b --- /dev/null +++ b/src/modules/Image/polygon.h @@ -0,0 +1,21 @@ + +#ifdef PCOORD +#undef PCOORD +#endif +#ifdef PFLOAT +#undef PFLOAT +#endif + +#define PCOORD struct polygon_coord +#define PFLOAT double + +struct polygon_coord { PFLOAT x,y; }; + +struct polygon +{ + PCOORD min,max; +}; + + +void init_polygon_programs(void); +void exit_polygon(void);