// screenshot // screenshot [silent] // screenshot [levelshot] // screenshot [filename] // // Doesn't print the pacifier message if specified silent void R_ScreenShot_f() { // if we have saved a previous screenshot, don't scan // again, because recording demo avis can involve // thousands of shots static int lastNumber = 0; if ( !String::Cmp( Cmd_Argv( 1 ), "levelshot" ) ) { R_LevelShot(); return; } bool silent = !String::Cmp( Cmd_Argv( 1 ), "silent" ); char checkname[ MAX_OSPATH ]; if ( Cmd_Argc() == 2 && !silent ) { // explicit filename String::Sprintf( checkname, MAX_OSPATH, "screenshots/%s.tga", Cmd_Argv( 1 ) ); } else { // scan for a free filename if ( !R_FindAvailableScreenshotFilename( lastNumber, checkname, "tga" ) ) { return; } } if ( GGameType & GAME_Tech3 ) { R_TakeScreenshot( 0, 0, glConfig.vidWidth, glConfig.vidHeight, checkname, false ); } else { RB_TakeScreenshot( 0, 0, glConfig.vidWidth, glConfig.vidHeight, checkname, false ); } if ( !silent ) { common->Printf( "Wrote %s\n", checkname ); } }
const void* RB_TakeScreenshotCmd( const void* data ) { const screenshotCommand_t* cmd = ( const screenshotCommand_t* )data; RB_TakeScreenshot( cmd->x, cmd->y, cmd->width, cmd->height, cmd->fileName, cmd->jpeg ); return ( const void* )( cmd + 1 ); }
/* ================== RB_TakeScreenshotCmd ================== */ const void *RB_TakeScreenshotCmd(const void *data) { const screenshotCommand_t *cmd = ( const screenshotCommand_t * ) data; if (cmd->jpeg) { RB_TakeScreenshotJPEG(cmd->x, cmd->y, cmd->width, cmd->height, cmd->fileName); } else { RB_TakeScreenshot(cmd->x, cmd->y, cmd->width, cmd->height, cmd->fileName); } return ( const void * ) (cmd + 1); }
/* ================== RB_TakeScreenshotCmd ================== */ const void *RB_TakeScreenshotCmd( const void *data ) { const screenshotCommand_t *cmd; cmd = (const screenshotCommand_t *)data; // finish any 2D drawing if needed if(tess.numIndexes) RB_EndSurface(); if (cmd->jpeg) RB_TakeScreenshotJPEG( cmd->x, cmd->y, cmd->width, cmd->height, cmd->fileName); else RB_TakeScreenshot( cmd->x, cmd->y, cmd->width, cmd->height, cmd->fileName); return (const void *)(cmd + 1); }