void SetEnvValues() { int i; int hits = 0; for( i = 0; i < InitialFileCount; i++ ) { double ft = OGGetFileTime( InitialFile[i] ); if( FileTimes[i] != ft ) { FileTimes[i] = ft; hits++; } } if( !hits ) return; //Otherwise, something changed. LoadFile( InitialFile[0] ); for( i = 1; i < gargc; i++ ) { if( strchr( gargv[i], '=' ) != 0 ) { printf( "AP: %s\n", gargv[i] ); SetParametersFromString( gargv[i] ); } else { printf( "LF: %s\n", gargv[i] ); LoadFile( gargv[i] ); } } }
void CheckForNewerShader( struct Shader * s ) { double VertTime = OGGetFileTime( s->VertexName ); double FragTime = OGGetFileTime( s->FragmentName ); if( s->LastFileTimeVertex != VertTime || s->LastFileTimeFragment != FragTime ) { glDetachShader(s->program, s->vertex); glDetachShader(s->program, s->fragment ); glDeleteShader(s->program); glDeleteShader(s->vertex ); glDeleteShader(s->fragment ); LoadShaderInPlace( s ); } s->LastFileTimeVertex = VertTime; s->LastFileTimeFragment = FragTime; }
struct Shader * CreateShader( const char * file ) { struct Shader * ret; int lnl = strlen( file ); char * lfv, *lff; lfv = malloc( lnl + 8 ); sprintf( lfv, "%s.vert", file ); lff = malloc( lnl + 8 ); sprintf( lff, "%s.frag", file ); ret = malloc( sizeof( struct Shader ) ); ret->VertexName = lfv; ret->FragmentName = lff; ret->LastFileTimeVertex = OGGetFileTime( lfv ); ret->LastFileTimeFragment = OGGetFileTime( lff ); LoadShaderInPlace( ret ); return ret; }