compoundUpdateOutputVisitor.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef EQSERVER_COMPOUNDUPDATEOUTPUTVISITOR_H
00019 #define EQSERVER_COMPOUNDUPDATEOUTPUTVISITOR_H
00020
00021 #include "compoundVisitor.h"
00022 #include "compound.h"
00023
00024 namespace eq
00025 {
00026 namespace server
00027 {
00028 class Channel;
00029
00034 class CompoundUpdateOutputVisitor : public CompoundVisitor
00035 {
00036 public:
00037 CompoundUpdateOutputVisitor( const uint32_t frameNumber );
00038 virtual ~CompoundUpdateOutputVisitor() {}
00039
00041 virtual VisitorResult visit( Compound* compound );
00042
00043 const Compound::BarrierMap& getSwapBarriers()
00044 const { return _swapBarriers; }
00045 const Compound::FrameMap& getOutputFrames() const
00046 { return _outputFrames; }
00047
00048 private:
00049 const uint32_t _frameNumber;
00050
00051 Compound::BarrierMap _swapBarriers;
00052 Compound::FrameMap _outputFrames;
00053
00054 void _updateOutput( Compound* compound );
00055 void _updateZoom( const Compound* compound, Frame* frame );
00056 void _updateSwapBarriers( Compound* compound );
00057 };
00058 }
00059 }
00060 #endif // EQSERVER_CONSTCOMPOUNDVISITOR_H