void tiny3d_ClearSurface(u32 color, clear_flags flags, u32 rsx_offset, u32 width, u32 height, u32 stride, u32 format) { flag_vertex |= VERTEX_LOCK; render_target.target = 1; render_target.w = width; render_target.p = stride; render_target.h = height; if(flags & TINY3D_CLEAR_COLOR) { tiny3d_Project2D(); tiny3d_SetProjectionMatrix(&matrix_ident); tiny3d_SetMatrixModelView(&matrix_ident); internal_reality_ZControl(context, 0, 1, 1); // disable viewport culling internal_reality_DepthTestFunc(context, REALITY_ZFUNC_LESSOREQUAL); internal_reality_DepthWriteEnable(context, 1); internal_reality_DepthTestEnable(context, 1); internal_reality_AlphaEnable(context, 0); internal_reality_BlendEnable(context, 0); internal_reality_Viewport(context, width, height); int n; for(n = 0; n < 8; n++) internal_reality_ViewportClip(context, n, width, height); setupRenderTarget2(rsx_offset, stride, width, height, format); rsxSetClearColor(context, color); } if(flags & TINY3D_CLEAR_ZBUFFER) { rsxSetClearDepthValue(context, 0xffffffff); } internal_reality_ClearBuffers(context, flags); }
void BoxBrowser::UpdateCamera() { //adjust the camera a little bit MATRIX cam = MatrixRotationX( FROM_ANGLE( -3.5 ) ); cam = MatrixMultiply( cam, MatrixTranslation( 0, camY, 0 ) ); tiny3d_SetProjectionMatrix( &cam ); if( !--camDelay ) { camDelay = 3; camY += camdif; if( camY == 10 ) { camdif = -1; } else if( !camY ) { camdif = 1; } } }
void tiny3d_Clear(u32 color, clear_flags flags) { flag_vertex |= VERTEX_LOCK; render_target.target = 0; if(flags & TINY3D_CLEAR_COLOR) { tiny3d_Project2D(); tiny3d_SetProjectionMatrix(&matrix_ident); tiny3d_SetMatrixModelView(&matrix_ident); internal_reality_ZControl(context, 0, 1, 1); // disable viewport culling internal_reality_DepthTestFunc(context, REALITY_ZFUNC_LESSOREQUAL); internal_reality_DepthWriteEnable(context, 1); internal_reality_DepthTestEnable(context, 1); internal_reality_AlphaEnable(context, 0); internal_reality_BlendEnable(context, 0); internal_reality_Viewport(context, Video_Resolution.width, Video_Resolution.height); int n; for(n = 0; n < 8; n++) { internal_reality_ViewportClip(context, n, Video_Resolution.width, Video_Resolution.height); } setupRenderTarget(Video_currentBuffer); rsxSetClearColor(context, color); } if(flags & TINY3D_CLEAR_ZBUFFER) { rsxSetClearDepthValue(context, 0xffffffff); } internal_reality_ClearBuffers(context, flags); if((flags & TINY3D_CLEAR_COLOR) && tiny_3d_alarm) { tiny3d_SetPolygon(TINY3D_QUADS); tiny3d_VertexPos(848/2 , 0 , 65535); tiny3d_VertexColor(0xff0000ff); tiny3d_VertexPos(847, 0 , 65535); tiny3d_VertexPos(847, 511, 65535); tiny3d_VertexPos(848/2 , 511, 65535); tiny3d_End(); internal_reality_Viewport(context, Video_Resolution.width*15/16, Video_Resolution.height); int n; for(n = 0; n < 8; n++) internal_reality_ViewportClip(context, n, Video_Resolution.width*15/16, Video_Resolution.height); internal_reality_ClearBuffers(context, flags); } }