/* ================== R_FindARBProgram Returns a GL identifier that can be bound to the given target, parsing a text file if it hasn't already been loaded. ================== */ int R_FindARBProgram( GLenum target, const char *program ) { int i; idStr stripped = program; stripped.StripFileExtension(); // see if it is already loaded for ( i = 0 ; progs[i].name[0] ; i++ ) { if ( progs[i].target != target ) { continue; } idStr compare = progs[i].name; compare.StripFileExtension(); if ( !idStr::Icmp( stripped.c_str(), compare.c_str() ) ) { return progs[i].ident; } } if ( i == MAX_GLPROGS ) { common->Error( "R_FindARBProgram: MAX_GLPROGS" ); } // add it to the list and load it progs[i].ident = (program_t)0; // will be gen'd by R_LoadARBProgram progs[i].target = target; strncpy( progs[i].name, program, sizeof( progs[i].name ) - 1 ); R_LoadARBProgram( i ); return progs[i].ident; }
/* ================== R_ReloadARBPrograms_f ================== */ void R_ReloadARBPrograms_f( const idCmdArgs &args ) { int i; common->Printf( "----- R_ReloadARBPrograms -----\n" ); for ( i = 0 ; progs[i].name[0] ; i++ ) { R_LoadARBProgram( i ); } common->Printf( "-------------------------------\n" ); }
/* ================== R_ReloadARBPrograms_f ================== */ void R_ReloadARBPrograms_f( const idCmdArgs &args ) { #if !defined(GL_ES_VERSION_2_0) int i; common->Printf( "----- R_ReloadARBPrograms -----\n" ); for ( i = 0 ; progs[i].name[0] ; i++ ) { R_LoadARBProgram( i ); } common->Printf( "-------------------------------\n" ); #endif }