📄 gamma_tritmp.h
字号:
/* $XFree86: xc/extras/Mesa/src/mesa/drivers/dri/gamma/gamma_tritmp.h,v 1.2 2004/12/13 22:40:49 tsi Exp $ */static void TAG(gamma_point)( gammaContextPtr gmesa, const gammaVertex *v0 ){ u_int32_t vColor; u_int32_t vBegin; vBegin = gmesa->Begin | B_PrimType_Points; CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, Begin, vBegin);#if (IND & GAMMA_RAST_ALPHA_BIT) vColor = (v0->v.color.alpha << 24) | (v0->v.color.blue << 16) | (v0->v.color.green << 8) | (v0->v.color.red << 0); CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, PackedColor4, vColor);#else vColor = (v0->v.color.blue << 16) | (v0->v.color.green << 8) | (v0->v.color.red << 0); CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, PackedColor3, vColor);#endif#if (IND & GAMMA_RAST_TEX_BIT) CHECK_DMA_BUFFER(gmesa, 6); WRITEF(gmesa->buf, Tt2, v0->v.u0); WRITEF(gmesa->buf, Ts2, v0->v.v0); WRITEF(gmesa->buf, Vw, v0->v.w); WRITEF(gmesa->buf, Vz, v0->v.z); WRITEF(gmesa->buf, Vy, v0->v.y); WRITEF(gmesa->buf, Vx4, v0->v.x);#else CHECK_DMA_BUFFER(gmesa, 4); WRITEF(gmesa->buf, Vw, v0->v.w); WRITEF(gmesa->buf, Vz, v0->v.z); WRITEF(gmesa->buf, Vy, v0->v.y); WRITEF(gmesa->buf, Vx4, v0->v.x);#endif#if !(IND & GAMMA_RAST_FLAT_BIT) CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, FlushSpan, 0);#endif CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, End, 0);}static void TAG(gamma_line)( gammaContextPtr gmesa, const gammaVertex *v0, const gammaVertex *v1 ){ u_int32_t vColor; u_int32_t vBegin; vBegin = gmesa->Begin | B_PrimType_Lines; CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, Begin, vBegin);#if !(IND & GAMMA_RAST_FLAT_BIT)#if (IND & GAMMA_RAST_ALPHA_BIT) vColor = (v0->v.color.alpha << 24) | (v0->v.color.blue << 16) | (v0->v.color.green << 8) | (v0->v.color.red << 0); CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, PackedColor4, vColor);#else vColor = (v0->v.color.blue << 16) | (v0->v.color.green << 8) | (v0->v.color.red << 0); CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, PackedColor3, vColor);#endif#else#if (IND & GAMMA_RAST_ALPHA_BIT) vColor = (v1->v.color.alpha << 24) | (v1->v.color.blue << 16) | (v1->v.color.green << 8) | (v1->v.color.red << 0); CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, PackedColor4, vColor);#else vColor = (v1->v.color.blue << 16) | (v1->v.color.green << 8) | (v1->v.color.red << 0); CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, PackedColor3, vColor);#endif#endif#if (IND & GAMMA_RAST_TEX_BIT) CHECK_DMA_BUFFER(gmesa, 6); WRITEF(gmesa->buf, Tt2, v0->v.u0); WRITEF(gmesa->buf, Ts2, v0->v.v0); WRITEF(gmesa->buf, Vw, v0->v.w); WRITEF(gmesa->buf, Vz, v0->v.z); WRITEF(gmesa->buf, Vy, v0->v.y); WRITEF(gmesa->buf, Vx4, v0->v.x);#else CHECK_DMA_BUFFER(gmesa, 4); WRITEF(gmesa->buf, Vw, v0->v.w); WRITEF(gmesa->buf, Vz, v0->v.z); WRITEF(gmesa->buf, Vy, v0->v.y); WRITEF(gmesa->buf, Vx4, v0->v.x);#endif#if !(IND & GAMMA_RAST_FLAT_BIT)#if (IND & GAMMA_RAST_ALPHA_BIT) vColor = (v1->v.color.alpha << 24) | (v1->v.color.blue << 16) | (v1->v.color.green << 8) | (v1->v.color.red << 0); CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, PackedColor4, vColor);#else vColor = (v1->v.color.blue << 16) | (v1->v.color.green << 8) | (v1->v.color.red << 0); CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, PackedColor3, vColor);#endif#endif#if (IND & GAMMA_RAST_TEX_BIT) CHECK_DMA_BUFFER(gmesa, 6); WRITEF(gmesa->buf, Tt2, v1->v.u0); WRITEF(gmesa->buf, Ts2, v1->v.v0); WRITEF(gmesa->buf, Vw, v1->v.w); WRITEF(gmesa->buf, Vz, v1->v.z); WRITEF(gmesa->buf, Vy, v1->v.y); WRITEF(gmesa->buf, Vx4, v1->v.x);#else CHECK_DMA_BUFFER(gmesa, 4); WRITEF(gmesa->buf, Vw, v1->v.w); WRITEF(gmesa->buf, Vz, v1->v.z); WRITEF(gmesa->buf, Vy, v1->v.y); WRITEF(gmesa->buf, Vx4, v1->v.x);#endif#if !(IND & GAMMA_RAST_FLAT_BIT) CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, FlushSpan, 0);#endif CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, End, 0);}static void TAG(gamma_triangle)( gammaContextPtr gmesa, const gammaVertex *v0, const gammaVertex *v1, const gammaVertex *v2 ){ u_int32_t vColor; u_int32_t vBegin; vBegin = gmesa->Begin | B_PrimType_Triangles; CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, Begin, vBegin);#if !(IND & GAMMA_RAST_FLAT_BIT)#if (IND & GAMMA_RAST_ALPHA_BIT) vColor = (v0->v.color.alpha << 24) | (v0->v.color.blue << 16) | (v0->v.color.green << 8) | (v0->v.color.red << 0); CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, PackedColor4, vColor);#else vColor = (v0->v.color.blue << 16) | (v0->v.color.green << 8) | (v0->v.color.red << 0); CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, PackedColor3, vColor);#endif#else#if (IND & GAMMA_RAST_ALPHA_BIT) vColor = (v2->v.color.alpha << 24) | (v2->v.color.blue << 16) | (v2->v.color.green << 8) | (v2->v.color.red << 0); CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, PackedColor4, vColor);#else vColor = (v2->v.color.blue << 16) | (v2->v.color.green << 8) | (v2->v.color.red << 0); CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, PackedColor3, vColor);#endif#endif#if (IND & GAMMA_RAST_TEX_BIT) CHECK_DMA_BUFFER(gmesa, 6); WRITEF(gmesa->buf, Tt2, v0->v.u0); WRITEF(gmesa->buf, Ts2, v0->v.v0); WRITEF(gmesa->buf, Vw, v0->v.w); WRITEF(gmesa->buf, Vz, v0->v.z); WRITEF(gmesa->buf, Vy, v0->v.y); WRITEF(gmesa->buf, Vx4, v0->v.x);#else CHECK_DMA_BUFFER(gmesa, 4); WRITEF(gmesa->buf, Vw, v0->v.w); WRITEF(gmesa->buf, Vz, v0->v.z); WRITEF(gmesa->buf, Vy, v0->v.y); WRITEF(gmesa->buf, Vx4, v0->v.x);#endif#if !(IND & GAMMA_RAST_FLAT_BIT)#if (IND & GAMMA_RAST_ALPHA_BIT) vColor = (v1->v.color.alpha << 24) | (v1->v.color.blue << 16) | (v1->v.color.green << 8) | (v1->v.color.red << 0); CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, PackedColor4, vColor);#else vColor = (v1->v.color.blue << 16) | (v1->v.color.green << 8) | (v1->v.color.red << 0); CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, PackedColor3, vColor);#endif#endif#if (IND & GAMMA_RAST_TEX_BIT) CHECK_DMA_BUFFER(gmesa, 6); WRITEF(gmesa->buf, Tt2, v1->v.u0); WRITEF(gmesa->buf, Ts2, v1->v.v0); WRITEF(gmesa->buf, Vw, v1->v.w); WRITEF(gmesa->buf, Vz, v1->v.z); WRITEF(gmesa->buf, Vy, v1->v.y); WRITEF(gmesa->buf, Vx4, v1->v.x);#else CHECK_DMA_BUFFER(gmesa, 4); WRITEF(gmesa->buf, Vw, v1->v.w); WRITEF(gmesa->buf, Vz, v1->v.z); WRITEF(gmesa->buf, Vy, v1->v.y); WRITEF(gmesa->buf, Vx4, v1->v.x);#endif#if !(IND & GAMMA_RAST_FLAT_BIT)#if (IND & GAMMA_RAST_ALPHA_BIT) vColor = (v2->v.color.alpha << 24) | (v2->v.color.blue << 16) | (v2->v.color.green << 8) | (v2->v.color.red << 0); CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, PackedColor4, vColor);#else vColor = (v2->v.color.blue << 16) | (v2->v.color.green << 8) | (v2->v.color.red << 0); CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, PackedColor3, vColor);#endif#endif#if (IND & GAMMA_RAST_TEX_BIT) CHECK_DMA_BUFFER(gmesa, 6); WRITEF(gmesa->buf, Tt2, v2->v.u0); WRITEF(gmesa->buf, Ts2, v2->v.v0); WRITEF(gmesa->buf, Vw, v2->v.w); WRITEF(gmesa->buf, Vz, v2->v.z); WRITEF(gmesa->buf, Vy, v2->v.y); WRITEF(gmesa->buf, Vx4, v2->v.x);#else CHECK_DMA_BUFFER(gmesa, 4); WRITEF(gmesa->buf, Vw, v2->v.w); WRITEF(gmesa->buf, Vz, v2->v.z); WRITEF(gmesa->buf, Vy, v2->v.y); WRITEF(gmesa->buf, Vx4, v2->v.x);#endif#if !(IND & GAMMA_RAST_FLAT_BIT) CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, FlushSpan, 0);#endif CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, End, 0);}static void TAG(gamma_quad)( gammaContextPtr gmesa, const gammaVertex *v0, const gammaVertex *v1, const gammaVertex *v2, const gammaVertex *v3 ){ u_int32_t vColor; u_int32_t vBegin; vBegin = gmesa->Begin | B_PrimType_Quads; CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, Begin, vBegin);#if !(IND & GAMMA_RAST_FLAT_BIT)#if (IND & GAMMA_RAST_ALPHA_BIT) vColor = (v0->v.color.alpha << 24) | (v0->v.color.blue << 16) | (v0->v.color.green << 8) | (v0->v.color.red << 0); CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, PackedColor4, vColor);#else vColor = (v0->v.color.blue << 16) | (v0->v.color.green << 8) | (v0->v.color.red << 0); CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, PackedColor3, vColor);#endif#else#if (IND & GAMMA_RAST_ALPHA_BIT) vColor = (v3->v.color.alpha << 24) | (v3->v.color.blue << 16) | (v3->v.color.green << 8) | (v3->v.color.red << 0); CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, PackedColor4, vColor);#else vColor = (v3->v.color.blue << 16) | (v3->v.color.green << 8) | (v3->v.color.red << 0); CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, PackedColor3, vColor);#endif#endif#if (IND & GAMMA_RAST_TEX_BIT) CHECK_DMA_BUFFER(gmesa, 6); WRITEF(gmesa->buf, Tt2, v0->v.u0); WRITEF(gmesa->buf, Ts2, v0->v.v0); WRITEF(gmesa->buf, Vw, v0->v.w); WRITEF(gmesa->buf, Vz, v0->v.z); WRITEF(gmesa->buf, Vy, v0->v.y); WRITEF(gmesa->buf, Vx4, v0->v.x);#else CHECK_DMA_BUFFER(gmesa, 4); WRITEF(gmesa->buf, Vw, v0->v.w); WRITEF(gmesa->buf, Vz, v0->v.z); WRITEF(gmesa->buf, Vy, v0->v.y); WRITEF(gmesa->buf, Vx4, v0->v.x);#endif#if !(IND & GAMMA_RAST_FLAT_BIT)#if (IND & GAMMA_RAST_ALPHA_BIT) vColor = (v1->v.color.alpha << 24) | (v1->v.color.blue << 16) | (v1->v.color.green << 8) | (v1->v.color.red << 0); CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, PackedColor4, vColor);#else vColor = (v1->v.color.blue << 16) | (v1->v.color.green << 8) | (v1->v.color.red << 0); CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, PackedColor3, vColor);#endif#endif#if (IND & GAMMA_RAST_TEX_BIT) CHECK_DMA_BUFFER(gmesa, 6); WRITEF(gmesa->buf, Tt2, v1->v.u0); WRITEF(gmesa->buf, Ts2, v1->v.v0); WRITEF(gmesa->buf, Vw, v1->v.w); WRITEF(gmesa->buf, Vz, v1->v.z); WRITEF(gmesa->buf, Vy, v1->v.y); WRITEF(gmesa->buf, Vx4, v1->v.x);#else CHECK_DMA_BUFFER(gmesa, 4); WRITEF(gmesa->buf, Vw, v1->v.w); WRITEF(gmesa->buf, Vz, v1->v.z); WRITEF(gmesa->buf, Vy, v1->v.y); WRITEF(gmesa->buf, Vx4, v1->v.x);#endif#if !(IND & GAMMA_RAST_FLAT_BIT)#if (IND & GAMMA_RAST_ALPHA_BIT) vColor = (v2->v.color.alpha << 24) | (v2->v.color.blue << 16) | (v2->v.color.green << 8) | (v2->v.color.red << 0); CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, PackedColor4, vColor);#else vColor = (v2->v.color.blue << 16) | (v2->v.color.green << 8) | (v2->v.color.red << 0); CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, PackedColor3, vColor);#endif#endif#if (IND & GAMMA_RAST_TEX_BIT) CHECK_DMA_BUFFER(gmesa, 6); WRITEF(gmesa->buf, Tt2, v2->v.u0); WRITEF(gmesa->buf, Ts2, v2->v.v0); WRITEF(gmesa->buf, Vw, v2->v.w); WRITEF(gmesa->buf, Vz, v2->v.z); WRITEF(gmesa->buf, Vy, v2->v.y); WRITEF(gmesa->buf, Vx4, v2->v.x);#else CHECK_DMA_BUFFER(gmesa, 4); WRITEF(gmesa->buf, Vw, v2->v.w); WRITEF(gmesa->buf, Vz, v2->v.z); WRITEF(gmesa->buf, Vy, v2->v.y); WRITEF(gmesa->buf, Vx4, v2->v.x);#endif#if !(IND & GAMMA_RAST_FLAT_BIT)#if (IND & GAMMA_RAST_ALPHA_BIT) vColor = (v3->v.color.alpha << 24) | (v3->v.color.blue << 16) | (v3->v.color.green << 8) | (v3->v.color.red << 0); CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, PackedColor4, vColor);#else vColor = (v3->v.color.blue << 16) | (v3->v.color.green << 8) | (v3->v.color.red << 0); CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, PackedColor3, vColor);#endif#endif#if (IND & GAMMA_RAST_TEX_BIT) CHECK_DMA_BUFFER(gmesa, 6); WRITEF(gmesa->buf, Tt2, v3->v.u0); WRITEF(gmesa->buf, Ts2, v3->v.v0); WRITEF(gmesa->buf, Vw, v3->v.w); WRITEF(gmesa->buf, Vz, v3->v.z); WRITEF(gmesa->buf, Vy, v3->v.y); WRITEF(gmesa->buf, Vx4, v3->v.x);#else CHECK_DMA_BUFFER(gmesa, 4); WRITEF(gmesa->buf, Vw, v3->v.w); WRITEF(gmesa->buf, Vz, v3->v.z); WRITEF(gmesa->buf, Vy, v3->v.y); WRITEF(gmesa->buf, Vx4, v3->v.x);#endif#if !(IND & GAMMA_RAST_FLAT_BIT) CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, FlushSpan, 0);#endif CHECK_DMA_BUFFER(gmesa, 1); WRITE(gmesa->buf, End, 0);}static void TAG(gamma_init)(void){ gamma_point_tab[IND] = TAG(gamma_point); gamma_line_tab[IND] = TAG(gamma_line); gamma_tri_tab[IND] = TAG(gamma_triangle); gamma_quad_tab[IND] = TAG(gamma_quad);}#undef IND#undef TAG
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -