Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

CBaseRenderer Class Reference

#include <base_renderer.h>

Inheritance diagram for CBaseRenderer::

CRenderer CIndexedRenderer CLinearRenderer List of all members.

Public Methods

virtual void Load ()
 Load the renderer into vu0/vu1 memory. More...

virtual const char * GetName ()
 Return a pointer to the text name of this renderer. More...


Protected Methods

 CBaseRenderer (void *packet, int inQuadsPerVert, int outQuadsPerVert, int inGeomOffset, const char *name)
 CBaseRenderer (void *packet, CRendererProps caps, CRendererProps reqs, int inQuadsPerVert, int outQuadsPerVert, int inGeomOffset, const char *name)
void SetVifDoubleBuffered (bool db)
void GetUnpackAttribs (int numWords, unsigned int &mode, Vifs::tMask &mask)
void InitXferBlock (CVifSCDmaPacket &packet, int wordsPerVertex, int wordsPerNormal, int wordsPerTex, int wordsPerColor)
 Caches some data frequently used by XferBlock(), sets up row register. More...

void XferBlock (CVifSCDmaPacket &packet, const void *vertices, const void *normals, const void *texCoords, const void *colors, int vu1Offset, int firstElement, int numToAdd)
 Transfers a block of geometry to vu0/vu1 using packet, where "geometry" means vertices and zero or more normals, texture coordinates, and colors. More...

void XferVectors (CVifSCDmaPacket &packet, unsigned int *dataStart, int startOffset, int numVectors, int wordsPerVec, Vifs::tMask unpackMask, tU32 unpackMode, int vu1MemOffset)
void AddVu1RendererContext (CVifSCDmaPacket &packet, GLenum primType, int vu1Offset)
tGifTag BuildGiftag (GLenum primType)
void CacheRendererState ()
float GetMaxColorValue (bool texEnabled)

Protected Attributes

bool XferVertices
bool XferColors
bool XferNormals
bool XferTexCoords
bool VifDoubleBuffered
float CurTexCoord [2]
cpu_vec_xyz CurNormal
CDmaPacket * TexCoordBuf
CDmaPacket * NormalBuf
int WordsPerVertex
int WordsPerNormal
int WordsPerTexCoord
int WordsPerColor
unsigned int VertexUnpackMode
unsigned int NormalUnpackMode
unsigned int TexCoordUnpackMode
unsigned int ColorUnpackMode
Vifs::tMask VertexUnpackMask
Vifs::tMask NormalUnpackMask
Vifs::tMask TexCoordUnpackMask
Vifs::tMask ColorUnpackMask
int InputQuadsPerVert
int OutputQuadsPerVert
int InputGeomOffset
void * MicrocodePacket
const char * Name

Constructor & Destructor Documentation

CBaseRenderer::CBaseRenderer void *    packet,
int    inQuadsPerVert,
int    outQuadsPerVert,
int    inGeomOffset,
const char *    name
[inline, protected]
 

Definition at line 44 of file base_renderer.h.

CBaseRenderer::CBaseRenderer void *    packet,
CRendererProps    caps,
CRendererProps    reqs,
int    inQuadsPerVert,
int    outQuadsPerVert,
int    inGeomOffset,
const char *    name
[inline, protected]
 

Definition at line 55 of file base_renderer.h.


Member Function Documentation

void CBaseRenderer::AddVu1RendererContext CVifSCDmaPacket &    packet,
GLenum    primType,
int    vu1Offset
[protected]
 

Definition at line 202 of file base_renderer.cpp.

Referenced by CLinearRenderer::InitContext(), and CIndexedRenderer::InitContext().

tGifTag CBaseRenderer::BuildGiftag GLenum    primType [protected]
 

Definition at line 388 of file base_renderer.cpp.

Referenced by AddVu1RendererContext().

void CBaseRenderer::CacheRendererState   [protected]
 

Definition at line 408 of file base_renderer.cpp.

Referenced by CLinearRenderer::InitContext(), and CIndexedRenderer::InitContext().

float CBaseRenderer::GetMaxColorValue bool    texEnabled [inline, protected]
 

Definition at line 94 of file base_renderer.h.

Referenced by AddVu1RendererContext(), and CIndexedRenderer::InitContext().

virtual const char* CBaseRenderer::GetName   [inline, virtual]
 

Return a pointer to the text name of this renderer.

Reimplemented from CRenderer.

Definition at line 102 of file base_renderer.h.

void CBaseRenderer::GetUnpackAttribs int    numWords,
unsigned int &    mode,
Vifs::tMask &    mask
[protected]
 

Definition at line 26 of file base_renderer.cpp.

Referenced by InitXferBlock().

void CBaseRenderer::InitXferBlock CVifSCDmaPacket &    packet,
int    wordsPerVertex,
int    wordsPerNormal,
int    wordsPerTex,
int    wordsPerColor
[protected]
 

Caches some data frequently used by XferBlock(), sets up row register.

The parameters wordsPerNormal, wordsPerTex, and wordsPerColor should be zero if the application has not given normals, texture coords, or colors.

