Merge commit 'origin/master' into drm-gem
[mesa.git] / src / mesa / drivers / dri / ffb / ffb_linetmp.h
1 /* $XFree86: xc/lib/GL/mesa/src/drv/ffb/ffb_linetmp.h,v 1.2 2002/02/22 21:32:58 dawes Exp $ */
2
3 static INLINE void TAG(ffb_line)(GLcontext *ctx, ffb_vertex *v0,
4 ffb_vertex *v1 )
5 {
6 ffbContextPtr fmesa = FFB_CONTEXT(ctx);
7 ffb_fbcPtr ffb = fmesa->regs;
8 #if (IND & FFB_LINE_FLAT_BIT)
9 const GLuint const_fg = FFB_PACK_CONST_UBYTE_ARGB_COLOR( v1->color[0] );
10 #endif
11 FFB_DELAYED_VIEWPORT_VARS;
12
13 #ifdef FFB_LINE_TRACE
14 fprintf(stderr, "FFB: ffb_line ["
15 #if (IND & FFB_LINE_FLAT_BIT)
16 " FLAT"
17 #endif
18 #if (IND & FFB_LINE_ALPHA_BIT)
19 " ALPHA"
20 #endif
21 " ]\n");
22 #endif
23
24 #if (IND & FFB_LINE_FLAT_BIT)
25 FFBFifo(fmesa, 1);
26 ffb->fg = const_fg;
27 #ifdef FFB_LINE_TRACE
28 fprintf(stderr, "FFB: ffb_line confg_fg[%08x]\n", const_fg);
29 #endif
30 #endif
31
32 #if (IND & FFB_LINE_FLAT_BIT)
33 /* (2 * 3) + 1 */
34 FFBFifo(fmesa, 7);
35 #else
36 #if (IND & FFB_LINE_ALPHA_BIT)
37 /* (2 * 7) + 1 */
38 FFBFifo(fmesa, 15);
39 #else
40 /* (2 * 6) + 1 */
41 FFBFifo(fmesa, 13);
42 #endif
43 #endif
44
45 /* Using DDLINE or AALINE, init the line pattern state. */
46 ffb->lpat = fmesa->lpat;
47
48 #if !(IND & FFB_LINE_FLAT_BIT)
49 #if (IND & FFB_LINE_ALPHA_BIT)
50 ffb->alpha = FFB_GET_ALPHA(v0);
51 #endif
52 ffb->red = FFB_GET_RED(v0);
53 ffb->green = FFB_GET_GREEN(v0);
54 ffb->blue = FFB_GET_BLUE(v0);
55 #endif
56 ffb->z = FFB_GET_Z(v0);
57 ffb->ryf = FFB_GET_Y(v0);
58 ffb->rxf = FFB_GET_X(v0);
59
60 #if !(IND & FFB_LINE_FLAT_BIT)
61 #if (IND & FFB_LINE_ALPHA_BIT)
62 ffb->alpha = FFB_GET_ALPHA(v1);
63 #endif
64 ffb->red = FFB_GET_RED(v1);
65 ffb->green = FFB_GET_GREEN(v1);
66 ffb->blue = FFB_GET_BLUE(v1);
67 #endif
68 ffb->z = FFB_GET_Z(v1);
69 ffb->y = FFB_GET_Y(v1);
70 ffb->x = FFB_GET_X(v1);
71
72 fmesa->ffbScreen->rp_active = 1;
73 }
74
75 static void TAG(init)(void)
76 {
77 ffb_line_tab[IND] = TAG(ffb_line);
78 }
79
80 #undef IND
81 #undef TAG