brw_gs.h File Reference

Include dependency graph for brw_gs.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  brw_gs_prog_key
struct  brw_gs_compile

Defines

#define MAX_GS_VERTS   (4)
#define ATTR_SIZE   (4*4)

Functions

void brw_gs_quads (struct brw_gs_compile *c)
void brw_gs_quad_strip (struct brw_gs_compile *c)
void brw_gs_tris (struct brw_gs_compile *c)
void brw_gs_lines (struct brw_gs_compile *c)
void brw_gs_points (struct brw_gs_compile *c)


Define Documentation

#define ATTR_SIZE   (4*4)

Definition at line 67 of file brw_gs.h.

#define MAX_GS_VERTS   (4)

Definition at line 40 of file brw_gs.h.


Function Documentation

void brw_gs_lines ( struct brw_gs_compile c  ) 

Definition at line 129 of file brw_gs_emit.c.

References _3DPRIM_LINESTRIP, brw_gs_alloc_regs(), brw_gs_emit_vue(), R02_PRIM_END, R02_PRIM_START, brw_gs_compile::reg, and brw_gs_compile::vertex.

00130 {
00131    brw_gs_alloc_regs(c, 2);
00132    brw_gs_emit_vue(c, c->reg.vertex[0], 0, ((_3DPRIM_LINESTRIP << 2) | R02_PRIM_START));
00133    brw_gs_emit_vue(c, c->reg.vertex[1], 1, ((_3DPRIM_LINESTRIP << 2) | R02_PRIM_END));
00134 }

void brw_gs_points ( struct brw_gs_compile c  ) 

Definition at line 136 of file brw_gs_emit.c.

References _3DPRIM_POINTLIST, brw_gs_alloc_regs(), brw_gs_emit_vue(), R02_PRIM_END, R02_PRIM_START, brw_gs_compile::reg, and brw_gs_compile::vertex.

00137 {
00138    brw_gs_alloc_regs(c, 1);
00139    brw_gs_emit_vue(c, c->reg.vertex[0], 1, ((_3DPRIM_POINTLIST << 2) | R02_PRIM_START | R02_PRIM_END));
00140 }

void brw_gs_quad_strip ( struct brw_gs_compile c  ) 

Definition at line 111 of file brw_gs_emit.c.

References _3DPRIM_POLYGON, brw_gs_alloc_regs(), brw_gs_emit_vue(), R02_PRIM_END, R02_PRIM_START, brw_gs_compile::reg, and brw_gs_compile::vertex.

00112 {
00113    brw_gs_alloc_regs(c, 4);
00114    
00115    brw_gs_emit_vue(c, c->reg.vertex[2], 0, ((_3DPRIM_POLYGON << 2) | R02_PRIM_START));
00116    brw_gs_emit_vue(c, c->reg.vertex[3], 0, (_3DPRIM_POLYGON << 2));
00117    brw_gs_emit_vue(c, c->reg.vertex[0], 0, (_3DPRIM_POLYGON << 2)); 
00118    brw_gs_emit_vue(c, c->reg.vertex[1], 1, ((_3DPRIM_POLYGON << 2) | R02_PRIM_END));
00119 }

void brw_gs_quads ( struct brw_gs_compile c  ) 

Definition at line 98 of file brw_gs_emit.c.

References _3DPRIM_POLYGON, brw_gs_alloc_regs(), brw_gs_emit_vue(), R02_PRIM_END, R02_PRIM_START, brw_gs_compile::reg, and brw_gs_compile::vertex.

00099 {
00100    brw_gs_alloc_regs(c, 4);
00101    
00102    /* Use polygons for correct edgeflag behaviour. Note that vertex 3
00103     * is the PV for quads, but vertex 0 for polygons:
00104     */
00105    brw_gs_emit_vue(c, c->reg.vertex[3], 0, ((_3DPRIM_POLYGON << 2) | R02_PRIM_START));
00106    brw_gs_emit_vue(c, c->reg.vertex[0], 0, (_3DPRIM_POLYGON << 2));
00107    brw_gs_emit_vue(c, c->reg.vertex[1], 0, (_3DPRIM_POLYGON << 2)); 
00108    brw_gs_emit_vue(c, c->reg.vertex[2], 1, ((_3DPRIM_POLYGON << 2) | R02_PRIM_END));
00109 }

void brw_gs_tris ( struct brw_gs_compile c  ) 

Definition at line 121 of file brw_gs_emit.c.

References _3DPRIM_TRILIST, brw_gs_alloc_regs(), brw_gs_emit_vue(), R02_PRIM_END, R02_PRIM_START, brw_gs_compile::reg, and brw_gs_compile::vertex.

00122 {
00123    brw_gs_alloc_regs(c, 3);
00124    brw_gs_emit_vue(c, c->reg.vertex[0], 0, ((_3DPRIM_TRILIST << 2) | R02_PRIM_START));
00125    brw_gs_emit_vue(c, c->reg.vertex[1], 0, (_3DPRIM_TRILIST << 2));
00126    brw_gs_emit_vue(c, c->reg.vertex[2], 1, ((_3DPRIM_TRILIST << 2) | R02_PRIM_END));
00127 }


Generated on Tue Sep 29 06:25:37 2009 for Gallium3D by  doxygen 1.5.4