Updating built in Io code to use += instead of x = x + y
[io/quag.git] / addons / Image / source / IoImage.h
bloba3b09beffffbd8ff48d75d8c00b31f7f405122a4
1 /*
2 docCopyright("Steve Dekorte", 2002)
3 docLicense("BSD revised")
4 */
6 #ifndef IOIMAGE_DEFINED
7 #define IOIMAGE_DEFINED 1
9 #include "IoImageApi.h"
11 #include "IoObject.h"
12 #include "IoSeq.h"
13 #include "IoSeq.h"
14 #include "Image.h"
16 #define ISIMAGE(self) IoObject_hasCloneFunc_(self, (IoTagCloneFunc *)IoImage_rawClone)
18 typedef IoObject IoImage;
20 typedef struct
22 int width;
23 int height;
24 IoSeq *buffer;
25 Image *image;
26 int textureWidth;
27 int textureHeight;
28 } IoImageData;
30 IOIMAGE_API IoImage *IoImage_proto(void *state);
31 IOIMAGE_API IoImage *IoImage_new(void *state);
32 IOIMAGE_API IoImage *IoImage_newWithPath_(void *state, IoSymbol *path);
33 IOIMAGE_API IoImage *IoImage_rawClone(IoImage *self);
35 IOIMAGE_API void IoImage_free(IoImage *self);
36 IOIMAGE_API void IoImage_mark(IoImage *self);
37 IOIMAGE_API Image *IoImage_image(IoImage *self);
38 IOIMAGE_API Image *IoImage_rawImage(IoImage *self);
40 /* ----------------------------------------------------------- */
41 IOIMAGE_API IoObject *IoImage_setDataWidthHeightComponentCount(IoImage *self, IoObject *locals, IoMessage *m);
43 IOIMAGE_API IoObject *IoImage_path(IoImage *self, IoObject *locals, IoMessage *m);
44 IOIMAGE_API IoObject *IoImage_setPath(IoImage *self, IoObject *locals, IoMessage *m);
46 IOIMAGE_API IoObject *IoImage_open(IoImage *self, IoObject *locals, IoMessage *m);
47 IOIMAGE_API IoObject *IoImage_save(IoImage *self, IoObject *locals, IoMessage *m);
49 IOIMAGE_API IoObject *IoImage_width(IoImage *self, IoObject *locals, IoMessage *m);
50 IOIMAGE_API IoObject *IoImage_height(IoImage *self, IoObject *locals, IoMessage *m);
52 IOIMAGE_API IoObject *IoImage_data(IoImage *self, IoObject *locals, IoMessage *m);
53 IOIMAGE_API IoObject *IoImage_error(IoImage *self, IoObject *locals, IoMessage *m);
55 IOIMAGE_API IoObject *IoImage_buffer(IoImage *self, IoObject *locals, IoMessage *m);
57 IOIMAGE_API IoObject *IoImage_componentCount(IoImage *self, IoObject *locals, IoMessage *m);
58 IOIMAGE_API IoObject *IoImage_isRGB8(IoImage *self, IoObject *locals, IoMessage *m);
59 IOIMAGE_API IoObject *IoImage_isRGBA8(IoImage *self, IoObject *locals, IoMessage *m);
60 IOIMAGE_API IoObject *IoImage_isL8(IoImage *self, IoObject *locals, IoMessage *m);
61 IOIMAGE_API IoObject *IoImage_isLA8(IoImage *self, IoObject *locals, IoMessage *m);
63 IOIMAGE_API IoObject *IoImage_resizedTo(IoImage *self, IoObject *locals, IoMessage *m);
64 IOIMAGE_API IoObject *IoImage_crop(IoImage *self, IoObject *locals, IoMessage *m);
66 /* --- extras -------------------------------------------------------- */
67 IOIMAGE_API IoObject *IoImage_setEncodingQuality(IoImage *self, IoObject *locals, IoMessage *m);
68 IOIMAGE_API IoObject *IoImage_encodingQuality(IoImage *self, IoObject *locals, IoMessage *m);
69 IOIMAGE_API IoObject *IoImage_setDecodingWidthHint(IoImage *self, IoObject *locals, IoMessage *m);
70 IOIMAGE_API IoObject *IoImage_decodingWidthHint(IoImage *self, IoObject *locals, IoMessage *m);
71 IOIMAGE_API IoObject *IoImage_setDecodingHeightHint(IoImage *self, IoObject *locals, IoMessage *m);
72 IOIMAGE_API IoObject *IoImage_decodingHeightHint(IoImage *self, IoObject *locals, IoMessage *m);
74 #endif