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

📄 ffb_tritmp.h

📁 Mesa is an open-source implementation of the OpenGL specification - a system for rendering interacti
💻 H
字号:
/* $XFree86: xc/lib/GL/mesa/src/drv/ffb/ffb_tritmp.h,v 1.2 2002/02/22 21:32:59 dawes Exp $ */static void TAG(ffb_triangle)( GLcontext *ctx, 				       ffb_vertex *v0,			       ffb_vertex *v1,			       ffb_vertex *v2 ){	ffbContextPtr fmesa = FFB_CONTEXT(ctx);	ffb_fbcPtr ffb = fmesa->regs;#if (IND & FFB_TRI_FLAT_BIT)	GLuint const_fg;#endif	FFB_DELAYED_VIEWPORT_VARS;#ifdef TRI_DEBUG	fprintf(stderr, "FFB: ffb_triangle ["#if (IND & FFB_TRI_CULL_BIT)		" CULL"#endif#if (IND & FFB_TRI_FLAT_BIT)		" FLAT"#endif#if (IND & FFB_TRI_ALPHA_BIT)		" ALPHA"#endif		" ]\n");#endif#if (IND & FFB_TRI_CULL_BIT)	{	/* NOTE: These are not viewport transformed yet. */		GLfloat ex = v1->x - v0->x;		GLfloat ey = v1->y - v0->y;		GLfloat fx = v2->x - v0->x;		GLfloat fy = v2->y - v0->y;		GLfloat c = ex*fy-ey*fx;		/* Culled... */		if (c * fmesa->backface_sign > fmesa->ffb_zero)			return;	}#endif#if (IND & FFB_TRI_FLAT_BIT)	const_fg = FFB_PACK_CONST_UBYTE_ARGB_COLOR( v2->color[0] );#ifdef TRI_DEBUG	fprintf(stderr, "FFB_tri: const_fg %08x (B[%f] G[%f] R[%f])\n",		const_fg,		FFB_2_30_FIXED_TO_FLOAT(v2->color[0].blue),		FFB_2_30_FIXED_TO_FLOAT(v2->color[0].green),		FFB_2_30_FIXED_TO_FLOAT(v2->color[0].red));#endif#endif#if (IND & FFB_TRI_FLAT_BIT)	FFBFifo(fmesa, 1);	ffb->fg = const_fg;#endif#if (IND & FFB_TRI_FLAT_BIT)	FFBFifo(fmesa, 9);#else#if (IND & FFB_TRI_ALPHA_BIT)	FFBFifo(fmesa, 21);#else	FFBFifo(fmesa, 18);#endif#endif	FFB_DUMP_VERTEX(v0);#if !(IND & FFB_TRI_FLAT_BIT)#if (IND & FFB_TRI_ALPHA_BIT)	ffb->alpha = FFB_GET_ALPHA(v0);#endif	ffb->red   = FFB_GET_RED(v0);	ffb->green = FFB_GET_GREEN(v0);	ffb->blue  = FFB_GET_BLUE(v0);#endif	ffb->z     = FFB_GET_Z(v0);	ffb->ryf   = FFB_GET_Y(v0);	ffb->rxf   = FFB_GET_X(v0);	FFB_DUMP_VERTEX(v1);#if !(IND & FFB_TRI_FLAT_BIT)#if (IND & FFB_TRI_ALPHA_BIT)	ffb->alpha = FFB_GET_ALPHA(v1);#endif	ffb->red   = FFB_GET_RED(v1);	ffb->green = FFB_GET_GREEN(v1);	ffb->blue  = FFB_GET_BLUE(v1);#endif	ffb->z     = FFB_GET_Z(v1);	ffb->y     = FFB_GET_Y(v1);	ffb->x     = FFB_GET_X(v1);	FFB_DUMP_VERTEX(v2);#if !(IND & FFB_TRI_FLAT_BIT)#if (IND & FFB_TRI_ALPHA_BIT)	ffb->alpha = FFB_GET_ALPHA(v2);#endif	ffb->red   = FFB_GET_RED(v2);	ffb->green = FFB_GET_GREEN(v2);	ffb->blue  = FFB_GET_BLUE(v2);#endif	ffb->z     = FFB_GET_Z(v2);	ffb->y     = FFB_GET_Y(v2);	ffb->x     = FFB_GET_X(v2);	fmesa->ffbScreen->rp_active = 1;}static void TAG(ffb_quad)(GLcontext *ctx, 			      			  ffb_vertex *v0,			  ffb_vertex *v1,			  ffb_vertex *v2,			  ffb_vertex *v3 ){	ffbContextPtr fmesa = FFB_CONTEXT(ctx);	ffb_fbcPtr ffb = fmesa->regs;#if (IND & FFB_TRI_FLAT_BIT)	GLuint const_fg;#endif	FFB_DELAYED_VIEWPORT_VARS;#ifdef TRI_DEBUG	fprintf(stderr, "FFB: ffb_quad ["#if (IND & FFB_TRI_CULL_BIT)		" CULL"#endif#if (IND & FFB_TRI_FLAT_BIT)		" FLAT"#endif#if (IND & FFB_TRI_ALPHA_BIT)		" ALPHA"#endif		" ]\n");#endif /* TRI_DEBUG */#if (IND & FFB_TRI_CULL_BIT)	{	/* NOTE: These are not viewport transformed yet. */		GLfloat ex = v2->x - v0->x;		GLfloat ey = v2->y - v0->y;		GLfloat fx = v3->x - v1->x;		GLfloat fy = v3->y - v1->y;		GLfloat c = ex*fy-ey*fx;		/* Culled... */		if (c * fmesa->backface_sign > fmesa->ffb_zero)			return;	}#endif#if (IND & FFB_TRI_FLAT_BIT)	const_fg = FFB_PACK_CONST_UBYTE_ARGB_COLOR( v3->color[0] );#ifdef TRI_DEBUG	fprintf(stderr, "FFB_quad: const_fg %08x (B[%f] G[%f] R[%f])\n",		const_fg,		FFB_2_30_FIXED_TO_FLOAT(v3->color[0].blue),		FFB_2_30_FIXED_TO_FLOAT(v3->color[0].green),		FFB_2_30_FIXED_TO_FLOAT(v3->color[0].red));#endif#endif#if (IND & FFB_TRI_FLAT_BIT)	FFBFifo(fmesa, 13);	ffb->fg = const_fg;#else#if (IND & FFB_TRI_ALPHA_BIT)	FFBFifo(fmesa, 28);#else	FFBFifo(fmesa, 24);#endif#endif	FFB_DUMP_VERTEX(v0);#if !(IND & FFB_TRI_FLAT_BIT)#if (IND & FFB_TRI_ALPHA_BIT)	ffb->alpha = FFB_GET_ALPHA(v0);#endif	ffb->red   = FFB_GET_RED(v0);	ffb->green = FFB_GET_GREEN(v0);	ffb->blue  = FFB_GET_BLUE(v0);#endif	ffb->z     = FFB_GET_Z(v0);	ffb->ryf   = FFB_GET_Y(v0);	ffb->rxf   = FFB_GET_X(v0);	FFB_DUMP_VERTEX(v1);#if !(IND & FFB_TRI_FLAT_BIT)#if (IND & FFB_TRI_ALPHA_BIT)	ffb->alpha = FFB_GET_ALPHA(v1);#endif	ffb->red   = FFB_GET_RED(v1);	ffb->green = FFB_GET_GREEN(v1);	ffb->blue  = FFB_GET_BLUE(v1);#endif	ffb->z     = FFB_GET_Z(v1);	ffb->y     = FFB_GET_Y(v1);	ffb->x     = FFB_GET_X(v1);	FFB_DUMP_VERTEX(v2);#if !(IND & FFB_TRI_FLAT_BIT)#if (IND & FFB_TRI_ALPHA_BIT)	ffb->alpha = FFB_GET_ALPHA(v2);#endif	ffb->red   = FFB_GET_RED(v2);	ffb->green = FFB_GET_GREEN(v2);	ffb->blue  = FFB_GET_BLUE(v2);#endif	ffb->z     = FFB_GET_Z(v2);	ffb->y     = FFB_GET_Y(v2);	ffb->x     = FFB_GET_X(v2);	FFB_DUMP_VERTEX(v3);#if !(IND & FFB_TRI_FLAT_BIT)#if (IND & FFB_TRI_ALPHA_BIT)	ffb->alpha = FFB_GET_ALPHA(v3);#endif	ffb->red   = FFB_GET_RED(v3);	ffb->green = FFB_GET_GREEN(v3);	ffb->blue  = FFB_GET_BLUE(v3);#endif	ffb->z     = FFB_GET_Z(v3);	ffb->dmyf  = FFB_GET_Y(v3);	ffb->dmxf  = FFB_GET_X(v3);	fmesa->ffbScreen->rp_active = 1;}static void TAG(ffb_init)(void){	ffb_tri_tab[IND]	= TAG(ffb_triangle);	ffb_quad_tab[IND]	= TAG(ffb_quad);}#undef IND#undef TAG

⌨️ 快捷键说明

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