Blame rfb/rfbregion.h

Packit 9c64f8
#ifndef SRAREGION_H
Packit 9c64f8
#define SRAREGION_H
Packit 9c64f8
Packit 9c64f8
/* -=- SRA - Simple Region Algorithm
Packit 9c64f8
 * A simple rectangular region implementation.
Packit 9c64f8
 * Copyright (c) 2001 James "Wez" Weatherall, Johannes E. Schindelin
Packit 9c64f8
 */
Packit 9c64f8
Packit 9c64f8
/* -=- sraRect */
Packit 9c64f8
Packit 9c64f8
typedef struct _rect {
Packit 9c64f8
	int x1;
Packit 9c64f8
	int y1;
Packit 9c64f8
	int x2;
Packit 9c64f8
	int y2;
Packit 9c64f8
} sraRect;
Packit 9c64f8
Packit 9c64f8
typedef struct sraRegion sraRegion;
Packit 9c64f8
Packit 9c64f8
/* -=- Region manipulation functions */
Packit 9c64f8
Packit 9c64f8
extern sraRegion *sraRgnCreate();
Packit 9c64f8
extern sraRegion *sraRgnCreateRect(int x1, int y1, int x2, int y2);
Packit 9c64f8
extern sraRegion *sraRgnCreateRgn(const sraRegion *src);
Packit 9c64f8
Packit 9c64f8
extern void sraRgnDestroy(sraRegion *rgn);
Packit 9c64f8
extern void sraRgnMakeEmpty(sraRegion *rgn);
Packit 9c64f8
extern rfbBool sraRgnAnd(sraRegion *dst, const sraRegion *src);
Packit 9c64f8
extern void sraRgnOr(sraRegion *dst, const sraRegion *src);
Packit 9c64f8
extern rfbBool sraRgnSubtract(sraRegion *dst, const sraRegion *src);
Packit 9c64f8
Packit 9c64f8
extern void sraRgnOffset(sraRegion *dst, int dx, int dy);
Packit 9c64f8
Packit 9c64f8
extern rfbBool sraRgnPopRect(sraRegion *region, sraRect *rect,
Packit 9c64f8
			  unsigned long flags);
Packit 9c64f8
Packit 9c64f8
extern unsigned long sraRgnCountRects(const sraRegion *rgn);
Packit 9c64f8
extern rfbBool sraRgnEmpty(const sraRegion *rgn);
Packit 9c64f8
Packit 9c64f8
extern sraRegion *sraRgnBBox(const sraRegion *src);
Packit 9c64f8
Packit 9c64f8
/* -=- rectangle iterator */
Packit 9c64f8
Packit 9c64f8
typedef struct sraRectangleIterator {
Packit 9c64f8
  rfbBool reverseX,reverseY;
Packit 9c64f8
  int ptrSize,ptrPos;
Packit 9c64f8
  struct sraSpan** sPtrs;
Packit 9c64f8
} sraRectangleIterator;
Packit 9c64f8
Packit 9c64f8
extern sraRectangleIterator *sraRgnGetIterator(sraRegion *s);
Packit 9c64f8
extern sraRectangleIterator *sraRgnGetReverseIterator(sraRegion *s,rfbBool reverseX,rfbBool reverseY);
Packit 9c64f8
extern rfbBool sraRgnIteratorNext(sraRectangleIterator *i,sraRect *r);
Packit 9c64f8
extern void sraRgnReleaseIterator(sraRectangleIterator *i);
Packit 9c64f8
Packit 9c64f8
void sraRgnPrint(const sraRegion *s);
Packit 9c64f8
Packit 9c64f8
/* -=- Rectangle clipper (for speed) */
Packit 9c64f8
Packit 9c64f8
extern rfbBool sraClipRect(int *x, int *y, int *w, int *h,
Packit 9c64f8
			int cx, int cy, int cw, int ch);
Packit 9c64f8
Packit 9c64f8
extern rfbBool sraClipRect2(int *x, int *y, int *x2, int *y2,
Packit 9c64f8
			int cx, int cy, int cx2, int cy2);
Packit 9c64f8
Packit 9c64f8
#endif