room101/PICTURE.HPP

58 lines
1.4 KiB
C++

#ifndef __PICTURE_H
#define __PICTURE_H
#include "defs.hpp"
#include "pixel.hpp"
#include "rect.hpp"
#include "memory.hpp"
#define PICTURE_NO_COLOUR_KEY 0x8000
typedef struct
{
Pixel* surface;
Pixel** table;
Pixel** pixels;
Rect rect;
int width;
int height;
int pitch;
int x;
int y;
int lineheight;
Pixel color;
} Picture;
void PictureCreate(Picture*, int, int, Pixel* = NULL, int = 0);
void PictureDelete(Picture*);
void PictureWindow(Picture*, Picture*, int, int, int, int);
void PictureClear(Picture*, int);
void PictureSavePPM(Picture* channel, char* filename);
void PictureRead(Picture*, FILE*);
void PictureWrite(Picture*, FILE*);
void PictureLoad(Picture* dst, char* name);
#define PICTURE_FILL 3
#define PICTURE_COPY 4
#define PICTURE_FX_OR 5
#define PICTURE_BLEND 6
#define PICTURE_ADD 7
void
PictureCopy(
int effect,
Picture* dst, int x1, int y1, int x2, int y2,
Picture* src, int u1, int v1, int u2, int v2,
Picture* zb, Pixel z, Pixel);
void PictureBlitRect(Picture* dst, Rect r, Pixel pixel);
void PictureBlitSprite(Picture*, Picture*, int, int);
void PictureArrayDelete(Picture*);
Picture* PictureArrayCreate(int);
Picture* PictureArrayRead(FILE*);
void PictureArrayWrite(Picture*, FILE*);
#endif