- float oldfov = fgGetDouble("/sim/current-view/field-of-view");
- float fov = oldfov / multiplier;
- FGViewer *v = globals->get_current_view();
- fgSetDouble("/sim/current-view/field-of-view", fov);
-// globals->get_renderer()->init();
- int cur_width = fgGetInt("/sim/startup/xsize");
- int cur_height = fgGetInt("/sim/startup/ysize");
- delete( b1 );
- // New empty (mostly) bitmap
- b1 = new GlBitmap( GL_RGB, 1, 1, (unsigned char *)"123" );
- int x,y;
- for ( y = 0; y < multiplier; y++ ) {
- for ( x = 0; x < multiplier; x++ ) {
- globals->get_renderer()->resize( cur_width, cur_height );
- // pan to tile
- rotateView( 0, (y*fov)-((multiplier-1)*fov/2), (x*fov)-((multiplier-1)*fov/2) );
- globals->get_renderer()->update( false );
- // restore view
- GlBitmap b2;
- b1->copyBitmap( &b2, cur_width*x, cur_height*y );
- }
+ using namespace flightgear;
+
+ SGPath nextScreenshotPath(const std::string& screenshotDir)
+ {
+ char filename[32];
+ static int count = 1;
+ while (count < 1000) {
+ snprintf(filename, 32, "fgfs-screen-%03d.png", count++);
+
+ SGPath p(screenshotDir);
+ p.append(filename);
+ if (!p.exists()) {
+ return p;
+ }
+ }
+
+ return SGPath();