pspsdk-1.0+beta2
|
Functions | |
void | sceGuDepthBuffer (void *zbp, int zbw) |
Set depth buffer parameters. | |
void | sceGuDispBuffer (int width, int height, void *dispbp, int dispbw) |
Set display buffer parameters. | |
void | sceGuDrawBuffer (int psm, void *fbp, int fbw) |
Set draw buffer parameters (and store in context for buffer-swap) | |
void | sceGuDrawBufferList (int psm, void *fbp, int fbw) |
Set draw buffer directly, not storing parameters in the context. | |
int | sceGuDisplay (int state) |
Turn display on or off. | |
void | sceGuDepthFunc (int function) |
Select which depth-test function to use. | |
void | sceGuDepthMask (int mask) |
Mask depth buffer writes. | |
void | sceGuDepthOffset (unsigned int offset) |
void | sceGuDepthRange (int near, int far) |
Set which range to use for depth calculations. | |
void | sceGuFog (float near, float far, unsigned int color) |
void | sceGuInit (void) |
Initalize the GU system. | |
void | sceGuTerm (void) |
Shutdown the GU system. | |
void | sceGuBreak (int a0) |
void | sceGuContinue (void) |
void * | sceGuSetCallback (int signal, void(*callback)(int)) |
Setup signal handler. | |
void | sceGuSignal (int signal, int behavior) |
Trigger signal to call code from the command stream. | |
void | sceGuSendCommandf (int cmd, float argument) |
Send raw float-command to the GE. | |
void | sceGuSendCommandi (int cmd, int argument) |
Send raw command to the GE. | |
void * | sceGuGetMemory (int size) |
Allocate memory on the current display list for temporary storage. | |
void | sceGuStart (int cid, void *list) |
Start filling a new display-context. | |
int | sceGuFinish (void) |
Finish current display list and go back to the parent context. | |
int | sceGuFinishId (unsigned int id) |
Finish current display list and go back to the parent context, sending argument id for the finish callback. | |
void | sceGuCallList (const void *list) |
Call previously generated display-list. | |
void | sceGuCallMode (int mode) |
Set wether to use stack-based calls or signals to handle execution of called lists. | |
int | sceGuCheckList (void) |
Check how large the current display-list is. | |
void | sceGuSendList (int mode, const void *list, PspGeContext *context) |
Send a list to the GE directly. | |
void * | sceGuSwapBuffers (void) |
Swap display and draw buffer. | |
int | sceGuSync (int mode, int what) |
Wait until display list has finished executing. | |
void | sceGuDrawArray (int prim, int vtype, int count, const void *indices, const void *vertices) |
Draw array of vertices forming primitives. | |
void | sceGuBeginObject (int vtype, int count, const void *indices, const void *vertices) |
Begin conditional rendering of object. | |
void | sceGuEndObject (void) |
End conditional rendering of object. | |
void | sceGuSetStatus (int state, int status) |
Enable or disable GE state. | |
int | sceGuGetStatus (int state) |
Get if state is currently enabled or disabled. | |
void | sceGuSetAllStatus (int status) |
Set the status on all 22 available states. | |
int | sceGuGetAllStatus (void) |
Query status on all 22 available states. | |
void | sceGuEnable (int state) |
Enable GE state. | |
void | sceGuDisable (int state) |
Disable GE state. | |
void | sceGuLight (int light, int type, int components, const ScePspFVector3 *position) |
Set light parameters. | |
void | sceGuLightAtt (int light, float atten0, float atten1, float atten2) |
Set light attenuation. | |
void | sceGuLightColor (int light, int component, unsigned int color) |
Set light color. | |
void | sceGuLightMode (int mode) |
Set light mode. | |
void | sceGuLightSpot (int light, const ScePspFVector3 *direction, float exponent, float cutoff) |
Set spotlight parameters. | |
void | sceGuClear (int flags) |
Clear current drawbuffer. | |
void | sceGuClearColor (unsigned int color) |
Set the current clear-color. | |
void | sceGuClearDepth (unsigned int depth) |
Set the current clear-depth. | |
void | sceGuClearStencil (unsigned int stencil) |
Set the current stencil clear value. | |
void | sceGuPixelMask (unsigned int mask) |
Set mask for which bits of the pixels to write. | |
void | sceGuColor (unsigned int color) |
Set current primitive color. | |
void | sceGuColorFunc (int func, unsigned int color, unsigned int mask) |
Set the color test function. | |
void | sceGuColorMaterial (int components) |
Set which color components that the material will receive. | |
void | sceGuAlphaFunc (int func, int value, int mask) |
Set the alpha test parameters. | |
void | sceGuAmbient (unsigned int color) |
void | sceGuAmbientColor (unsigned int color) |
void | sceGuBlendFunc (int op, int src, int dest, unsigned int srcfix, unsigned int destfix) |
Set the blending-mode. | |
void | sceGuMaterial (int mode, int color) |
void | sceGuModelColor (unsigned int emissive, unsigned int ambient, unsigned int diffuse, unsigned int specular) |
void | sceGuStencilFunc (int func, int ref, int mask) |
Set stencil function and reference value for stencil testing. | |
void | sceGuStencilOp (int fail, int zfail, int zpass) |
Set the stencil test actions. | |
void | sceGuSpecular (float power) |
Set the specular power for the material. | |
void | sceGuFrontFace (int order) |
Set the current face-order (for culling) | |
void | sceGuLogicalOp (int op) |
Set color logical operation. | |
void | sceGuSetDither (const ScePspIMatrix4 *matrix) |
Set ordered pixel dither matrix. | |
void | sceGuShadeModel (int mode) |
Set how primitives are shaded. | |
void | sceGuCopyImage (int psm, int sx, int sy, int width, int height, int srcw, void *src, int dx, int dy, int destw, void *dest) |
Image transfer using the GE. | |
void | sceGuTexEnvColor (unsigned int color) |
Specify the texture environment color. | |
void | sceGuTexFilter (int min, int mag) |
Set how the texture is filtered. | |
void | sceGuTexFlush (void) |
Flush texture page-cache. | |
void | sceGuTexFunc (int tfx, int tcc) |
Set how textures are applied. | |
void | sceGuTexImage (int mipmap, int width, int height, int tbw, const void *tbp) |
Set current texturemap. | |
void | sceGuTexLevelMode (unsigned int mode, float bias) |
Set texture-level mode (mipmapping) | |
void | sceGuTexMapMode (int mode, unsigned int a1, unsigned int a2) |
Set the texture-mapping mode. | |
void | sceGuTexMode (int tpsm, int maxmips, int a2, int swizzle) |
Set texture-mode parameters. | |
void | sceGuTexOffset (float u, float v) |
Set texture offset. | |
void | sceGuTexProjMapMode (int mode) |
Set texture projection-map mode. | |
void | sceGuTexScale (float u, float v) |
Set texture scale. | |
void | sceGuTexSlope (float slope) |
void | sceGuTexSync () |
Synchronize rendering pipeline with image upload. | |
void | sceGuTexWrap (int u, int v) |
Set if the texture should repeat or clamp. | |
void | sceGuClutLoad (int num_blocks, const void *cbp) |
Upload CLUT (Color Lookup Table) | |
void | sceGuClutMode (unsigned int cpsm, unsigned int shift, unsigned int mask, unsigned int a3) |
Set current CLUT mode. | |
void | sceGuOffset (unsigned int x, unsigned int y) |
Set virtual coordinate offset. | |
void | sceGuScissor (int x, int y, int stopX, int stopY) |
Set what to scissor within the current framebuffer. | |
void | sceGuViewport (int cx, int cy, int width, int height) |
Set current viewport. | |
void | sceGuDrawBezier (int vtype, int ucount, int vcount, const void *indices, const void *vertices) |
Draw bezier surface. | |
void | sceGuPatchDivide (unsigned int ulevel, unsigned int vlevel) |
Set dividing for patches (beziers and splines) | |
void | sceGuPatchFrontFace (unsigned int a0) |
void | sceGuPatchPrim (int prim) |
Set primitive for patches (beziers and splines) | |
void | sceGuDrawSpline (int vtype, int ucount, int vcount, int uedge, int vedge, const void *indices, const void *vertices) |
void | sceGuSetMatrix (int type, const ScePspFMatrix4 *matrix) |
Set transform matrices. | |
void | sceGuBoneMatrix (unsigned int index, const ScePspFMatrix4 *matrix) |
Specify skinning matrix entry. | |
void | sceGuMorphWeight (int index, float weight) |
Specify morph weight entry. | |
void | sceGuDrawArrayN (int primitive_type, int vertex_type, int count, int a3, const void *indices, const void *vertices) |
void | guSwapBuffersBehaviour (int behaviour) |
Set how the display should be set. | |
void | guSwapBuffersCallback (GuSwapBuffersCallback callback) |
Set a buffer swap callback to allow for more advanced buffer methods without hacking the library. |
void guSwapBuffersBehaviour | ( | int | behaviour | ) |
Set how the display should be set.
Available behaviours are:
Do remember that this swaps the pointers internally, regardless of setting, so be careful to wait until the next vertical blank or use another buffering algorithm (see guSwapBuffersCallback()).
References gu_settings, and GuSettings::swapBuffersBehaviour.
void guSwapBuffersCallback | ( | GuSwapBuffersCallback | callback | ) |
Set a buffer swap callback to allow for more advanced buffer methods without hacking the library.
The GuSwapBuffersCallback is defined like this:
and on entry they contain the variables that are to be set. To change the pointers that will be used, just write the new pointers. Example of a triple-buffering algorithm:
callback | - Callback to access when buffers are swapped. Pass 0 to disable. |
References gu_settings, and GuSettings::swapBuffersCallback.
void sceGuAlphaFunc | ( | int | func, |
int | value, | ||
int | mask | ||
) |
Set the alpha test parameters.
Available comparison functions are:
func | - Specifies the alpha comparison function. |
value | - Specifies the reference value that incoming alpha values are compared to. |
mask | - Specifies the mask that both values are ANDed with before comparison. |
References sendCommandi().
void sceGuAmbient | ( | unsigned int | color | ) |
References sendCommandi().
void sceGuAmbientColor | ( | unsigned int | color | ) |
References sendCommandi().
void sceGuBeginObject | ( | int | vtype, |
int | count, | ||
const void * | indices, | ||
const void * | vertices | ||
) |
Begin conditional rendering of object.
If no vertices passed into this function are inside the scissor region, it will skip rendering the object. There can be up to 32 levels of conditional testing, and all levels HAVE to be terminated by sceGuEndObject().
vtype | - Vertex type to process |
count | - Number of vertices to test |
indices | - Optional list to an index-list |
vertices | - Pointer to a vertex-list |
References GuDisplayList::current, gu_list, gu_object_stack, gu_object_stack_depth, and sendCommandi().
void sceGuBlendFunc | ( | int | op, |
int | src, | ||
int | dest, | ||
unsigned int | srcfix, | ||
unsigned int | destfix | ||
) |
Set the blending-mode.
Keys for the blending operations:
Available blending-operations are:
Available blending-functions are:
op | - Blending Operation |
src | - Blending function for source operand |
dest | - Blending function for dest operand |
srcfix | - Fix value for GU_FIX (source operand) |
destfix | - Fix value for GU_FIX (dest operand) |
References sendCommandi().
void sceGuBoneMatrix | ( | unsigned int | index, |
const ScePspFMatrix4 * | matrix | ||
) |
Specify skinning matrix entry.
To enable vertex skinning, pass GU_WEIGHTS(n), where n is between 1-8, and pass available GU_WEIGHT_??? declaration. This will change the amount of weights passed in the vertex araay, and by setting the skinning, matrices, you will multiply each vertex every weight and vertex passed.
Please see sceGuDrawArray() for vertex format information.
index | - Skinning matrix index (0-7) |
matrix | - Matrix to set |
References i, offset, sendCommandf(), and sendCommandi().
void sceGuBreak | ( | int | a0 | ) |
void sceGuCallList | ( | const void * | list | ) |
Call previously generated display-list.
list | - Display list to call |
References gu_call_mode, sendCommandi(), and sendCommandiStall().
void sceGuCallMode | ( | int | mode | ) |
Set wether to use stack-based calls or signals to handle execution of called lists.
mode | - GU_TRUE(1) to enable signals, GU_FALSE(0) to disable signals and use normal calls instead. |
References gu_call_mode.
int sceGuCheckList | ( | void | ) |
Check how large the current display-list is.
References GuDisplayList::current, gu_list, and GuDisplayList::start.
void sceGuClear | ( | int | flags | ) |
Clear current drawbuffer.
Available clear-flags are (OR them together to get final clear-mode):
flags | - Which part of the buffer to clear |
References GuContext::clear_color, GuContext::clear_depth, GuContext::clear_stencil, count, GU_COLOR_8888, GU_COLOR_BUFFER_BIT, gu_contexts, gu_curr_context, GU_DEPTH_BUFFER_BIT, gu_draw_buffer, GU_FAST_CLEAR_BIT, GU_SPRITES, GU_STENCIL_BUFFER_BIT, GU_TRANSFORM_2D, GU_VERTEX_16BIT, GuDrawBuffer::height, i, GuDrawBuffer::pixel_size, sceGuDrawArray(), sceGuGetMemory(), sendCommandi(), GuDrawBuffer::width, x, y, and z.
void sceGuClearColor | ( | unsigned int | color | ) |
Set the current clear-color.
color | - Color to clear with |
References GuContext::clear_color, gu_contexts, and gu_curr_context.
void sceGuClearDepth | ( | unsigned int | depth | ) |
Set the current clear-depth.
depth | - Set which depth to clear with (0x0000-0xffff) |
References GuContext::clear_depth, gu_contexts, and gu_curr_context.
void sceGuClearStencil | ( | unsigned int | stencil | ) |
Set the current stencil clear value.
stencil | - Set which stencil value to clear with (0-255) |
References GuContext::clear_stencil, gu_contexts, and gu_curr_context.
void sceGuClutLoad | ( | int | num_blocks, |
const void * | cbp | ||
) |
Upload CLUT (Color Lookup Table)
num_blocks | - How many blocks of 8 entries to upload (32*8 is 256 colors) |
cbp | - Pointer to palette (16 byte aligned) |
References sendCommandi().
void sceGuClutMode | ( | unsigned int | cpsm, |
unsigned int | shift, | ||
unsigned int | mask, | ||
unsigned int | a3 | ||
) |
Set current CLUT mode.
Available pixel formats for palettes are:
cpsm | - Which pixel format to use for the palette |
shift | - Shifts color index by that many bits to the right |
mask | - Masks the color index with this bitmask after the shift (0-0xFF) |
a3 | - Unknown, set to 0 |
References sendCommandi().
void sceGuColor | ( | unsigned int | color | ) |
Set current primitive color.
color | - Which color to use (overriden by vertex-colors) |
References sceGuMaterial().
void sceGuColorFunc | ( | int | func, |
unsigned int | color, | ||
unsigned int | mask | ||
) |
Set the color test function.
The color test is only performed while GU_COLOR_TEST is enabled.
Available functions are:
func | - Color test function |
color | - Color to test against |
mask | - Mask ANDed against both source and destination when testing |
References sendCommandi().
void sceGuColorMaterial | ( | int | components | ) |
Set which color components that the material will receive.
The components are ORed together from the following values:
components | - Which components to receive |
References sendCommandi().
Referenced by sceGuStart().
void sceGuContinue | ( | void | ) |
void sceGuCopyImage | ( | int | psm, |
int | sx, | ||
int | sy, | ||
int | width, | ||
int | height, | ||
int | srcw, | ||
void * | src, | ||
int | dx, | ||
int | dy, | ||
int | destw, | ||
void * | dest | ||
) |
Image transfer using the GE.
psm | - Pixel format for buffer |
sx | - Source X |
sy | - Source Y |
width | - Image width |
height | - Image height |
srcw | - Source buffer width (block aligned) |
src | - Source pointer |
dx | - Destination X |
dy | - Destination Y |
destw | - Destination buffer width (block aligned) |
dest | - Destination pointer |
References sendCommandi().
void sceGuDepthBuffer | ( | void * | zbp, |
int | zbw | ||
) |
Set depth buffer parameters.
zbp | - VRAM pointer where the depthbuffer should start |
zbw | - The width of the depth-buffer (block-aligned) |
References GuDrawBuffer::depth_buffer, GuDrawBuffer::depth_width, gu_draw_buffer, and sendCommandi().
void sceGuDepthFunc | ( | int | function | ) |
Select which depth-test function to use.
Valid choices for the depth-test are:
function | - Depth test function to use |
References sendCommandi().
void sceGuDepthMask | ( | int | mask | ) |
Mask depth buffer writes.
mask | - GU_TRUE(1) to disable Z writes, GU_FALSE(0) to enable |
References sendCommandi().
void sceGuDepthOffset | ( | unsigned int | offset | ) |
void sceGuDepthRange | ( | int | near, |
int | far | ||
) |
Set which range to use for depth calculations.
Example: Use the entire depth-range for calculations:
near | - Value to use for the near plane |
far | - Value to use for the far plane |
References GuContext::depth_offset, GuContext::far_plane, gu_contexts, gu_curr_context, GuContext::near_plane, sendCommandf(), sendCommandi(), and z.
Referenced by sceGuDepthOffset().
void sceGuDisable | ( | int | state | ) |
Disable GE state.
Look at sceGuEnable() for a list of states
state | - Which state to disable |
References GuContext::fragment_2x, GU_ALPHA_TEST, GU_BLEND, GU_CLIP_PLANES, GU_COLOR_LOGIC_OP, GU_COLOR_TEST, gu_contexts, GU_CULL_FACE, gu_curr_context, GU_DEPTH_TEST, GU_DITHER, gu_draw_buffer, GU_FACE_NORMAL_REVERSE, GU_FOG, GU_FRAGMENT_2X, GU_LIGHT0, GU_LIGHT1, GU_LIGHT2, GU_LIGHT3, GU_LIGHTING, GU_LINE_SMOOTH, GU_PATCH_CULL_FACE, GU_PATCH_FACE, GU_SCISSOR_TEST, gu_states, GU_STENCIL_TEST, GU_TEXTURE_2D, GuDrawBuffer::height, GuContext::scissor_enable, sendCommandi(), GuContext::texture_function, and GuDrawBuffer::width.
Referenced by sceGuSetAllStatus(), and sceGuSetStatus().
void sceGuDispBuffer | ( | int | width, |
int | height, | ||
void * | dispbp, | ||
int | dispbw | ||
) |
Set display buffer parameters.
width | - Width of the display buffer in pixels |
height | - Width of the display buffer in pixels |
dispbp | - VRAM pointer to where the display-buffer starts |
dispbw | - Display buffer width (block aligned) |
References GuDrawBuffer::disp_buffer, drawRegion(), GuDrawBuffer::frame_width, ge_edram_address, gu_display_on, gu_draw_buffer, GuDrawBuffer::height, GuDrawBuffer::pixel_size, PSP_DISPLAY_SETBUF_NEXTFRAME, sceDisplaySetFrameBuf(), sceDisplaySetMode(), and GuDrawBuffer::width.
int sceGuDisplay | ( | int | state | ) |
Turn display on or off.
Available states are:
state | - Turn display on or off |
References GuDrawBuffer::disp_buffer, GuDrawBuffer::frame_width, ge_edram_address, gu_display_on, gu_draw_buffer, GuDrawBuffer::pixel_size, PSP_DISPLAY_SETBUF_NEXTFRAME, and sceDisplaySetFrameBuf().
void sceGuDrawArray | ( | int | prim, |
int | vtype, | ||
int | count, | ||
const void * | indices, | ||
const void * | vertices | ||
) |
Draw array of vertices forming primitives.
Available primitive-types are:
The vertex-type decides how the vertices align and what kind of information they contain. The following flags are ORed together to compose the final vertex format:
Vertex order: [for vertices(1-8)] [weights (0-8)] [texture uv] [color] [normal] [vertex] [/for]
prim | - What kind of primitives to render |
vtype | - Vertex type to process |
count | - How many vertices to process |
indices | - Optional pointer to an index-list |
vertices | - Pointer to a vertex-list |
References sendCommandi(), and sendCommandiStall().
Referenced by sceGuClear().
void sceGuDrawArrayN | ( | int | primitive_type, |
int | vertex_type, | ||
int | count, | ||
int | a3, | ||
const void * | indices, | ||
const void * | vertices | ||
) |
References i, sendCommandi(), and sendCommandiStall().
void sceGuDrawBezier | ( | int | vtype, |
int | ucount, | ||
int | vcount, | ||
const void * | indices, | ||
const void * | vertices | ||
) |
Draw bezier surface.
vtype | - Vertex type, look at sceGuDrawArray() for vertex definition |
ucount | - Number of vertices used in the U direction |
vcount | - Number of vertices used in the V direction |
indices | - Pointer to index buffer |
vertices | - Pointer to vertex buffer |
References sendCommandi().
void sceGuDrawBuffer | ( | int | psm, |
void * | fbp, | ||
int | fbw | ||
) |
Set draw buffer parameters (and store in context for buffer-swap)
Available pixel formats are:
psm | - Pixel format to use for rendering (and display) |
fbp | - VRAM pointer to where the draw buffer starts |
fbw | - Frame buffer width (block aligned) |
References GuDrawBuffer::depth_buffer, GuDrawBuffer::depth_width, GuDrawBuffer::frame_buffer, GuDrawBuffer::frame_width, gu_draw_buffer, GuDrawBuffer::height, GuDrawBuffer::pixel_size, and sendCommandi().
void sceGuDrawBufferList | ( | int | psm, |
void * | fbp, | ||
int | fbw | ||
) |
Set draw buffer directly, not storing parameters in the context.
psm | - Pixel format to use for rendering |
fbp | - VRAM pointer to where the draw buffer starts |
fbw | - Frame buffer width (block aligned) |
References sendCommandi().
void sceGuDrawSpline | ( | int | vtype, |
int | ucount, | ||
int | vcount, | ||
int | uedge, | ||
int | vedge, | ||
const void * | indices, | ||
const void * | vertices | ||
) |
References sendCommandi().
void sceGuEnable | ( | int | state | ) |
Enable GE state.
The currently available states are:
state | - Which state to enable |
References GuContext::fragment_2x, GU_ALPHA_TEST, GU_BLEND, GU_CLIP_PLANES, GU_COLOR_LOGIC_OP, GU_COLOR_TEST, gu_contexts, GU_CULL_FACE, gu_curr_context, GU_DEPTH_TEST, GU_DITHER, GU_FACE_NORMAL_REVERSE, GU_FOG, GU_FRAGMENT_2X, GU_LIGHT0, GU_LIGHT1, GU_LIGHT2, GU_LIGHT3, GU_LIGHTING, GU_LINE_SMOOTH, GU_PATCH_CULL_FACE, GU_PATCH_FACE, GU_SCISSOR_TEST, gu_states, GU_STENCIL_TEST, GU_TEXTURE_2D, GuContext::scissor_enable, GuContext::scissor_end, GuContext::scissor_start, sendCommandi(), and GuContext::texture_function.
Referenced by sceGuSetAllStatus(), and sceGuSetStatus().
void sceGuEndObject | ( | void | ) |
End conditional rendering of object.
References GuDisplayList::current, gu_list, gu_object_stack, gu_object_stack_depth, and sendCommandi().
int sceGuFinish | ( | void | ) |
Finish current display list and go back to the parent context.
If the context is GU_DIRECT, the stall-address is updated so that the entire list will execute. Otherwise, only the terminating action is written to the list, depending on context-type.
The finish-callback will get a zero as argument when using this function.
This also restores control back to whatever context that was active prior to this call.
References GuDisplayList::current, GU_CALL, gu_call_mode, gu_contexts, gu_curr_context, GU_DIRECT, gu_list, GU_SEND, GuContext::list, GuDisplayList::parent_context, sendCommandi(), sendCommandiStall(), size, and GuDisplayList::start.
int sceGuFinishId | ( | unsigned int | id | ) |
Finish current display list and go back to the parent context, sending argument id for the finish callback.
If the context is GU_DIRECT, the stall-address is updated so that the entire list will execute. Otherwise, only the terminating action is written to the list, depending on context-type.
id | - Finish callback id (16-bit) |
References GuDisplayList::current, GU_CALL, gu_call_mode, gu_contexts, gu_curr_context, GU_DIRECT, gu_list, GU_SEND, GuContext::list, GuDisplayList::parent_context, sendCommandi(), sendCommandiStall(), size, and GuDisplayList::start.
void sceGuFog | ( | float | near, |
float | far, | ||
unsigned int | color | ||
) |
References sendCommandf(), and sendCommandi().
void sceGuFrontFace | ( | int | order | ) |
Set the current face-order (for culling)
This only has effect when culling is enabled (GU_CULL_FACE)
Culling order can be:
order | - Which order to use |
References sendCommandi().
int sceGuGetAllStatus | ( | void | ) |
Query status on all 22 available states.
Look at sceGuEnable() for a list of states
References gu_states.
void* sceGuGetMemory | ( | int | size | ) |
Allocate memory on the current display list for temporary storage.
size | - How much memory to allocate |
References GuDisplayList::current, ge_list_executed, gu_curr_context, gu_list, and sceGeListUpdateStallAddr().
Referenced by sceGuClear().
int sceGuGetStatus | ( | int | state | ) |
Get if state is currently enabled or disabled.
Look at sceGuEnable() for a list of states
state | - Which state to query about |
References gu_states.
void sceGuInit | ( | void | ) |
Initalize the GU system.
This function MUST be called as the first function, otherwise state is undetermined.
References callbackFin(), callbackSig(), PspGeCallbackData::finish_arg, PspGeCallbackData::finish_func, GuSettings::ge_callback_id, ge_edram_address, ge_list_executed, gu_settings, GuSettings::kernel_event_flag, PSP_DISPLAY_SETBUF_IMMEDIATE, resetValues(), sceGeEdramGetAddr(), sceGeListEnQueue(), sceGeListSync(), sceGeSetCallback(), sceKernelCreateEventFlag(), PspGeCallbackData::signal_arg, PspGeCallbackData::signal_func, GuSettings::swapBuffersBehaviour, and GuSettings::swapBuffersCallback.
void sceGuLight | ( | int | light, |
int | type, | ||
int | components, | ||
const ScePspFVector3 * | position | ||
) |
Set light parameters.
Available light types are:
Available light components are:
light | - Light index |
type | - Light type |
components | - Light components |
position | - Light position |
References light_settings, sendCommandf(), sendCommandi(), GuLightSettings::type, ScePspFVector3::x, GuLightSettings::xpos, ScePspFVector3::y, GuLightSettings::ypos, ScePspFVector3::z, and GuLightSettings::zpos.
void sceGuLightAtt | ( | int | light, |
float | atten0, | ||
float | atten1, | ||
float | atten2 | ||
) |
Set light attenuation.
light | - Light index |
atten0 | - Constant attenuation factor |
atten1 | - Linear attenuation factor |
atten2 | - Quadratic attenuation factor |
References GuLightSettings::constant, light_settings, GuLightSettings::linear, GuLightSettings::quadratic, and sendCommandf().
void sceGuLightColor | ( | int | light, |
int | component, | ||
unsigned int | color | ||
) |
Set light color.
Available light components are:
light | - Light index |
component | - Which component to set |
color | - Which color to use |
References GuLightSettings::ambient, GuLightSettings::diffuse, GU_AMBIENT, GU_AMBIENT_AND_DIFFUSE, GU_DIFFUSE, GU_DIFFUSE_AND_SPECULAR, GU_SPECULAR, light_settings, sendCommandi(), and GuLightSettings::specular.
void sceGuLightMode | ( | int | mode | ) |
Set light mode.
Available light modes are:
Separate specular colors are used to interpolate the specular component independently, so that it can be added to the fragment after the texture color.
mode | - Light mode to use |
References sendCommandi().
void sceGuLightSpot | ( | int | light, |
const ScePspFVector3 * | direction, | ||
float | exponent, | ||
float | cutoff | ||
) |
Set spotlight parameters.
light | - Light index |
direction | - Spotlight direction |
exponent | - Spotlight exponent |
cutoff | - Spotlight cutoff angle (in radians) |
References GuLightSettings::cutoff, GuLightSettings::exponent, light_settings, sendCommandf(), ScePspFVector3::x, GuLightSettings::xdir, ScePspFVector3::y, GuLightSettings::ydir, ScePspFVector3::z, and GuLightSettings::zdir.
void sceGuLogicalOp | ( | int | op | ) |
Set color logical operation.
Available operations are:
This operation only has effect if GU_COLOR_LOGIC_OP is enabled.
op | - Operation to execute |
References sendCommandi().
void sceGuMaterial | ( | int | mode, |
int | color | ||
) |
References sendCommandi().
Referenced by sceGuColor().
void sceGuModelColor | ( | unsigned int | emissive, |
unsigned int | ambient, | ||
unsigned int | diffuse, | ||
unsigned int | specular | ||
) |
References sendCommandi().
void sceGuMorphWeight | ( | int | index, |
float | weight | ||
) |
Specify morph weight entry.
To enable vertex morphing, pass GU_VERTICES(n), where n is between 1-8. This will change the amount of vertices passed in the vertex array, and by setting the morph weights for every vertex entry in the array, you can blend between them.
Please see sceGuDrawArray() for vertex format information.
index | - Morph weight index (0-7) |
weight | - Weight to set |
References sendCommandf().
void sceGuOffset | ( | unsigned int | x, |
unsigned int | y | ||
) |
Set virtual coordinate offset.
The PSP has a virtual coordinate-space of 4096x4096, this controls where rendering is performed
x | - Offset (0-4095) |
y | - Offset (0-4095) |
References sendCommandi().
void sceGuPatchDivide | ( | unsigned int | ulevel, |
unsigned int | vlevel | ||
) |
Set dividing for patches (beziers and splines)
ulevel | - Number of division on u direction |
vlevel | - Number of division on v direction |
References sendCommandi().
Referenced by sceGuStart().
void sceGuPatchFrontFace | ( | unsigned int | a0 | ) |
References sendCommandi().
void sceGuPatchPrim | ( | int | prim | ) |
Set primitive for patches (beziers and splines)
prim | - Desired primitive type (GU_POINTS | GU_LINE_STRIP | GU_TRIANGLE_STRIP) |
References GU_LINE_STRIP, GU_POINTS, GU_TRIANGLE_STRIP, and sendCommandi().
void sceGuPixelMask | ( | unsigned int | mask | ) |
Set mask for which bits of the pixels to write.
mask | - Which bits to filter against writes |
References sendCommandi().
void sceGuScissor | ( | int | x, |
int | y, | ||
int | stopX, | ||
int | stopY | ||
) |
Set what to scissor within the current framebuffer.
Note that scissoring is only performed if the custom scissoring is enabled (GU_SCISSOR_TEST)
x | - Left of scissor region |
y | - Top of scissor region |
stopX | - Right of scissor region |
stopY | - Bottom of scissor region |
References gu_contexts, gu_curr_context, GuContext::scissor_enable, GuContext::scissor_end, GuContext::scissor_start, sendCommandi(), x, and y.
void sceGuSendCommandf | ( | int | cmd, |
float | argument | ||
) |
Send raw float-command to the GE.
The argument is converted into a 24-bit float before transfer.
cmd | - Which command to send |
argument | - Argument to pass along |
References sendCommandf().
void sceGuSendCommandi | ( | int | cmd, |
int | argument | ||
) |
Send raw command to the GE.
Only the 24 lower bits of the argument is passed along.
cmd | - Which command to send |
argument | - Argument to pass along |
References sendCommandi().
void sceGuSendList | ( | int | mode, |
const void * | list, | ||
PspGeContext * | context | ||
) |
Send a list to the GE directly.
Available modes are:
mode | - Whether to place the list first or last in queue |
list | - List to send |
context | - Temporary storage for the GE context |
References PspGeListArgs::context, GuSettings::ge_callback_id, ge_list_executed, GU_HEAD, gu_settings, GU_TAIL, sceGeListEnQueue(), sceGeListEnQueueHead(), GuSettings::signal_offset, and PspGeListArgs::size.
void sceGuSetAllStatus | ( | int | status | ) |
Set the status on all 22 available states.
Look at sceGuEnable() for a list of states
status | - Bit-mask (0-21) containing the status of all 22 states |
References i, sceGuDisable(), and sceGuEnable().
void* sceGuSetCallback | ( | int | signal, |
void(*)(int) | callback | ||
) |
Setup signal handler.
Available signals are:
signal | - Signal index to install a handler for |
callback | - Callback to call when signal index is triggered |
References GuSettings::fin, GU_CALLBACK_FINISH, GU_CALLBACK_SIGNAL, gu_settings, and GuSettings::sig.
void sceGuSetDither | ( | const ScePspIMatrix4 * | matrix | ) |
Set ordered pixel dither matrix.
This dither matrix is only applied if GU_DITHER is enabled.
matrix | - Dither matrix |
References sendCommandi(), ScePspIVector4::w, ScePspIMatrix4::w, ScePspIVector4::x, ScePspIMatrix4::x, ScePspIVector4::y, ScePspIMatrix4::y, ScePspIVector4::z, and ScePspIMatrix4::z.
Referenced by sceGuStart().
void sceGuSetMatrix | ( | int | type, |
const ScePspFMatrix4 * | matrix | ||
) |
Set transform matrices.
Available matrices are:
type | - Which matrix-type to set |
matrix | - Matrix to load |
References i, and sendCommandf().
void sceGuSetStatus | ( | int | state, |
int | status | ||
) |
Enable or disable GE state.
Look at sceGuEnable() for a list of states
state | - Which state to change |
status | - Wether to enable or disable the state |
References sceGuDisable(), and sceGuEnable().
void sceGuShadeModel | ( | int | mode | ) |
Set how primitives are shaded.
The available shading-methods are:
mode | - Which mode to use |
References sendCommandi().
void sceGuSignal | ( | int | signal, |
int | behavior | ||
) |
Trigger signal to call code from the command stream.
Available behaviors are:
signal | - Signal to trigger |
behavior | - Behavior type |
References sendCommandi(), and sendCommandiStall().
void sceGuSpecular | ( | float | power | ) |
Set the specular power for the material.
power | - Specular power |
References sendCommandf().
Referenced by sceGuStart().
void sceGuStart | ( | int | cid, |
void * | list | ||
) |
Start filling a new display-context.
Contexts available are:
The previous context-type is stored so that it can be restored at sceGuFinish().
cid | - Context Type |
list | - Pointer to display-list (16 byte aligned) |
References GuDisplayList::current, f, GuDrawBuffer::frame_buffer, GuDrawBuffer::frame_width, GuSettings::ge_callback_id, ge_list_executed, GU_AMBIENT, gu_contexts, gu_curr_context, GU_DIFFUSE, gu_draw_buffer, gu_init, gu_list, gu_settings, GU_SPECULAR, GuContext::list, GuDisplayList::parent_context, GuDrawBuffer::pixel_size, sceGeListEnQueue(), sceGuColorMaterial(), sceGuPatchDivide(), sceGuSetDither(), sceGuSpecular(), sceGuTexScale(), sendCommandi(), GuSettings::signal_offset, and GuDisplayList::start.
void sceGuStencilFunc | ( | int | func, |
int | ref, | ||
int | mask | ||
) |
Set stencil function and reference value for stencil testing.
Available functions are:
func | - Test function |
ref | - The reference value for the stencil test |
mask | - Mask that is ANDed with both the reference value and stored stencil value when the test is done |
References sendCommandi().
void sceGuStencilOp | ( | int | fail, |
int | zfail, | ||
int | zpass | ||
) |
Set the stencil test actions.
Available actions are:
As stencil buffer shares memory with framebuffer alpha, resolution of the buffer is directly in relation.
fail | - The action to take when the stencil test fails |
zfail | - The action to take when stencil test passes, but the depth test fails |
zpass | - The action to take when both stencil test and depth test passes |
References sendCommandi().
void* sceGuSwapBuffers | ( | void | ) |
Swap display and draw buffer.
References GuDrawBuffer::disp_buffer, GuDrawBuffer::frame_buffer, GuDrawBuffer::frame_width, ge_edram_address, gu_current_frame, gu_display_on, gu_draw_buffer, gu_settings, GuDrawBuffer::pixel_size, sceDisplaySetFrameBuf(), GuSettings::swapBuffersBehaviour, and GuSettings::swapBuffersCallback.
int sceGuSync | ( | int | mode, |
int | what | ||
) |
Wait until display list has finished executing.
Available what are:
Available mode are:
mode | - What to wait for |
what | - What to sync to |
References ge_list_executed, sceGeDrawSync(), and sceGeListSync().
void sceGuTerm | ( | void | ) |
Shutdown the GU system.
Called when GU is no longer needed
References GuSettings::ge_callback_id, gu_settings, GuSettings::kernel_event_flag, sceGeUnsetCallback(), and sceKernelDeleteEventFlag().
void sceGuTexEnvColor | ( | unsigned int | color | ) |
Specify the texture environment color.
This is used in the texture function when a constant color is needed.
See sceGuTexFunc() for more information.
color | - Constant color (0x00BBGGRR) |
References sendCommandi().
void sceGuTexFilter | ( | int | min, |
int | mag | ||
) |
Set how the texture is filtered.
Available filters are:
min | - Minimizing filter |
mag | - Magnifying filter |
References sendCommandi().
void sceGuTexFlush | ( | void | ) |
Flush texture page-cache.
Do this if you have copied/rendered into an area currently in the texture-cache
References f, and sendCommandf().
Referenced by sceGuTexImage(), and sceGuTexMode().
void sceGuTexFunc | ( | int | tfx, |
int | tcc | ||
) |
Set how textures are applied.
Key for the apply-modes:
Available apply-modes are: (TFX)
The fields TCC_RGB and TCC_RGBA specify components that differ between the two different component modes.
Available component-modes are: (TCC)
tfx | - Which apply-mode to use |
tcc | - Which component-mode to use |
References GuContext::fragment_2x, gu_contexts, gu_curr_context, sendCommandi(), and GuContext::texture_function.
void sceGuTexImage | ( | int | mipmap, |
int | width, | ||
int | height, | ||
int | tbw, | ||
const void * | tbp | ||
) |
Set current texturemap.
Textures may reside in main RAM, but it has a huge speed-penalty. Swizzle textures to get maximum speed.
mipmap | - Mipmap level |
width | - Width of texture (must be a power of 2) |
height | - Height of texture (must be a power of 2) |
tbw | - Texture Buffer Width (block-aligned) |
tbp | - Texture buffer pointer (16 byte aligned) |
References getExp(), sceGuTexFlush(), and sendCommandi().
void sceGuTexLevelMode | ( | unsigned int | mode, |
float | bias | ||
) |
Set texture-level mode (mipmapping)
Available modes are:
mode | - Which mode to use |
bias | - Which mipmap bias to use |
References f, offset, and sendCommandi().
void sceGuTexMapMode | ( | int | mode, |
unsigned int | a1, | ||
unsigned int | a2 | ||
) |
Set the texture-mapping mode.
Available modes are:
mode | - Which mode to use |
a1 | - Unknown |
a2 | - Unknown |
References gu_contexts, gu_curr_context, sendCommandi(), GuContext::texture_map_mode, and GuContext::texture_proj_map_mode.
void sceGuTexMode | ( | int | tpsm, |
int | maxmips, | ||
int | a2, | ||
int | swizzle | ||
) |
Set texture-mode parameters.
Available texture-formats are:
tpsm | - Which texture format to use |
maxmips | - Number of mipmaps to use (0-8) |
a2 | - Unknown, set to 0 |
swizzle | - GU_TRUE(1) to swizzle texture-reads |
References gu_contexts, gu_curr_context, sceGuTexFlush(), sendCommandi(), and GuContext::texture_mode.
void sceGuTexOffset | ( | float | u, |
float | v | ||
) |
Set texture offset.
u | - Offset to add to the U coordinate |
v | - Offset to add to the V coordinate |
References sendCommandf().
void sceGuTexProjMapMode | ( | int | mode | ) |
Set texture projection-map mode.
Available modes are:
mode | - Which mode to use |
References gu_contexts, gu_curr_context, sendCommandi(), GuContext::texture_map_mode, and GuContext::texture_proj_map_mode.
void sceGuTexScale | ( | float | u, |
float | v | ||
) |
Set texture scale.
u | - Scalar to multiply U coordinate with |
v | - Scalar to multiply V coordinate with |
References sendCommandf().
Referenced by sceGuStart().
void sceGuTexSlope | ( | float | slope | ) |
References sendCommandf().
void sceGuTexSync | ( | ) |
Synchronize rendering pipeline with image upload.
This will stall the rendering pipeline until the current image upload initiated by sceGuCopyImage() has completed.
References sendCommandi().
void sceGuTexWrap | ( | int | u, |
int | v | ||
) |
Set if the texture should repeat or clamp.
Available modes are:
u | - Wrap-mode for the U direction |
v | - Wrap-mode for the V direction |
References sendCommandi().
void sceGuViewport | ( | int | cx, |
int | cy, | ||
int | width, | ||
int | height | ||
) |
Set current viewport.
cx | - Center for horizontal viewport |
cy | - Center for vertical viewport |
width | - Width of viewport |
height | - Height of viewport |
References sendCommandf().