examples/eqNBody/pipe.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "pipe.h"
00019 #include "config.h"
00020
00021 using namespace eq::base;
00022 using namespace std;
00023
00024 namespace eqNbody
00025 {
00026 bool Pipe::configInit( const uint32_t initID )
00027 {
00028 if( !eq::Pipe::configInit( initID )) {
00029 return false;
00030 }
00031
00032 Config* config = static_cast<Config*>( getConfig() );
00033 const InitData& initData = config->getInitData();
00034 const uint32_t frameDataID = initData.getFrameDataID();
00035
00036 _frameData.init(initData.getNumBodies());
00037
00038 const bool mapped = config->mapObject( &_frameData, frameDataID );
00039 EQASSERT( mapped );
00040
00041 return mapped;
00042 }
00043
00044 bool Pipe::configExit()
00045 {
00046 eq::Config* config = getConfig();
00047 config->unmapObject( &_frameData );
00048
00049 return eq::Pipe::configExit();
00050 }
00051
00052 void Pipe::frameStart( const uint32_t frameID, const uint32_t frameNumber )
00053 {
00054
00055 _frameData.sync( frameID );
00056 eq::Pipe::frameStart( frameID, frameNumber );
00057 }
00058
00059 }