bool Config::handleEvent( eq::EventICommand command ) { switch( command.getEventType( )) { case DATA_CHANGED: { _registerData( command ); if( _readyToCommit() ) _frameData.commit(); // broadcast changed data to all clients return false; } case PROXY_CHANGED: { _updateData( command ); if( _readyToCommit() ) { _updateSimulation(); // update the simulation every nth frame _frameData.commit(); // broadcast changed data to all clients } return false; } case eq::Event::KEY_PRESS: { const eq::Event& event = command.get< eq::Event >(); if( _handleKeyEvent( event.keyPress )) { _redraw = true; return true; } break; } case eq::Event::WINDOW_EXPOSE: case eq::Event::WINDOW_RESIZE: case eq::Event::WINDOW_CLOSE: case eq::Event::VIEW_RESIZE: _redraw = true; break; default: break; } _redraw |= eq::Config::handleEvent( command ); return _redraw; }
bool Config::handleEvent( const eq::ConfigEvent* event ) { switch( event->data.type ) { case ConfigEvent::DATA_CHANGED: _registerData(static_cast< const ConfigEvent* >( event )); if( _readyToCommit() ) { _frameData.commit(); // broadcast changed data to all clients } break; case ConfigEvent::PROXY_CHANGED: { _updateData(static_cast< const ConfigEvent* >( event )); if( _readyToCommit() ) { _updateSimulation(); // update the simulation every nth frame _frameData.commit(); // broadcast changed data to all clients } } break; case eq::Event::KEY_PRESS: if( _handleKeyEvent( event->data.keyPress )) { _redraw = true; return true; } break; case eq::Event::WINDOW_EXPOSE: case eq::Event::WINDOW_RESIZE: case eq::Event::WINDOW_CLOSE: case eq::Event::VIEW_RESIZE: _redraw = true; break; default: break; } _redraw |= eq::Config::handleEvent( event ); return _redraw; }