コード例 #1
0
ファイル: ps3gpu.cpp プロジェクト: joshdekock/jim-ps3ware
int set_mvp(  uint32_t *fifo, float angle )
{
	
	float matrix[16];
	
	identity( matrix );
	float w = 0.4f;
	float h = 0.3f;
	
	frustrum( -w, +w, -h, +h, 1.0f, 100.0f, matrix );
	translatef( 0.0f, 0.0f, -4.0f, matrix );
	
	rotatef( angle, 0.0f, 1.0f, 0.0f, matrix );
	rotatef( 90.0f, 1.0f, 0.0f, 0.0f, matrix );

	return set_vertex_shader_constants( matrix, 0, 16, fifo, Nv3D );
	
}
コード例 #2
0
ファイル: logger.cpp プロジェクト: benlangfeld/sipp
/*#ifdef __cplusplus
extern "C" {
#endif
 * w
*/
    int _trace (struct logfile_info *lfi, const char *fmt, va_list ap)
    {
        int ret = 0;
        if(lfi->fptr) {
            ret = vfprintf(lfi->fptr, fmt, ap);
            fflush(lfi->fptr);

            lfi->count += ret;

            if (max_log_size && lfi->count > max_log_size) {
                fclose(lfi->fptr);
                lfi->fptr = NULL;
            }

            if (ringbuffer_size && lfi->count > ringbuffer_size) {
                rotatef(lfi);
                lfi->count = 0;
            }
        }
        return ret;
    }
コード例 #3
0
ファイル: ps3gpu.cpp プロジェクト: joshdekock/jim-ps3ware
int gfx_step(  uint32_t *fifo,  uint32_t jmp, int off )
{

	static bool init_particles = false;
	
	if( !init_particles )
	{
	    init_particles = true;
	    
	    for( size_t i = 0; i < INUMBER; ++i )
	    {
		dt[i] = ( rand() & 63 ) + 32;
		rnds[i][0] = 360.0f * i / (float)( INUMBER );//rnd( 0.0f, 360.0f );
		rnds[i][1] = rnd( -0.2f, +0.2f );
		rnds[i][2] = rnd( -0.8f, +0.3f );
		rnds[i][3] = rnd( 0.3f, 1.0f );
		
		
		insts[i].time 	= rand();
		insts[i].col[0] = rnd( 0.8f, 1.0f );
		insts[i].col[1] = rnd( 0.8f, 1.0f );
		insts[i].col[2] = rnd( 0.8f, 1.0f );
		insts[i].col[3] = 1.0f;				
	    }
	}
	
	
	for( size_t i = 0; i < INUMBER; ++i )
	{
	    insts[i].time += dt[i];
	    identity( insts[i].mat );
	
	    rotatef( 80.0f, 1.0f, 0.0f, 0.0f, insts[i].mat );
	    rotatef( off * 0.5f + rnds[i][0], 0.0f, 0.0f, 1.0f, insts[i].mat );
	    translatef( 1.6f, rnds[i][1], rnds[i][2], insts[i].mat );
	    scalef( rnds[i][3], insts[i].mat );
	    
	    float d = insts[i].mat[11];
	    
	    d = ( 1.0f - 0.6f * d );
	    insts[i].scale = rnds[i][3];
	    insts[i].col[0] = d;
	    insts[i].col[1] = 0.5f + d;
	    insts[i].col[2] = d;
	    
	    //translatef( 1.0f * sin( t * rnds[i][0] ), 1.0f * cos( t * rnds[i][0] ), 1.0f * sin( t * rnds[i][2] ), insts[i].mat );
	}
	
	
	
	clear_buffer_t clear;
	clear.clearR = clear.clearG = clear.clearB = clear.clearA = clear.clearD = 1;
	clear.rgba = 50 + ( 10 << 8 ) + ( 5 << 16 );
	clear.depth = 0xffff;

	static job_t job;
	
	static size_t curr = 0x0;

	job.pd.insts = (uint32_t)insts;
	job.pd.isize = INUMBER;
	job.pd.dynamic = (uint32_t)( dynamic ) + curr * 24;
	job.pd.fx = (uint32_t)fx.get_data();
	job.pd.atlas = (uint32_t)atlas.get_data();
	job.pd.asize = atlas.get_size();
	job.kick_job( );
	job.join();

	
	uint32_t *ptr = fifo;
	static float angle = 180.0f;
	ptr += setup_surfaces_with_offset( ptr, off % 3 );
	ptr += clear_buffers( &clear, ptr, Nv3D );
	
	ptr += set_mvp( ptr, angle );
	ptr += set_cnst( ptr );
	//ptr += troll_texture.set( ptr );
	//ptr += troll.set( ptr );
	
	//ptr += custom.set( ptr );
	ptr += particles.set( ptr );
	ptr += particle_texture.set( ptr );
	
	ptr += draw_primitives( 0, QUADS, curr, job.pd.quads * 4, ptr, Nv3D );
	
	curr += job.pd.quads * 4;// + 128;
	curr = ( curr + 16 ) & 2047;
	
	//printf( "%d \n", job.pd.quads );
	ptr += jump_to_address( ptr, jmp );
	return ptr - fifo;
}
コード例 #4
0
ファイル: logger.cpp プロジェクト: benlangfeld/sipp
void rotate_errorf()
{
    rotatef(&error_lfi);
    strcpy(screen_logfile, error_lfi.file_name);
}
コード例 #5
0
ファイル: logger.cpp プロジェクト: benlangfeld/sipp
void rotate_logfile()
{
    rotatef(&log_lfi);
}
コード例 #6
0
ファイル: logger.cpp プロジェクト: benlangfeld/sipp
void rotate_shortmessagef()
{
    rotatef(&shortmessage_lfi);
}
コード例 #7
0
ファイル: logger.cpp プロジェクト: benlangfeld/sipp
void rotate_messagef()
{
    rotatef(&message_lfi);
}
コード例 #8
0
ファイル: logger.cpp プロジェクト: benlangfeld/sipp
void rotate_calldebugf()
{
    rotatef(&calldebug_lfi);
}