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

📄 device.h

📁 ecos下的gui开发源代码
💻 H
📖 第 1 页 / 共 3 页
字号:
	int	pixtype;	/* format of pixel value*/	int	flags;		/* device flags*/	void *	addr;		/* address of memory allocated (memdc or fb)*/	PSD	(*Open)(PSD psd);	void	(*Close)(PSD psd);	void	(*GetScreenInfo)(PSD psd,PMWSCREENINFO psi);	void	(*SetPalette)(PSD psd,int first,int count,MWPALENTRY *pal);	void	(*DrawPixel)(PSD psd,MWCOORD x,MWCOORD y,MWPIXELVAL c);	MWPIXELVAL (*ReadPixel)(PSD psd,MWCOORD x,MWCOORD y);	void	(*DrawHorzLine)(PSD psd,MWCOORD x1,MWCOORD x2,MWCOORD y,			MWPIXELVAL c);	void	(*DrawVertLine)(PSD psd,MWCOORD x,MWCOORD y1,MWCOORD y2,			MWPIXELVAL c);	void	(*FillRect)(PSD psd,MWCOORD x1,MWCOORD y1,MWCOORD x2,MWCOORD y2,			MWPIXELVAL c);	PMWCOREFONT builtin_fonts;	/* *void (*DrawText)(PSD psd,MWCOORD x,MWCOORD y,const MWUCHAR *str,			int count, MWPIXELVAL fg, PMWFONT pfont);***/	void	(*Blit)(PSD destpsd,MWCOORD destx,MWCOORD desty,MWCOORD w,			MWCOORD h,PSD srcpsd,MWCOORD srcx,MWCOORD srcy,long op);	void	(*PreSelect)(PSD psd);	void	(*DrawArea)(PSD psd, driver_gc_t *gc, int op);	int	(*SetIOPermissions)(PSD psd);	PSD	(*AllocateMemGC)(PSD psd);	MWBOOL	(*MapMemGC)(PSD mempsd,MWCOORD w,MWCOORD h,int planes,int bpp,			int linelen,int size,void *addr);	void	(*FreeMemGC)(PSD mempsd);	void	(*StretchBlit)(PSD destpsd,MWCOORD destx,MWCOORD desty,			MWCOORD destw,MWCOORD desth,PSD srcpsd,MWCOORD srcx,			MWCOORD srcy,MWCOORD srcw,MWCOORD srch,long op);	void	(*SetPortrait)(PSD psd,int portraitmode);	int	portrait;	 /* screen portrait mode*/	PSUBDRIVER orgsubdriver; /* original subdriver for portrait modes*/	void 	(*StretchBlitEx) (PSD dstpsd, PSD srcpsd,			MWCOORD dest_x_start, MWCOORD dest_y_start,			MWCOORD width, MWCOORD height,			int x_denominator, int y_denominator,			int src_x_fraction, int src_y_fraction,			int x_step_fraction, int y_step_fraction,			long op);} SCREENDEVICE;/* PSD flags*/#define	PSF_SCREEN		0x0001	/* screen device*/#define PSF_MEMORY		0x0002	/* memory device*/#define PSF_HAVEBLIT		0x0004	/* have bitblit*/#define PSF_HAVEOP_COPY		0x0008	/* psd->DrawArea can do area copy*/#define PSF_ADDRMALLOC		0x0010	/* psd->addr was malloc'd*/#define PSF_ADDRSHAREDMEM	0x0020	/* psd->addr is shared memory*//* Interface to Mouse Device Driver*/typedef struct _mousedevice {	int	(*Open)(struct _mousedevice *);	void	(*Close)(void);	int	(*GetButtonInfo)(void);	void	(*GetDefaultAccel)(int *pscale,int *pthresh);	int	(*Read)(MWCOORD *dx,MWCOORD *dy,MWCOORD *dz,int *bp);	int	(*Poll)(void);	/* not required if have select()*/        int     flags;		/* raw, normal, transform flags*/} MOUSEDEVICE;#define MOUSE_NORMAL		0x0000	/* mouse in normal mode*/#define MOUSE_RAW		0x0001	/* mouse in raw mode*/#define MOUSE_TRANSFORM		0x0002	/* perform transform*//* Interface to Keyboard Device Driver*/typedef struct _kbddevice {	int  (*Open)(struct _kbddevice *pkd);	void (*Close)(void);	void (*GetModifierInfo)(MWKEYMOD *modifiers, MWKEYMOD *curmodifiers);	int  (*Read)(MWKEY *buf,MWKEYMOD *modifiers,MWSCANCODE *scancode);	int  (*Poll)(void);		/* not required if have select()*/} KBDDEVICE;/* Clip areas*/#define CLIP_VISIBLE		0#define CLIP_INVISIBLE		1#define CLIP_PARTIAL		2/* static clip rectangle: drawing allowed if point within rectangle*/typedef struct {	MWCOORD 	x;		/* x coordinate of top left corner */	MWCOORD 	y;		/* y coordinate of top left corner */	MWCOORD 	width;		/* width of rectangle */	MWCOORD 	height;		/* height of rectangle */} MWCLIPRECT;typedef struct {	MWCOORD	width;	MWCOORD	height;	PSD	psd;} MWTILE;#ifndef TRUE#define TRUE			1#endif#ifndef FALSE#define FALSE			0#endif#define	MWMIN(a,b)		((a) < (b) ? (a) : (b))#define	MWMAX(a,b) 		((a) > (b) ? (a) : (b))/* color and palette defines*/#define RGBDEF(r,g,b)	{r, g, b}#define GETPALENTRY(pal,index) ((unsigned long)(pal[index].r |\				(pal[index].g << 8) | (pal[index].b << 16)))/*#define GETPALENTRY(pal,index) ((*(unsigned long *)&pal[index])&0x00ffffff)*/#define REDVALUE(rgb)	((rgb) & 0xff)#define GREENVALUE(rgb) (((rgb) >> 8) & 0xff)#define BLUEVALUE(rgb)	(((rgb) >> 16) & 0xff)/* Truecolor color conversion and extraction macros*//* * Conversion from 8-bit RGB components to MWPIXELVAL *//* create 32 bit 8/8/8/8 format pixel (0xAARRGGBB) from RGB triplet*/#define RGB2PIXEL8888(r,g,b)	\	(0xFF000000UL | ((r) << 16) | ((g) << 8) | (b))/* create 32 bit 8/8/8/8 format pixel (0xAARRGGBB) from ARGB triplet*/#define ARGB2PIXEL8888(a,r,g,b)	\	(((a) << 24) | ((r) << 16) | ((g) << 8) | (b))/* create 24 bit 8/8/8 format pixel (0x00RRGGBB) from RGB triplet*/#define RGB2PIXEL888(r,g,b)	\	(((r) << 16) | ((g) << 8) | (b))/* create 16 bit 5/6/5 format pixel from RGB triplet */#define RGB2PIXEL565(r,g,b)	\	((((r) & 0xf8) << 8) | (((g) & 0xfc) << 3) | (((b) & 0xf8) >> 3))/* create 16 bit 5/5/5 format pixel from RGB triplet */#define RGB2PIXEL555(r,g,b)	\	((((r) & 0xf8) << 7) | (((g) & 0xf8) << 2) | (((b) & 0xf8) >> 3))/* create 8 bit 3/3/2 format pixel from RGB triplet*/#define RGB2PIXEL332(r,g,b)	\	(((r) & 0xe0) | (((g) & 0xe0) >> 3) | (((b) & 0xc0) >> 6))/* * Conversion from MWCOLORVAL to MWPIXELVAL *//* create 32 bit 8/8/8/8 format pixel from ARGB colorval (0xAABBGGRR)*//* In this format, alpha is preserved. */#define COLOR2PIXEL8888(c)	\	((((c) & 0xff) << 16) | ((c) & 0xff00ff00ul) | (((c) & 0xff0000) >> 16))/* create 24 bit 8/8/8 format pixel from RGB colorval (0x00BBGGRR)*//* In this format, alpha is ignored. */#define COLOR2PIXEL888(c)	\	((((c) & 0xff) << 16) | ((c) & 0xff00) | (((c) & 0xff0000) >> 16))/* create 16 bit 5/6/5 format pixel from RGB colorval (0x00BBGGRR)*//* In this format, alpha is ignored. */#define COLOR2PIXEL565(c)	\	((((c) & 0xf8) << 8) | (((c) & 0xfc00) >> 5) | (((c) & 0xf80000) >> 19))/* create 16 bit 5/5/5 format pixel from RGB colorval (0x00BBGGRR)*//* In this format, alpha is ignored. */#define COLOR2PIXEL555(c)	\	((((c) & 0xf8) << 7) | (((c) & 0xf800) >> 6) | (((c) & 0xf80000) >> 19))/* create 8 bit 3/3/2 format pixel from RGB colorval (0x00BBGGRR)*//* In this format, alpha is ignored. */#define COLOR2PIXEL332(c)	\	(((c) & 0xe0) | (((c) & 0xe000) >> 11) | (((c) & 0xc00000) >> 22))/* * Conversion from MWPIXELVAL to red, green or blue components *//* return 8/8/8/8 bit a, r, g or b component of 32 bit pixelval*/#define PIXEL8888ALPHA(pixelval)	(((pixelval) >> 24) & 0xff)#define PIXEL8888RED(pixelval)  	(((pixelval) >> 16) & 0xff)#define PIXEL8888GREEN(pixelval)	(((pixelval) >> 8) & 0xff)#define PIXEL8888BLUE(pixelval) 	((pixelval) & 0xff)/* return 8/8/8 bit r, g or b component of 24 bit pixelval*/#define PIXEL888RED(pixelval)		(((pixelval) >> 16) & 0xff)#define PIXEL888GREEN(pixelval)		(((pixelval) >> 8) & 0xff)#define PIXEL888BLUE(pixelval)		((pixelval) & 0xff)/* return 5/6/5 bit r, g or b component of 16 bit pixelval*/#define PIXEL565RED(pixelval)		(((pixelval) >> 11) & 0x1f)#define PIXEL565GREEN(pixelval)		(((pixelval) >> 5) & 0x3f)#define PIXEL565BLUE(pixelval)		((pixelval) & 0x1f)/* return 5/5/5 bit r, g or b component of 16 bit pixelval*/#define PIXEL555RED(pixelval)		(((pixelval) >> 10) & 0x1f)#define PIXEL555GREEN(pixelval)		(((pixelval) >> 5) & 0x1f)#define PIXEL555BLUE(pixelval)		((pixelval) & 0x1f)/* return 3/3/2 bit r, g or b component of 8 bit pixelval*/#define PIXEL332RED(pixelval)		(((pixelval) >> 5) & 0x07)#define PIXEL332GREEN(pixelval)		(((pixelval) >> 2) & 0x07)#define PIXEL332BLUE(pixelval)		((pixelval) & 0x03)/* * Conversion from MWPIXELVAL to normal 8-bit red, green or blue components *//* return 8/8/8/8 bit a, r, g or b component of 32 bit pixelval*/#define PIXEL8888ALPHA8(pixelval)		(((pixelval) >> 24) & 0xff)#define PIXEL8888RED8(pixelval)		(((pixelval) >> 16) & 0xff)#define PIXEL8888GREEN8(pixelval)		(((pixelval) >> 8) & 0xff)#define PIXEL8888BLUE8(pixelval)		((pixelval) & 0xff)/* return 8 bit r, g or b component of 8/8/8 24 bit pixelval*/#define PIXEL888RED8(pixelval)          (((pixelval) >> 16) & 0xff)#define PIXEL888GREEN8(pixelval)        (((pixelval) >> 8) & 0xff)#define PIXEL888BLUE8(pixelval)         ((pixelval) & 0xff)/* return 8 bit r, g or b component of 5/6/5 16 bit pixelval*/#define PIXEL565RED8(pixelval)          (((pixelval) >> 8) & 0xf8)#define PIXEL565GREEN8(pixelval)        (((pixelval) >> 3) & 0xfc)#define PIXEL565BLUE8(pixelval)         (((pixelval) << 3) & 0xf8)/* return 8 bit r, g or b component of 5/5/5 16 bit pixelval*/#define PIXEL555RED8(pixelval)          (((pixelval) >> 7) & 0xf8)#define PIXEL555GREEN8(pixelval)        (((pixelval) >> 2) & 0xf8)#define PIXEL555BLUE8(pixelval)         (((pixelval) << 3) & 0xf8)/* return 8 bit r, g or b component of 3/3/2 8 bit pixelval*/#define PIXEL332RED8(pixelval)          ( (pixelval)       & 0xe0)#define PIXEL332GREEN8(pixelval)        (((pixelval) << 3) & 0xe0)#define PIXEL332BLUE8(pixelval)         (((pixelval) << 6) & 0xc0)/* * Conversion from MWPIXELVAL to *32-bit* red, green or blue components * (i.e. PIXEL888RED32(x) == (PIXEL888RED8(x) << 24).  These macros optimize * out the extra shift.) *//* return 32 bit a, r, g or b component of 8/8/8/8 32 bit pixelval*/#define PIXEL8888ALPHA32(pixelval)        ( ((unsigned long)(pixelval))        & 0xff000000UL)#define PIXEL8888RED32(pixelval)          ((((unsigned long)(pixelval)) <<  8) & 0xff000000UL)#define PIXEL8888GREEN32(pixelval)        ((((unsigned long)(pixelval)) << 16) & 0xff000000UL)#define PIXEL8888BLUE32(pixelval)         ((((unsigned long)(pixelval)) << 24) & 0xff000000UL)/* return 32 bit r, g or b component of 8/8/8 24 bit pixelval*/#define PIXEL888RED32(pixelval)          ((((unsigned long)(pixelval)) <<  8) & 0xff000000UL)#define PIXEL888GREEN32(pixelval)        ((((unsigned long)(pixelval)) << 16) & 0xff000000UL)#define PIXEL888BLUE32(pixelval)         ((((unsigned long)(pixelval)) << 24) & 0xff000000UL)/* return 32 bit r, g or b component of 5/6/5 16 bit pixelval*/#define PIXEL565RED32(pixelval)          ((((unsigned long)(pixelval)) << 16) & 0xf8000000UL)#define PIXEL565GREEN32(pixelval)        ((((unsigned long)(pixelval)) << 21) & 0xfc000000UL)#define PIXEL565BLUE32(pixelval)         ((((unsigned long)(pixelval)) << 27) & 0xf8000000UL)/* return 32 bit r, g or b component of 5/5/5 16 bit pixelval*/#define PIXEL555RED32(pixelval)          ((((unsigned long)(pixelval)) << 17) & 0xf8000000UL)#define PIXEL555GREEN32(pixelval)        ((((unsigned long)(pixelval)) << 22) & 0xf8000000UL)#define PIXEL555BLUE32(pixelval)         ((((unsigned long)(pixelval)) << 27) & 0xf8000000UL)/* return 32 bit r, g or b component of 3/3/2 8 bit pixelval*/#define PIXEL332RED32(pixelval)          ((((unsigned long)(pixelval)) << 24) & 0xe0000000UL)#define PIXEL332GREEN32(pixelval)        ((((unsigned long)(pixelval)) << 27) & 0xe0000000UL)#define PIXEL332BLUE32(pixelval)         ((((unsigned long)(pixelval)) << 30) & 0xc0000000UL)/* * Conversion from MWPIXELVAL to MWCOLORVAL *//* create RGB colorval (0xAABBGGRR) from 8/8/8/8 format pixel*/#define PIXEL8888TOCOLORVAL(p)	\	((((p) & 0xff0000ul) >> 16) | ((p) & 0xff00ff00ul) | (((p) & 0xffu) << 16) | 0xff000000ul)/* create RGB colorval (0xAABBGGRR) from 8/8/8 format pixel*/#define PIXEL888TOCOLORVAL(p)	\	(0xff000000ul | (((p) & 0xff0000ul) >> 16) | ((p) & 0xff00u) | (((p) & 0xffu) << 16) | 0xff000000ul)/* create RGB colorval (0xAABBGGRR) from 5/6/5 format pixel*/#define PIXEL565TOCOLORVAL(p)	\	(0xff000000ul | (((p) & 0xf800u) >> 8) | (((p) & 0x07e0u) << 5) | (((p) & 0x1ful) << 19) | 0xff000000ul)#define PIXEL555TOCOLORVAL(p)	\	(0xff000000ul | (((p) & 0x7c00u) >> 7) | (((p) & 0x03e0u) << 6) | (((p) & 0x1ful) << 19) | 0xff000000ul)/* create RGB colorval (0xAABBGGRR) from 3/3/2 format pixel*/#define PIXEL332TOCOLORVAL(p)	\	(0xff000000ul | (((p) & 0xe0u)) | (((p) & 0x1cu) << 11) | (((p) & 0x03ul) << 19) | 0xff000000ul)#if MWPIXEL_FORMAT == MWPF_TRUECOLOR8888#define RGB2PIXEL(r,g,b)	RGB2PIXEL8888(r,g,b)#define COLORVALTOPIXELVAL(c)	COLOR2PIXEL8888(c)#define PIXELVALTOCOLORVAL(p)	PIXEL8888TOCOLORVAL(p)#define PIXEL2RED(p)		PIXEL8888RED(p)#define PIXEL2GREEN(p)		PIXEL8888GREEN(p)#define PIXEL2BLUE(p)		PIXEL8888BLUE(p)#endif#if (MWPIXEL_FORMAT == MWPF_TRUECOLOR888) || (MWPIXEL_FORMAT == MWPF_TRUECOLOR0888)#define RGB2PIXEL(r,g,b)	RGB2PIXEL888(r,g,b)#define COLORVALTOPIXELVAL(c)	COLOR2PIXEL888(c)#define PIXELVALTOCOLORVAL(p)	PIXEL888TOCOLORVAL(p)#define PIXEL2RED(p)		PIXEL888RED(p)#define PIXEL2GREEN(p)		PIXEL888GREEN(p)#define PIXEL2BLUE(p)		PIXEL888BLUE(p)#endif#if MWPIXEL_FORMAT == MWPF_TRUECOLOR565#define RGB2PIXEL(r,g,b)	RGB2PIXEL565(r,g,b)#define COLORVALTOPIXELVAL(c)	COLOR2PIXEL565(c)#define PIXELVALTOCOLORVAL(p)	PIXEL565TOCOLORVAL(p)#define PIXEL2RED(p)		PIXEL565RED(p)#define PIXEL2GREEN(p)		PIXEL565GREEN(p)#define PIXEL2BLUE(p)		PIXEL565BLUE(p)#endif#if MWPIXEL_FORMAT == MWPF_TRUECOLOR555#define RGB2PIXEL(r,g,b)	RGB2PIXEL555(r,g,b)#define COLORVALTOPIXELVAL(c)	COLOR2PIXEL555(c)#define PIXELVALTOCOLORVAL(p)	PIXEL555TOCOLORVAL(p)#define PIXEL2RED(p)		PIXEL555RED(p)#define PIXEL2GREEN(p)		PIXEL555GREEN(p)#define PIXEL2BLUE(p)		PIXEL555BLUE(p)#endif#if MWPIXEL_FORMAT == MWPF_TRUECOLOR332#define RGB2PIXEL(r,g,b)	RGB2PIXEL332(r,g,b)#define COLORVALTOPIXELVAL(c)	COLOR2PIXEL332(c)#define PIXELVALTOCOLORVAL(p)	PIXEL332TOCOLORVAL(p)#define PIXEL2RED(p)		PIXEL332RED(p)#define PIXEL2GREEN(p)		PIXEL332GREEN(p)#define PIXEL2BLUE(p)		PIXEL332BLUE(p)#endif#if 0000/* colors assumed in first 16 palette entries*/

⌨️ 快捷键说明

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