Definition at line 65 of file base_renderer.cpp.

Referenced by CIndexedRenderer::DrawIndexedArrays(), and CLinearRenderer::DrawLinearArrays().

void CBaseRenderer::Load   [virtual]
 

Load the renderer into vu0/vu1 memory.

Reimplemented from CRenderer.

Definition at line 416 of file base_renderer.cpp.

void CBaseRenderer::SetVifDoubleBuffered bool    db [inline, protected]
 

Definition at line 67 of file base_renderer.h.

void CBaseRenderer::XferBlock CVifSCDmaPacket &    packet,
const void *    vertices,
const void *    normals,
const void *    texCoords,
const void *    colors,
int    vu1Offset,
int    firstElement,
int    numToAdd
[protected]
 

Transfers a block of geometry to vu0/vu1 using packet, where "geometry" means vertices and zero or more normals, texture coordinates, and colors.

Note that you MUST set the vif1 write mode correctly before calling XferBlock!! (e.g., Stcycl(1, vu1QuadsPerVert)) normals, texCoords, and colors should be NULL if not provided.

Parameters:
vu1Offset  offset into vu1 memory in quadwords
firstElement  the starting "offset" into the vertex, normal, etc. arrays (for example: this would be "2" to start draw from the 3rd element)

Definition at line 121 of file base_renderer.cpp.

Referenced by CLinearRenderer::DrawBlock(), and CIndexedRenderer::DrawIndexedArrays().

void CBaseRenderer::XferVectors CVifSCDmaPacket &    packet,
unsigned int *    dataStart,
int    startOffset,
int    numVectors,
int    wordsPerVec,
Vifs::tMask    unpackMask,
tU32    unpackMode,
int    vu1MemOffset
[protected]
 

Definition at line 431 of file base_renderer.cpp.

Referenced by XferBlock().


Member Data Documentation

Vifs::tMask CBaseRenderer::ColorUnpackMask [protected]
 

Definition at line 35 of file base_renderer.h.

unsigned int CBaseRenderer::ColorUnpackMode [protected]
 

Definition at line 33 of file base_renderer.h.

cpu_vec_xyz CBaseRenderer::CurNormal [protected]
 

Definition at line 28 of file base_renderer.h.

float CBaseRenderer::CurTexCoord[2] [protected]
 

Definition at line 27 of file base_renderer.h.

int CBaseRenderer::InputGeomOffset [protected]
 

Definition at line 38 of file base_renderer.h.

int CBaseRenderer::InputQuadsPerVert [protected]
 

Definition at line 37 of file base_renderer.h.

void* CBaseRenderer::MicrocodePacket [protected]
 

Definition at line 40 of file base_renderer.h.

const char* CBaseRenderer::Name [protected]
 

Definition at line 42 of file base_renderer.h.

CDmaPacket * CBaseRenderer::NormalBuf [protected]
 

Definition at line 29 of file base_renderer.h.

Vifs::tMask CBaseRenderer::NormalUnpackMask [protected]
 

Definition at line 34 of file base_renderer.h.

unsigned int CBaseRenderer::NormalUnpackMode [protected]
 

Definition at line 32 of file base_renderer.h.

int CBaseRenderer::OutputQuadsPerVert [protected]
 

Definition at line 37 of file base_renderer.h.

CDmaPacket* CBaseRenderer::TexCoordBuf [protected]
 

Definition at line 29 of file base_renderer.h.

Vifs::tMask CBaseRenderer::TexCoordUnpackMask [protected]
 

Definition at line 35 of file base_renderer.h.

unsigned int CBaseRenderer::TexCoordUnpackMode [protected]
 

Definition at line 33 of file base_renderer.h.

Vifs::tMask CBaseRenderer::VertexUnpackMask [protected]
 

Definition at line 34 of file base_renderer.h.

unsigned int CBaseRenderer::VertexUnpackMode [protected]
 

Definition at line 32 of file base_renderer.h.

bool CBaseRenderer::VifDoubleBuffered [protected]
 

Definition at line 24 of file base_renderer.h.

int CBaseRenderer::WordsPerColor [protected]
 

Definition at line 31 of file base_renderer.h.

int CBaseRenderer::WordsPerNormal [protected]
 

Definition at line 31 of file base_renderer.h.

int CBaseRenderer::WordsPerTexCoord [protected]
 

Definition at line 31 of file base_renderer.h.

int CBaseRenderer::WordsPerVertex [protected]
 

Definition at line 31 of file base_renderer.h.

bool CBaseRenderer::XferColors [protected]
 

Definition at line 22 of file base_renderer.h.

bool CBaseRenderer::XferNormals [protected]
 

Definition at line 22 of file base_renderer.h.

bool CBaseRenderer::XferTexCoords [protected]
 

Definition at line 22 of file base_renderer.h.

bool CBaseRenderer::XferVertices [protected]
 

Definition at line 22 of file base_renderer.h.


The documentation for this class was generated from the following files:
ps2gl version cvs