22 bool XferVertices, XferColors, XferNormals, XferTexCoords;
24 bool VifDoubleBuffered;
28 cpu_vec_xyz CurNormal;
29 CDmaPacket *TexCoordBuf, *NormalBuf;
31 int WordsPerVertex, WordsPerNormal, WordsPerTexCoord, WordsPerColor;
32 unsigned int VertexUnpackMode, NormalUnpackMode;
33 unsigned int TexCoordUnpackMode, ColorUnpackMode;
34 Vifs::tMask VertexUnpackMask, NormalUnpackMask;
35 Vifs::tMask TexCoordUnpackMask, ColorUnpackMask;
37 int InputQuadsPerVert, OutputQuadsPerVert;
40 void* MicrocodePacket;
41 int MicrocodePacketSize;
46 int inQuadsPerVert,
int outQuadsPerVert,
47 int inGeomOffset,
const char* name)
49 , VifDoubleBuffered(
true)
54 , InputQuadsPerVert(inQuadsPerVert)
55 , OutputQuadsPerVert(outQuadsPerVert)
56 , InputGeomOffset(inGeomOffset)
57 , MicrocodePacket(packet)
58 , MicrocodePacketSize(packetSize)
64 int inQuadsPerVert,
int outQuadsPerVert,
65 int inGeomOffset,
const char* name)
68 , VifDoubleBuffered(
true)
73 , InputQuadsPerVert(inQuadsPerVert)
74 , OutputQuadsPerVert(outQuadsPerVert)
75 , InputGeomOffset(inGeomOffset)
76 , MicrocodePacket(packet)
77 , MicrocodePacketSize(packetSize)
82 void SetVifDoubleBuffered(
bool db) { VifDoubleBuffered = db; }
85 void GetUnpackAttribs(
int numWords,
unsigned int& mode, Vifs::tMask& mask);
89 int wordsPerVertex,
int wordsPerNormal,
90 int wordsPerTex,
int wordsPerColor);
94 const void* vertices,
const void* normals,
95 const void* texCoords,
const void* colors,
96 int vu1Offset,
int firstElement,
int numToAdd);
99 void XferVectors(CVifSCDmaPacket& packet,
unsigned int* dataStart,
100 int startOffset,
int numVectors,
int wordsPerVec,
101 Vifs::tMask unpackMask, tU32 unpackMode,
105 void AddVu1RendererContext(CVifSCDmaPacket& packet, GLenum primType,
int vu1Offset);
106 tGifTag BuildGiftag(GLenum primType);
107 void CacheRendererState();
109 float GetMaxColorValue(
bool texEnabled)
114 return (texEnabled) ? 128.0f : 255.0f;
119 virtual const char*
GetName() {
return Name; }
void XferBlock(CVifSCDmaPacket &packet, const void *vertices, const void *normals, const void *texCoords, const void *colors, int vu1Offset, int firstElement, int numToAdd)