58 lines
1.4 KiB
C++
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
|