Equalizer  1.4.1
eq/client/types.h
00001 
00002 /* Copyright (c) 2007-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_TYPES_H
00020 #define EQ_TYPES_H
00021 
00022 #include <eq/client/defines.h>
00023 #include <eq/util/types.h>
00024 #include <eq/fabric/focusMode.h>
00025 #include <eq/fabric/queuePackets.h>
00026 #include <eq/fabric/types.h>
00027 #include <lunchbox/atomic.h>
00028 
00029 #include <map>
00030 #include <vector>
00031 
00032 namespace eq
00033 {
00034 class Canvas;
00035 class Channel;
00036 class Client;
00037 class CommandQueue;
00038 class ComputeContext;
00039 class Config;
00040 class ConfigParams;
00041 class Frame;
00042 class FrameData;
00043 class Image;
00044 class Layout;
00045 class MessagePump;
00046 class Node;
00047 class NodeFactory;
00048 class Observer;
00049 class Pipe;
00050 class Segment;
00051 class Server;
00052 class SystemPipe;
00053 class SystemWindow;
00054 class View;
00055 class Window;
00056 class WindowSystem;
00057 struct ConfigEvent;
00058 struct PixelData;
00059 struct Statistic;
00060 struct Event;
00061 
00062 using fabric::ANAGLYPH;
00063 using fabric::ASYNC;
00064 using fabric::AUTO;
00065 using fabric::DRAW_SYNC;
00066 using fabric::FASTEST;
00067 using fabric::FBO;
00068 using fabric::HORIZONTAL;
00069 using fabric::LOCAL_SYNC;
00070 using fabric::NICEST;
00071 using fabric::OFF;
00072 using fabric::ON;
00073 using fabric::PBUFFER;
00074 using fabric::QUAD;
00075 using fabric::RGBA16F;
00076 using fabric::RGBA32F;
00077 using fabric::UNDEFINED;
00078 using fabric::VERTICAL;
00079 using fabric::WINDOW;
00080 
00081 using fabric::ColorMask;
00082 using fabric::DrawableConfig;
00083 using fabric::Frustum;
00084 using fabric::Frustumf;
00085 using fabric::GPUInfo;
00086 using fabric::IAttribute;
00087 using fabric::Pixel;
00088 using fabric::PixelViewport;
00089 using fabric::Projection;
00090 using fabric::Range;
00091 using fabric::RenderContext;
00092 using fabric::SubPixel;
00093 using fabric::TileTaskPacket;
00094 using fabric::Viewport;
00095 using fabric::Wall;
00096 using fabric::Zoom;
00097 
00099 typedef fabric::LeafVisitor< Segment > SegmentVisitor;
00100 
00102 typedef fabric::LeafVisitor< View > ViewVisitor;
00103 
00105 typedef fabric::LeafVisitor< Observer > ObserverVisitor;
00106 
00108 typedef fabric::LeafVisitor< Channel > ChannelVisitor;
00109 
00111 typedef fabric::ElementVisitor< Canvas, SegmentVisitor > CanvasVisitor;
00112 
00114 typedef fabric::ElementVisitor< Window, ChannelVisitor > WindowVisitor;   
00115     
00117 typedef fabric::ElementVisitor< Pipe, WindowVisitor > PipeVisitor;
00118 
00120 typedef fabric::ElementVisitor< Node, PipeVisitor > NodeVisitor;
00121 
00123 typedef fabric::ElementVisitor< Layout, ViewVisitor > LayoutVisitor;
00124 
00126 typedef fabric::ConfigVisitor< Config, ObserverVisitor, LayoutVisitor,
00127                                CanvasVisitor, NodeVisitor > ConfigVisitor;
00128 
00130 typedef fabric::ElementVisitor< Server, ConfigVisitor > ServerVisitor;
00131 
00132 //----- Vectors
00134 typedef std::vector< Config* > Configs;
00136 typedef std::vector< Server* > Servers;
00138 typedef std::vector< Node* > Nodes;
00140 typedef std::vector< Pipe* > Pipes;
00142 typedef std::vector< Window* > Windows;
00144 typedef std::vector< Channel* > Channels;
00146 typedef std::vector< Frame* > Frames;
00148 typedef std::vector< Image* > Images;
00150 typedef std::vector< Observer* > Observers;
00152 typedef std::vector< Canvas* > Canvases;
00154 typedef std::vector< Layout* > Layouts;
00156 typedef std::vector< Segment* > Segments;
00158 typedef std::vector< View* > Views;
00160 typedef std::vector< Viewport > Viewports;
00162 typedef std::vector< PixelViewport > PixelViewports;
00164 typedef std::vector< Statistic > Statistics;
00165 
00167 typedef Configs::const_iterator ConfigsCIter;
00169 typedef Servers::const_iterator ServersCIter;
00171 typedef Nodes::const_iterator NodesCIter;
00173 typedef Pipes::const_iterator PipesCIter;
00175 typedef Windows::const_iterator WindowsCIter;
00177 typedef Channels::const_iterator ChannelsCIter;
00179 typedef Frames::iterator FramesIter;
00181 typedef Frames::const_iterator FramesCIter;
00183 typedef Images::const_iterator ImagesCIter;
00185 typedef Observers::const_iterator ObserversCIter;
00187 typedef Canvases::const_iterator CanvasesCIter;
00189 typedef Layouts::const_iterator LayoutsCIter;
00191 typedef Segments::const_iterator SegmentsCIter;
00193 typedef Views::const_iterator ViewsCIter;
00195 typedef Viewports::const_iterator ViewportsCIter;
00197 typedef PixelViewports::const_iterator PixelViewportsCIter;
00199 typedef Statistics::const_iterator StatisticsCIter;
00200 
00202 typedef lunchbox::RefPtr< Client >        ClientPtr;
00204 typedef lunchbox::RefPtr< const Client >  ConstClientPtr;
00206 typedef lunchbox::RefPtr< Server >        ServerPtr;
00208 typedef lunchbox::RefPtr< FrameData >     FrameDataPtr;
00210 typedef lunchbox::RefPtr< const FrameData >     ConstFrameDataPtr;
00211 
00212 namespace util
00213 {
00214 template< class > class BitmapFont;
00215 template< class > class ObjectManager;
00216 }
00217 
00219 typedef util::BitmapFont< const void* > BitmapFont;
00220 
00222 typedef util::ObjectManager< const void* > ObjectManager;
00223 
00224 using fabric::Matrix3d;   
00225 using fabric::Matrix4d;   
00226 using fabric::Matrix3f;   
00227 using fabric::Matrix4f;   
00228 using fabric::Vector2i;   
00229 using fabric::Vector3i;   
00230 using fabric::Vector4i;   
00231 using fabric::Vector3d;   
00232 using fabric::Vector4d;   
00233 using fabric::Vector2f;   
00234 using fabric::Vector3f;   
00235 using fabric::Vector4f;   
00236 using fabric::Vector3ub;  
00237 using fabric::Frustumf;   
00238 
00239 using fabric::FocusMode;
00240 using fabric::FOCUSMODE_FIXED;
00241 using fabric::FOCUSMODE_RELATIVE_TO_ORIGIN;
00242 using fabric::FOCUSMODE_RELATIVE_TO_OBSERVER;
00243 
00245 typedef vmml::frustum_culler< float >  FrustumCullerf;
00246 
00248 typedef std::vector< std::string > Strings;
00250 typedef std::vector< uint8_t >    Vectorub;
00252 typedef std::vector< uint16_t >   Vectorus;
00253 
00255 typedef Strings::const_iterator StringsCIter;
00256 
00257 using lunchbox::a_int32_t;
00258 using lunchbox::backtrace;
00259 using lunchbox::uint128_t;
00260 using lunchbox::UUID;
00261 
00263 typedef co::WorkerThread< CommandQueue > Worker; // instantiated in worker.cpp
00264 
00265 // originator serial -> statistics
00266 typedef std::map< uint32_t, Statistics > SortedStatistics;
00267 
00268 // frame id, config statistics
00269 typedef std::pair< uint32_t, SortedStatistics > FrameStatistics;
00271 }
00272 
00274 // GLEW
00275 struct GLEWContextStruct;
00276 struct WGLEWContextStruct;
00277 struct GLXEWContextStruct;
00278 typedef struct GLEWContextStruct GLEWContext;
00279 typedef struct WGLEWContextStruct WGLEWContext;
00280 typedef struct GLXEWContextStruct GLXEWContext;
00283 #endif // EQ_TYPES_H
Generated on Mon Nov 26 2012 14:41:49 for Equalizer 1.4.1 by  doxygen 1.7.6.1