00001
00002
00003
00004
00005 #ifndef EVOLVE_CHANNEL_H
00006 #define EVOLVE_CHANNEL_H
00007
00008 #include "eVolve.h"
00009 #include "frameData.h"
00010
00011 #include <eq/eq.h>
00012
00013
00014 namespace eVolve
00015 {
00016 class InitData;
00017
00018 class Channel : public eq::Channel
00019 {
00020 public:
00021 Channel( eq::Window* parent );
00022
00023 protected:
00024 virtual ~Channel() {}
00025
00026 virtual bool configInit( const uint32_t initID );
00027
00028 virtual void frameStart( const uint32_t frameID,
00029 const uint32_t frameNumber );
00030
00031 virtual void frameDraw( const uint32_t frameID );
00032 virtual void frameAssemble( const uint32_t frameID );
00033 virtual void frameReadback( const uint32_t frameID );
00034
00036 virtual void applyFrustum() const;
00037
00038 void clearViewport( const eq::PixelViewport &pvp );
00039
00040 void frameClear( const uint32_t frameID );
00041
00042 private:
00043
00044 void _startAssemble();
00045 void _finishAssemble();
00046
00047 void _orderFrames( eq::FrameVector& frames );
00048
00049 void _drawLogo();
00050
00051 void _calcMVandITMV( vmml::Matrix4d& modelviewM,
00052 vmml::Matrix3d& modelviewITM ) const;
00053
00054 const FrameData::Data& _getFrameData() const;
00055
00056 vmml::Vector4f _bgColor;
00057
00058 enum BGColorMode
00059 {
00060 BG_SOLID_BLACK = 0,
00061 BG_SOLID_COLORED = 1
00062 }
00063 _bgColorMode;
00064
00065 eq::Frame _frame;
00066 eq::Range _drawRange;
00067 };
00068
00069 }
00070
00071 #endif // EVOLVE_CHANNEL_H
00072