⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 draw.h

📁 在x86平台上运行不可信任代码的sandbox。
💻 H
📖 第 1 页 / 共 2 页
字号:
typedef struct	Cachefont Cachefont;typedef struct	Cacheinfo Cacheinfo;typedef struct	Cachesubf Cachesubf;typedef struct	Display Display;typedef struct	Font Font;typedef struct	Fontchar Fontchar;typedef struct	Image Image;typedef struct	Mouse Mouse;typedef struct	Point Point;typedef struct	Rectangle Rectangle;typedef struct	RGB RGB;typedef struct	Screen Screen;typedef struct	Subfont Subfont;extern	int	Rfmt(Fmt*);extern	int	Pfmt(Fmt*);enum{	DOpaque		= 0xFFFFFFFF,	DTransparent	= 0x00000000,		/* only useful for allocimage, memfillcolor */	DBlack		= 0x000000FF,	DWhite		= 0xFFFFFFFF,	DRed		= 0xFF0000FF,	DGreen		= 0x00FF00FF,	DBlue		= 0x0000FFFF,	DCyan		= 0x00FFFFFF,	DMagenta		= 0xFF00FFFF,	DYellow		= 0xFFFF00FF,	DPaleyellow	= 0xFFFFAAFF,	DDarkyellow	= 0xEEEE9EFF,	DDarkgreen	= 0x448844FF,	DPalegreen	= 0xAAFFAAFF,	DMedgreen	= 0x88CC88FF,	DDarkblue	= 0x000055FF,	DPalebluegreen= 0xAAFFFFFF,	DPaleblue		= 0x0000BBFF,	DBluegreen	= 0x008888FF,	DGreygreen	= 0x55AAAAFF,	DPalegreygreen	= 0x9EEEEEFF,	DYellowgreen	= 0x99994CFF,	DMedblue		= 0x000099FF,	DGreyblue	= 0x005DBBFF,	DPalegreyblue	= 0x4993DDFF,	DPurpleblue	= 0x8888CCFF,	DNotacolor	= 0xFFFFFF00,	DNofill		= DNotacolor,	};enum{	Displaybufsize	= 8000,	ICOSSCALE	= 1024,	Borderwidth =	4,};enum{	/* refresh methods */	Refbackup	= 0,	Refnone		= 1,	Refmesg		= 2};#define	NOREFRESH	((void*)-1)enum{	/* line ends */	Endsquare	= 0,	Enddisc		= 1,	Endarrow	= 2,	Endmask		= 0x1F};#define	ARROW(a, b, c)	(Endarrow|((a)<<5)|((b)<<14)|((c)<<23))typedef enum{	/* Porter-Duff compositing operators */	Clear	= 0,	SinD	= 8,	DinS	= 4,	SoutD	= 2,	DoutS	= 1,	S		= SinD|SoutD,	SoverD	= SinD|SoutD|DoutS,	SatopD	= SinD|DoutS,	SxorD	= SoutD|DoutS,	D		= DinS|DoutS,	DoverS	= DinS|DoutS|SoutD,	DatopS	= DinS|SoutD,	DxorS	= DoutS|SoutD,	/* == SxorD */	Ncomp = 12,} Drawop;/* * image channel descriptors  */enum {	CRed = 0,	CGreen,	CBlue,	CGrey,	CAlpha,	CMap,	CIgnore,	NChan,};#define __DC(type, nbits)	((((type)&15)<<4)|((nbits)&15))#define CHAN1(a,b)	__DC(a,b)#define CHAN2(a,b,c,d)	(CHAN1((a),(b))<<8|__DC((c),(d)))#define CHAN3(a,b,c,d,e,f)	(CHAN2((a),(b),(c),(d))<<8|__DC((e),(f)))#define CHAN4(a,b,c,d,e,f,g,h)	(CHAN3((a),(b),(c),(d),(e),(f))<<8|__DC((g),(h)))#define NBITS(c) ((c)&15)#define TYPE(c) (((c)>>4)&15)enum {	GREY1	= CHAN1(CGrey, 1),	GREY2	= CHAN1(CGrey, 2),	GREY4	= CHAN1(CGrey, 4),	GREY8	= CHAN1(CGrey, 8),	CMAP8	= CHAN1(CMap, 8),	RGB15	= CHAN4(CIgnore, 1, CRed, 5, CGreen, 5, CBlue, 5),	RGB16	= CHAN3(CRed, 5, CGreen, 6, CBlue, 5),	RGB24	= CHAN3(CRed, 8, CGreen, 8, CBlue, 8),	RGBA32	= CHAN4(CRed, 8, CGreen, 8, CBlue, 8, CAlpha, 8),	ARGB32	= CHAN4(CAlpha, 8, CRed, 8, CGreen, 8, CBlue, 8),	/* stupid VGAs */	XRGB32	= CHAN4(CIgnore, 8, CRed, 8, CGreen, 8, CBlue, 8),	BGR24	= CHAN3(CBlue, 8, CGreen, 8, CRed, 8),	ABGR32	= CHAN4(CAlpha, 8, CBlue, 8, CGreen, 8, CRed, 8),	XBGR32	= CHAN4(CIgnore, 8, CBlue, 8, CGreen, 8, CRed, 8),};extern	char*	chantostr(char*, ulong);extern	ulong	strtochan(char*);extern	int		chantodepth(ulong);struct	Point{	int	x;	int	y;};struct Rectangle{	Point	min;	Point	max;};typedef void	(*Reffn)(Image*, Rectangle, void*);struct Screen{	int	id;		/* id of system-held Screen */	Image	*image;		/* unused; for reference only */	Image	*fill;		/* color to paint behind windows */};struct Display{	int		locking;	/*program is using lockdisplay */	int		dirno;	int		fd;	int		reffd;	int		ctlfd;	int		imageid;	int		local;	void		(*error)(Display*, char*);	char		*devdir;	char		*windir;	char		oldlabel[64];	ulong		dataqid;	Image		*white;	Image		*black;	Image		*opaque;	Image		*transparent;	Image		*image;	uchar		*buf;	int		bufsize;	uchar		*bufp;	Font		*defaultfont;	Subfont		*defaultsubfont;	Image		*windows;	Image		*screenimage;	int		_isnewdisplay;};struct Image{	Display		*display;	/* display holding data */	int		id;		/* id of system-held Image */	Rectangle	r;		/* rectangle in data area, local coords */	Rectangle 	clipr;		/* clipping region */	int		depth;		/* number of bits per pixel */	ulong		chan;	int		repl;		/* flag: data replicates to tile clipr */	Screen		*screen;	/* 0 if not a window */	Image		*next;	/* next in list of windows */};struct RGB{	ulong	red;	ulong	green;	ulong	blue;};/* * Subfonts * * given char c, Subfont *f, Fontchar *i, and Point p, one says *	i = f->info+c; *	draw(b, Rect(p.x+i->left, p.y+i->top, *		p.x+i->left+((i+1)->x-i->x), p.y+i->bottom), *		color, f->bits, Pt(i->x, i->top)); *	p.x += i->width; * to draw characters in the specified color (itself an Image) in Image b. */struct	Fontchar{	int		x;		/* left edge of bits */	uchar		top;		/* first non-zero scan-line */	uchar		bottom;		/* last non-zero scan-line + 1 */	char		left;		/* offset of baseline */	uchar		width;		/* width of baseline */};struct	Subfont{	char		*name;	short		n;		/* number of chars in font */	uchar		height;		/* height of image */	char		ascent;		/* top of image to baseline */	Fontchar 	*info;		/* n+1 character descriptors */	Image		*bits;		/* of font */	int		ref;};enum{	/* starting values */	LOG2NFCACHE =	6,	NFCACHE =	(1<<LOG2NFCACHE),	/* #chars cached */	NFLOOK =	5,			/* #chars to scan in cache */	NFSUBF =	2,			/* #subfonts to cache */	/* max value */	MAXFCACHE =	1024+NFLOOK,		/* upper limit */	MAXSUBF =	50,			/* generous upper limit */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -