My Project
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules
gpu.h File Reference

Go to the source code of this file.

Macros

#define GPU_TEXTURE_MAG_FILTER(v)   (((v)&0x1)<<1)
 
#define GPU_TEXTURE_MIN_FILTER(v)   (((v)&0x1)<<2)
 
#define GPU_TEXTURE_WRAP_S(v)   (((v)&0x3)<<8)
 
#define GPU_TEXTURE_WRAP_T(v)   (((v)&0x3)<<12)
 
#define GPU_ATTRIBFMT(i, n, f)   (((((n)-1)<<2)|((f)&3))<<((i)*4))
 
#define GPU_TEVSOURCES(a, b, c)   (((a))|((b)<<4)|((c)<<8))
 
#define GPU_TEVOPERANDS(a, b, c)   (((a))|((b)<<4)|((c)<<8))
 

Enumerations

enum  GPU_TEXTURE_FILTER_PARAM { GPU_NEAREST = 0x0, GPU_LINEAR = 0x1 }
 
enum  GPU_TEXTURE_WRAP_PARAM { GPU_CLAMP_TO_EDGE = 0x0, GPU_REPEAT = 0x2 }
 
enum  GPU_TEXUNIT { GPU_TEXUNIT0 = 0x1, GPU_TEXUNIT1 = 0x2, GPU_TEXUNIT2 = 0x4 }
 
enum  GPU_TEXCOLOR {
  GPU_RGBA8 =0x0, GPU_RGB8 =0x1, GPU_RGBA5551 =0x2, GPU_RGB565 =0x3,
  GPU_RGBA4 =0x4, GPU_LA8 =0x5, GPU_HILO8 =0x6, GPU_L8 =0x7,
  GPU_A8 =0x8, GPU_LA4 =0x9, GPU_L4 =0xA, GPU_ETC1 =0xB,
  GPU_ETC1A4 =0xC
}
 
enum  GPU_TESTFUNC {
  GPU_NEVER = 0, GPU_ALWAYS = 1, GPU_EQUAL = 2, GPU_NOTEQUAL = 3,
  GPU_LESS = 4, GPU_LEQUAL = 5, GPU_GREATER = 6, GPU_GEQUAL = 7
}
 
enum  GPU_SCISSORMODE { GPU_SCISSOR_DISABLE = 0, GPU_SCISSOR_INVERT = 1, GPU_SCISSOR_NORMAL = 3 }
 
enum  GPU_STENCILOP { GPU_KEEP = 0, GPU_AND_NOT = 1, GPU_XOR = 5 }
 
enum  GPU_WRITEMASK {
  GPU_WRITE_RED = 0x01, GPU_WRITE_GREEN = 0x02, GPU_WRITE_BLUE = 0x04, GPU_WRITE_ALPHA = 0x08,
  GPU_WRITE_DEPTH = 0x10, GPU_WRITE_COLOR = 0x0F, GPU_WRITE_ALL = 0x1F
}
 
enum  GPU_BLENDEQUATION {
  GPU_BLEND_ADD = 0, GPU_BLEND_SUBTRACT = 1, GPU_BLEND_REVERSE_SUBTRACT = 2, GPU_BLEND_MIN = 3,
  GPU_BLEND_MAX = 4
}
 
enum  GPU_BLENDFACTOR {
  GPU_ZERO = 0, GPU_ONE = 1, GPU_SRC_COLOR = 2, GPU_ONE_MINUS_SRC_COLOR = 3,
  GPU_DST_COLOR = 4, GPU_ONE_MINUS_DST_COLOR = 5, GPU_SRC_ALPHA = 6, GPU_ONE_MINUS_SRC_ALPHA = 7,
  GPU_DST_ALPHA = 8, GPU_ONE_MINUS_DST_ALPHA = 9, GPU_CONSTANT_COLOR = 10, GPU_ONE_MINUS_CONSTANT_COLOR = 11,
  GPU_CONSTANT_ALPHA = 12, GPU_ONE_MINUS_CONSTANT_ALPHA = 13, GPU_SRC_ALPHA_SATURATE = 14
}
 
enum  GPU_LOGICOP {
  GPU_LOGICOP_CLEAR = 0, GPU_LOGICOP_AND = 1, GPU_LOGICOP_AND_REVERSE = 2, GPU_LOGICOP_COPY = 3,
  GPU_LOGICOP_SET = 4, GPU_LOGICOP_COPY_INVERTED = 5, GPU_LOGICOP_NOOP = 6, GPU_LOGICOP_INVERT = 7,
  GPU_LOGICOP_NAND = 8, GPU_LOGICOP_OR = 9, GPU_LOGICOP_NOR = 10, GPU_LOGICOP_XOR = 11,
  GPU_LOGICOP_EQUIV = 12, GPU_LOGICOP_AND_INVERTED = 13, GPU_LOGICOP_OR_REVERSE = 14, GPU_LOGICOP_OR_INVERTED = 15
}
 
enum  GPU_FORMATS { GPU_BYTE = 0, GPU_UNSIGNED_BYTE = 1, GPU_SHORT = 2, GPU_FLOAT = 3 }
 
enum  GPU_CULLMODE { GPU_CULL_NONE = 0, GPU_CULL_FRONT_CCW = 1, GPU_CULL_BACK_CCW = 2 }
 
enum  GPU_TEVSRC {
  GPU_PRIMARY_COLOR = 0x00, GPU_TEXTURE0 = 0x03, GPU_TEXTURE1 = 0x04, GPU_TEXTURE2 = 0x05,
  GPU_TEXTURE3 = 0x06, GPU_CONSTANT = 0x0E, GPU_PREVIOUS = 0x0F
}
 
enum  GPU_COMBINEFUNC {
  GPU_REPLACE = 0x00, GPU_MODULATE = 0x01, GPU_ADD = 0x02, GPU_ADD_SIGNED = 0x03,
  GPU_INTERPOLATE = 0x04, GPU_SUBTRACT = 0x05, GPU_DOT3_RGB = 0x06
}
 
enum  GPU_Primitive_t { GPU_TRIANGLES = 0x0000, GPU_TRIANGLE_STRIP = 0x0100, GPU_TRIANGLE_FAN = 0x0200, GPU_UNKPRIM = 0x0300 }
 

Functions

void GPU_Init (Handle *gsphandle)
 
void GPU_Reset (u32 *gxbuf, u32 *gpuBuf, u32 gpuBufSize)
 
void GPUCMD_SetBuffer (u32 *adr, u32 size, u32 offset)
 
void GPUCMD_SetBufferOffset (u32 offset)
 
void GPUCMD_GetBuffer (u32 **adr, u32 *size, u32 *offset)
 
void GPUCMD_AddRawCommands (u32 *cmd, u32 size)
 
void GPUCMD_Run (u32 *gxbuf)
 
void GPUCMD_FlushAndRun (u32 *gxbuf)
 
void GPUCMD_Add (u32 cmd, u32 *param, u32 paramlength)
 
void GPUCMD_AddSingleParam (u32 cmd, u32 param)
 
void GPUCMD_Finalize ()
 
void GPU_SetUniform (u32 startreg, u32 *data, u32 numreg)
 
void GPU_SetViewport (u32 *depthBuffer, u32 *colorBuffer, u32 x, u32 y, u32 w, u32 h)
 
void GPU_SetScissorTest (GPU_SCISSORMODE mode, u32 x, u32 y, u32 w, u32 h)
 
void GPU_DepthRange (float nearVal, float farVal)
 
void GPU_SetAlphaTest (bool enable, GPU_TESTFUNC function, u8 ref)
 
void GPU_SetDepthTestAndWriteMask (bool enable, GPU_TESTFUNC function, GPU_WRITEMASK writemask)
 
void GPU_SetStencilTest (bool enable, GPU_TESTFUNC function, u8 ref, u8 mask, u8 replace)
 
void GPU_SetStencilOp (GPU_STENCILOP sfail, GPU_STENCILOP dfail, GPU_STENCILOP pass)
 
void GPU_SetFaceCulling (GPU_CULLMODE mode)
 
void GPU_SetAlphaBlending (GPU_BLENDEQUATION colorEquation, GPU_BLENDEQUATION alphaEquation, GPU_BLENDFACTOR colorSrc, GPU_BLENDFACTOR colorDst, GPU_BLENDFACTOR alphaSrc, GPU_BLENDFACTOR alphaDst)
 
void GPU_SetColorLogicOp (GPU_LOGICOP op)
 
void GPU_SetBlendingColor (u8 r, u8 g, u8 b, u8 a)
 
void GPU_SetAttributeBuffers (u8 totalAttributes, u32 *baseAddress, u64 attributeFormats, u16 attributeMask, u64 attributePermutation, u8 numBuffers, u32 bufferOffsets[], u64 bufferPermutations[], u8 bufferNumAttributes[])
 
void GPU_SetTextureEnable (GPU_TEXUNIT units)
 
void GPU_SetTexture (GPU_TEXUNIT unit, u32 *data, u16 width, u16 height, u32 param, GPU_TEXCOLOR colorType)
 
void GPU_SetTexEnv (u8 id, u16 rgbSources, u16 alphaSources, u16 rgbOperands, u16 alphaOperands, GPU_COMBINEFUNC rgbCombine, GPU_COMBINEFUNC alphaCombine, u32 constantColor)
 
void GPU_DrawArray (GPU_Primitive_t primitive, u32 n)
 
void GPU_DrawElements (GPU_Primitive_t primitive, u32 *indexArray, u32 n)
 
void GPU_FinishDrawing ()
 

Macro Definition Documentation

#define GPU_ATTRIBFMT (   i,
  n,
 
)    (((((n)-1)<<2)|((f)&3))<<((i)*4))

Definition at line 160 of file gpu.h.

#define GPU_TEVOPERANDS (   a,
  b,
 
)    (((a))|((b)<<4)|((c)<<8))

Definition at line 183 of file gpu.h.

#define GPU_TEVSOURCES (   a,
  b,
 
)    (((a))|((b)<<4)|((c)<<8))

Definition at line 182 of file gpu.h.

#define GPU_TEXTURE_MAG_FILTER (   v)    (((v)&0x1)<<1)

Definition at line 17 of file gpu.h.

#define GPU_TEXTURE_MIN_FILTER (   v)    (((v)&0x1)<<2)

Definition at line 18 of file gpu.h.

#define GPU_TEXTURE_WRAP_S (   v)    (((v)&0x3)<<8)

Definition at line 19 of file gpu.h.

#define GPU_TEXTURE_WRAP_T (   v)    (((v)&0x3)<<12)

Definition at line 20 of file gpu.h.

Enumeration Type Documentation

Enumerator
GPU_BLEND_ADD 
GPU_BLEND_SUBTRACT 
GPU_BLEND_REVERSE_SUBTRACT 
GPU_BLEND_MIN 
GPU_BLEND_MAX 

Definition at line 98 of file gpu.h.

Enumerator
GPU_ZERO 
GPU_ONE 
GPU_SRC_COLOR 
GPU_ONE_MINUS_SRC_COLOR 
GPU_DST_COLOR 
GPU_ONE_MINUS_DST_COLOR 
GPU_SRC_ALPHA 
GPU_ONE_MINUS_SRC_ALPHA 
GPU_DST_ALPHA 
GPU_ONE_MINUS_DST_ALPHA 
GPU_CONSTANT_COLOR 
GPU_ONE_MINUS_CONSTANT_COLOR 
GPU_CONSTANT_ALPHA 
GPU_ONE_MINUS_CONSTANT_ALPHA 
GPU_SRC_ALPHA_SATURATE 

Definition at line 107 of file gpu.h.

Enumerator
GPU_REPLACE 
GPU_MODULATE 
GPU_ADD 
GPU_ADD_SIGNED 
GPU_INTERPOLATE 
GPU_SUBTRACT 
GPU_DOT3_RGB 

Definition at line 172 of file gpu.h.

Enumerator
GPU_CULL_NONE 
GPU_CULL_FRONT_CCW 
GPU_CULL_BACK_CCW 

Definition at line 154 of file gpu.h.

Enumerator
GPU_BYTE 
GPU_UNSIGNED_BYTE 
GPU_SHORT 
GPU_FLOAT 

Definition at line 146 of file gpu.h.

Enumerator
GPU_LOGICOP_CLEAR 
GPU_LOGICOP_AND 
GPU_LOGICOP_AND_REVERSE 
GPU_LOGICOP_COPY 
GPU_LOGICOP_SET 
GPU_LOGICOP_COPY_INVERTED 
GPU_LOGICOP_NOOP 
GPU_LOGICOP_INVERT 
GPU_LOGICOP_NAND 
GPU_LOGICOP_OR 
GPU_LOGICOP_NOR 
GPU_LOGICOP_XOR 
GPU_LOGICOP_EQUIV 
GPU_LOGICOP_AND_INVERTED 
GPU_LOGICOP_OR_REVERSE 
GPU_LOGICOP_OR_INVERTED 

Definition at line 126 of file gpu.h.

Enumerator
GPU_TRIANGLES 
GPU_TRIANGLE_STRIP 
GPU_TRIANGLE_FAN 
GPU_UNKPRIM 

Definition at line 185 of file gpu.h.

Enumerator
GPU_SCISSOR_DISABLE 
GPU_SCISSOR_INVERT 
GPU_SCISSOR_NORMAL 

Definition at line 69 of file gpu.h.

Enumerator
GPU_KEEP 
GPU_AND_NOT 
GPU_XOR 

Definition at line 78 of file gpu.h.

Enumerator
GPU_NEVER 
GPU_ALWAYS 
GPU_EQUAL 
GPU_NOTEQUAL 
GPU_LESS 
GPU_LEQUAL 
GPU_GREATER 
GPU_GEQUAL 

Definition at line 57 of file gpu.h.

enum GPU_TEVSRC
Enumerator
GPU_PRIMARY_COLOR 
GPU_TEXTURE0 
GPU_TEXTURE1 
GPU_TEXTURE2 
GPU_TEXTURE3 
GPU_CONSTANT 
GPU_PREVIOUS 

Definition at line 162 of file gpu.h.

Enumerator
GPU_RGBA8 
GPU_RGB8 
GPU_RGBA5551 
GPU_RGB565 
GPU_RGBA4 
GPU_LA8 
GPU_HILO8 
GPU_L8 
GPU_A8 
GPU_LA4 
GPU_L4 
GPU_ETC1 
GPU_ETC1A4 

Definition at line 41 of file gpu.h.

Enumerator
GPU_NEAREST 
GPU_LINEAR 

Definition at line 22 of file gpu.h.

Enumerator
GPU_CLAMP_TO_EDGE 
GPU_REPEAT 

Definition at line 28 of file gpu.h.

Enumerator
GPU_TEXUNIT0 
GPU_TEXUNIT1 
GPU_TEXUNIT2 

Definition at line 34 of file gpu.h.

Enumerator
GPU_WRITE_RED 
GPU_WRITE_GREEN 
GPU_WRITE_BLUE 
GPU_WRITE_ALPHA 
GPU_WRITE_DEPTH 
GPU_WRITE_COLOR 
GPU_WRITE_ALL 

Definition at line 86 of file gpu.h.

Function Documentation

void GPU_DepthRange ( float  nearVal,
float  farVal 
)

Definition at line 322 of file gpu.c.

void GPU_DrawArray ( GPU_Primitive_t  primitive,
u32  n 
)

Definition at line 467 of file gpu.c.

void GPU_DrawElements ( GPU_Primitive_t  primitive,
u32 indexArray,
u32  n 
)

Definition at line 489 of file gpu.c.

void GPU_FinishDrawing ( )

Definition at line 510 of file gpu.c.

void GPU_Init ( Handle gsphandle)

Definition at line 13 of file gpu.c.

void GPU_Reset ( u32 gxbuf,
u32 gpuBuf,
u32  gpuBufSize 
)

Definition at line 104 of file gpu.c.

void GPU_SetAlphaBlending ( GPU_BLENDEQUATION  colorEquation,
GPU_BLENDEQUATION  alphaEquation,
GPU_BLENDFACTOR  colorSrc,
GPU_BLENDFACTOR  colorDst,
GPU_BLENDFACTOR  alphaSrc,
GPU_BLENDFACTOR  alphaDst 
)

Definition at line 349 of file gpu.c.

void GPU_SetAlphaTest ( bool  enable,
GPU_TESTFUNC  function,
u8  ref 
)

Definition at line 329 of file gpu.c.

void GPU_SetAttributeBuffers ( u8  totalAttributes,
u32 baseAddress,
u64  attributeFormats,
u16  attributeMask,
u64  attributePermutation,
u8  numBuffers,
u32  bufferOffsets[],
u64  bufferPermutations[],
u8  bufferNumAttributes[] 
)

Definition at line 403 of file gpu.c.

void GPU_SetBlendingColor ( u8  r,
u8  g,
u8  b,
u8  a 
)

Definition at line 363 of file gpu.c.

void GPU_SetColorLogicOp ( GPU_LOGICOP  op)

Definition at line 357 of file gpu.c.

void GPU_SetDepthTestAndWriteMask ( bool  enable,
GPU_TESTFUNC  function,
GPU_WRITEMASK  writemask 
)

Definition at line 344 of file gpu.c.

void GPU_SetFaceCulling ( GPU_CULLMODE  mode)

Definition at line 445 of file gpu.c.

void GPU_SetScissorTest ( GPU_SCISSORMODE  mode,
u32  x,
u32  y,
u32  w,
u32  h 
)

Definition at line 312 of file gpu.c.

void GPU_SetStencilOp ( GPU_STENCILOP  sfail,
GPU_STENCILOP  dfail,
GPU_STENCILOP  pass 
)

Definition at line 339 of file gpu.c.

void GPU_SetStencilTest ( bool  enable,
GPU_TESTFUNC  function,
u8  ref,
u8  mask,
u8  replace 
)

Definition at line 334 of file gpu.c.

void GPU_SetTexEnv ( u8  id,
u16  rgbSources,
u16  alphaSources,
u16  rgbOperands,
u16  alphaOperands,
GPU_COMBINEFUNC  rgbCombine,
GPU_COMBINEFUNC  alphaCombine,
u32  constantColor 
)

Definition at line 452 of file gpu.c.

void GPU_SetTexture ( GPU_TEXUNIT  unit,
u32 data,
u16  width,
u16  height,
u32  param,
GPU_TEXCOLOR  colorType 
)

Definition at line 374 of file gpu.c.

void GPU_SetTextureEnable ( GPU_TEXUNIT  units)

Definition at line 368 of file gpu.c.

void GPU_SetUniform ( u32  startreg,
u32 data,
u32  numreg 
)

Definition at line 225 of file gpu.c.

void GPU_SetViewport ( u32 depthBuffer,
u32 colorBuffer,
u32  x,
u32  y,
u32  w,
u32  h 
)

Definition at line 270 of file gpu.c.

void GPUCMD_Add ( u32  cmd,
u32 param,
u32  paramlength 
)

Definition at line 63 of file gpu.c.

void GPUCMD_AddRawCommands ( u32 cmd,
u32  size 
)

Definition at line 39 of file gpu.c.

void GPUCMD_AddSingleParam ( u32  cmd,
u32  param 
)

Definition at line 88 of file gpu.c.

void GPUCMD_Finalize ( )

Definition at line 93 of file gpu.c.

void GPUCMD_FlushAndRun ( u32 gxbuf)

Definition at line 56 of file gpu.c.

void GPUCMD_GetBuffer ( u32 **  adr,
u32 size,
u32 offset 
)

Definition at line 32 of file gpu.c.

void GPUCMD_Run ( u32 gxbuf)

Definition at line 47 of file gpu.c.

void GPUCMD_SetBuffer ( u32 adr,
u32  size,
u32  offset 
)

Definition at line 20 of file gpu.c.

void GPUCMD_SetBufferOffset ( u32  offset)

Definition at line 27 of file gpu.c.