#include Ps2Simple Ps2; void DrawCircle( int xa, int ya, int z ) { GIFVecRL vec; vec.prim( PS2_GS_PRIM_PRIM_TRIFAN, PS2_GS_PRIM_IIP_GOURAUD, //PS2_GS_PRIM_IIP_FLAT, PS2_GS_PRIM_TME_OFF, PS2_GS_PRIM_FGE_OFF, PS2_GS_PRIM_ABE_ON, PS2_GS_PRIM_AA1_OFF, PS2_GS_PRIM_FST_STQ, PS2_GS_PRIM_CTXT_CONTEXT1, PS2_GS_PRIM_FIX_NOFIXDDA ); vec.rgbaq( 0, 0, 0, 0, 0 ); vec.xyzf2( 0, 0, z ); // Color anchored at middle :) ps2_gs_gparam *gp = ps2_gs_get_gparam(); int xm = gp->width / 4; int ym = gp->height / 3; for( int i=0; i<=360; i++ ) { int x = (int) (Sin(i)*xm+.5); int y = (int) (Cos(i)*ym+.5); int r = (int)(255/180.0 * abs(i-180)); int g = (int)(255/180.0 * abs((i+120)%360-180)); int b = (int)(255/180.0 * abs((i+240)%360-180)); vec.rgbaq( r, g, b, 0, 0 ); vec.xyzf2( x+xa, y+ya, z ); } vec.draw(); } int main( int ac, char **av ) { Ps2.init( ac, av ); Ps2.useStandardTestControls(); Ps2.start(); for (int a=0;;a++) { DrawCircle((int)(Sin(a)*50),(int)(Cos(a)*50), 1 ); Ps2.flip(); if( a == 360 ) a = 0; } }