Equalizer  1.4.1
client/frame.h
00001 
00002 /* Copyright (c) 2006-2012, Stefan Eilemann <eile@equalizergraphics.com>
00003  *                    2010, Cedric Stalder <cedric.stalder@gmail.com>
00004  *
00005  * This library is free software; you can redistribute it and/or modify it under
00006  * the terms of the GNU Lesser General Public License version 2.1 as published
00007  * by the Free Software Foundation.
00008  *
00009  * This library is distributed in the hope that it will be useful, but WITHOUT
00010  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
00011  * FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more
00012  * details.
00013  *
00014  * You should have received a copy of the GNU Lesser General Public License
00015  * along with this library; if not, write to the Free Software Foundation, Inc.,
00016  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
00017  */
00018 
00019 #ifndef EQ_FRAME_H
00020 #define EQ_FRAME_H
00021 
00022 #include <eq/client/api.h>
00023 #include <eq/client/types.h>
00024 #include <eq/client/zoomFilter.h> // enum
00025 #include <eq/fabric/frame.h>   // base class
00026 
00027 namespace eq
00028 {
00029 namespace detail{ class Frame; }
00030 
00041     class Frame : public fabric::Frame
00042     {
00043     public:
00045         EQ_API Frame();
00046 
00048         EQ_API virtual ~Frame();
00049 
00053         EQ_API const std::string& getName() const;
00054 
00059         EQ_API const Range& getRange() const;
00060 
00065         EQ_API const Pixel& getPixel() const;
00066 
00071         EQ_API const SubPixel& getSubPixel() const;
00072 
00077         EQ_API uint32_t getPeriod() const;
00078 
00083         EQ_API uint32_t getPhase() const;
00084 
00089         EQ_API void setZoomFilter( const ZoomFilter zoomFilter );
00090 
00095         EQ_API ZoomFilter getZoomFilter() const;
00096 
00098         EQ_API const Images& getImages() const;
00099 
00100 #ifndef EQ_2_0_API
00101 
00102         EQ_API void setData( FrameData* data );
00103 
00105         EQ_API FrameData* getData();
00106 
00108         EQ_API const FrameData* getData() const;
00109 #endif
00110 
00111         EQ_API void setFrameData( FrameDataPtr data );
00112 
00114         EQ_API FrameDataPtr getFrameData();
00115 
00117         EQ_API ConstFrameDataPtr getFrameData() const;
00118 
00120         EQ_API uint32_t getBuffers() const;
00121 
00128         EQ_API void disableBuffer( const Buffer buffer );
00129 
00131         EQ_API void setAlphaUsage( const bool useAlpha );
00132 
00134         EQ_API void setQuality( const Frame::Buffer buffer,
00135                                    const float quality );
00136 
00138         EQ_API void useCompressor( const Frame::Buffer buffer,
00139                                    const uint32_t name );
00141 
00145         EQ_API void clear();
00146 
00148         void deleteGLObjects( ObjectManager* om );
00149 
00159         EQ_API void readback( ObjectManager* glObjects,
00160                               const DrawableConfig& config );
00161 
00172         EQ_API void readback( ObjectManager* glObjects,
00173                               const DrawableConfig& config,
00174                               const PixelViewports& regions );
00175 
00189         EQ_API Images startReadback( ObjectManager* glObjects,
00190                                      const DrawableConfig& config,
00191                                      const PixelViewports& regions );
00192 
00200         void setReady();
00201 
00208         EQ_API bool isReady() const;
00209 
00211         EQ_API void waitReady( const uint32_t timeout =
00212                                LB_TIMEOUT_INDEFINITE ) const;
00213 
00220         void addListener( lunchbox::Monitor<uint32_t>& listener );
00221 
00228         void removeListener( lunchbox::Monitor<uint32_t>& listener );
00230 
00231     private:
00232         detail::Frame* const _impl;
00233     };
00234 };
00235 #endif // EQ_FRAME_H
Generated on Mon Nov 26 2012 14:41:48 for Equalizer 1.4.1 by  doxygen 1.7.6.1