void prepareFramesAndSetPvp( const eq::Frames& frames, eq::Frames& dbFrames, eq::PixelViewport& coveredPVP ) { for( eq::Frame* frame : frames ) { { eq::ChannelStatistics event( eq::Statistic::CHANNEL_FRAME_WAIT_READY, _channel ); frame->waitReady( ); } const eq::Range& range = frame->getRange(); if( range == eq::Range::ALL ) // 2D frame, assemble directly { eq::Compositor::assembleFrame( frame, _channel ); continue; } dbFrames.push_back( frame ); for( const eq::Image* image : frame->getImages( )) { const eq::PixelViewport imagePVP = image->getPixelViewport() + frame->getOffset(); coveredPVP.merge( imagePVP ); } } }
static void _expandPVP( eq::PixelViewport& pvp, const eq::Images& images, const eq::Vector2i& offset ) { for( eq::Images::const_iterator i = images.begin(); i != images.end(); ++i ) { const eq::PixelViewport imagePVP = (*i)->getPixelViewport() + offset; pvp.merge( imagePVP ); } }