#define __PIXDATA__

enum {
	PX_NOERR,
	PX_BUFFOVER,
	PX_NOMEMORY,
	PX_ILLID,
	PX_DEAD,
	PX_NOEXIST,
	PX_NOMASK,
	PX_NOPARENT
};


#define PIXDATA_N_MAX 16

typedef struct {
	unsigned char r,g,b;
} PIXEL;

typedef struct {
	int id;
	int x1,y1;
} PARENT;

typedef struct {
	int alive;
	char name[256];
	int lx,ly;
	PIXEL *dat;

	PARENT par;
} PIXDATA;



int PxInitialize();
int PxCreate(int *id,char *name,int lx,int ly);
int PxDestroy(int id);
int PxGetIdByName(int *id,char *name);
int PxGetNameById(char *name,int id);
int PxSetCurrent(int id);
int PxGetCurrent(int *id);
int PxSetOnePix(int x,int y,PIXEL *val);
int PxGetOnePix(PIXEL *val,int x,int y);
int PxSetBlock(int x,int y,int wid,int hei,PIXEL *val);
int PxGetBlock(PIXEL *val,int x,int y,int wid,int hei);
int PxGetResolution(int *wid,int *hei);

int PxGetHistRGB(int *val);
int PxGetHistVaue(int *val);
int PxGetHistSaturation(int *val);
int PxGetHistHue1(int *val);
int PxGetHistHue2(int *val);
int PxGetHistRed(int *val);
int PxGetHistGreen(int *val);
int PxGetHistBlue(int *val);

int PxSetParent(int parId,int x1,int y1);
int PxGetParent(int *parId,int *x1,int *y1);
int PxMakeChild(int *newId,int x1,int y1,int wid,int hei);
int PxBackChild();


int PxCreateMask(int wid,int hei);
int PxPauseMask();
int PxEnableMask();
int PxDestroyMask();
int PxCheckMask();
int PxSetMaskBit(int x,int y);
int PxResetMaskBit(int x,int y);
int PxGetMaskBit(int x,int y);
int PxGetMaskResolution(int *wid,int *hei);
unsigned char *PxGetMaskBitsAddress();
int PxGetMaskPause(int *pause);
int PxSetMaskPause(int pause);


