Equalizer  1.3.1-git
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 struct ConfigEvent;
00057 struct PixelData;
00058 struct Statistic;
00059 struct Event;
00060 
00061 using fabric::ANAGLYPH;
00062 using fabric::ASYNC;
00063 using fabric::AUTO;
00064 using fabric::DRAW_SYNC;
00065 using fabric::FASTEST;
00066 using fabric::FBO;
00067 using fabric::HORIZONTAL;
00068 using fabric::LOCAL_SYNC;
00069 using fabric::NICEST;
00070 using fabric::OFF;
00071 using fabric::ON;
00072 using fabric::PBUFFER;
00073 using fabric::QUAD;
00074 using fabric::RGBA16F;
00075 using fabric::RGBA32F;
00076 using fabric::UNDEFINED;
00077 using fabric::VERTICAL;
00078 using fabric::WINDOW;
00079 
00080 using fabric::ColorMask;
00081 using fabric::DrawableConfig;
00082 using fabric::Frustum;
00083 using fabric::Frustumf;
00084 using fabric::GPUInfo;
00085 using fabric::IAttribute;
00086 using fabric::Pixel;
00087 using fabric::PixelViewport;
00088 using fabric::Projection;
00089 using fabric::Range;
00090 using fabric::RenderContext;
00091 using fabric::SubPixel;
00092 using fabric::TileTaskPacket;
00093 using fabric::Viewport;
00094 using fabric::Wall;
00095 using fabric::Zoom;
00096 
00098 typedef fabric::LeafVisitor< Segment > SegmentVisitor;
00099 
00101 typedef fabric::LeafVisitor< View > ViewVisitor;
00102 
00104 typedef fabric::LeafVisitor< Observer > ObserverVisitor;
00105 
00107 typedef fabric::LeafVisitor< Channel > ChannelVisitor;
00108 
00110 typedef fabric::ElementVisitor< Canvas, SegmentVisitor > CanvasVisitor;
00111 
00113 typedef fabric::ElementVisitor< Window, ChannelVisitor > WindowVisitor;   
00114     
00116 typedef fabric::ElementVisitor< Pipe, WindowVisitor > PipeVisitor;
00117 
00119 typedef fabric::ElementVisitor< Node, PipeVisitor > NodeVisitor;
00120 
00122 typedef fabric::ElementVisitor< Layout, ViewVisitor > LayoutVisitor;
00123 
00125 typedef fabric::ConfigVisitor< Config, ObserverVisitor, LayoutVisitor,
00126                                CanvasVisitor, NodeVisitor > ConfigVisitor;
00127 
00129 typedef fabric::ElementVisitor< Server, ConfigVisitor > ServerVisitor;
00130 
00131 //----- Vectors
00133 typedef std::vector< Config* > Configs;
00135 typedef std::vector< Server* > Servers;
00137 typedef std::vector< Node* > Nodes;
00139 typedef std::vector< Pipe* > Pipes;
00141 typedef std::vector< Window* > Windows;
00143 typedef std::vector< Channel* > Channels;
00145 typedef std::vector< Frame* > Frames;
00147 typedef std::vector< Image* > Images;
00149 typedef std::vector< Observer* > Observers;
00151 typedef std::vector< Canvas* > Canvases;
00153 typedef std::vector< Layout* > Layouts;
00155 typedef std::vector< Segment* > Segments;
00157 typedef std::vector< View* > Views;
00159 typedef std::vector< Viewport > Viewports;
00161 typedef std::vector< PixelViewport > PixelViewports;
00163 typedef std::vector< Statistic > Statistics;
00164 
00166 typedef Configs::const_iterator ConfigsCIter;
00168 typedef Servers::const_iterator ServersCIter;
00170 typedef Nodes::const_iterator NodesCIter;
00172 typedef Pipes::const_iterator PipesCIter;
00174 typedef Windows::const_iterator WindowsCIter;
00176 typedef Channels::const_iterator ChannelsCIter;
00178 typedef Frames::iterator FramesIter;
00180 typedef Frames::const_iterator FramesCIter;
00182 typedef Images::const_iterator ImagesCIter;
00184 typedef Observers::const_iterator ObserversCIter;
00186 typedef Canvases::const_iterator CanvasesCIter;
00188 typedef Layouts::const_iterator LayoutsCIter;
00190 typedef Segments::const_iterator SegmentsCIter;
00192 typedef Views::const_iterator ViewsCIter;
00194 typedef Viewports::const_iterator ViewportsCIter;
00196 typedef PixelViewports::const_iterator PixelViewportsCIter;
00198 typedef Statistics::const_iterator StatisticsCIter;
00199 
00201 typedef lunchbox::RefPtr< Client >        ClientPtr;
00203 typedef lunchbox::RefPtr< const Client >  ConstClientPtr;
00205 typedef lunchbox::RefPtr< Server >        ServerPtr;
00206 
00207 namespace util
00208 {
00209 template< class > class BitmapFont;
00210 template< class > class ObjectManager;
00211 }
00212 
00214 typedef util::BitmapFont< const void* > BitmapFont;
00215 
00217 typedef util::ObjectManager< const void* > ObjectManager;
00218 
00219 using fabric::Matrix3d;   
00220 using fabric::Matrix4d;   
00221 using fabric::Matrix3f;   
00222 using fabric::Matrix4f;   
00223 using fabric::Vector2i;   
00224 using fabric::Vector3i;   
00225 using fabric::Vector4i;   
00226 using fabric::Vector3d;   
00227 using fabric::Vector4d;   
00228 using fabric::Vector2f;   
00229 using fabric::Vector3f;   
00230 using fabric::Vector4f;   
00231 using fabric::Vector3ub;  
00232 using fabric::Frustumf;   
00233 
00234 using fabric::FocusMode;
00235 using fabric::FOCUSMODE_FIXED;
00236 using fabric::FOCUSMODE_RELATIVE_TO_ORIGIN;
00237 using fabric::FOCUSMODE_RELATIVE_TO_OBSERVER;
00238 
00240 typedef vmml::frustum_culler< float >  FrustumCullerf;
00241 
00243 typedef std::vector< std::string > Strings;
00245 typedef std::vector< uint8_t >    Vectorub;
00247 typedef std::vector< uint16_t >   Vectorus;
00248 
00250 typedef Strings::const_iterator StringsCIter;
00251 
00252 using lunchbox::a_int32_t;
00253 using lunchbox::uint128_t;
00254 using lunchbox::UUID;
00255 
00257 typedef co::WorkerThread< CommandQueue > Worker; // instantiated in worker.cpp
00258 
00259 // originator serial -> statistics
00260 typedef std::map< uint32_t, Statistics > SortedStatistics;
00261 
00262 // frame id, config statistics
00263 typedef std::pair< uint32_t, SortedStatistics > FrameStatistics;
00265 }
00266 
00268 // GLEW
00269 struct GLEWContextStruct;
00270 struct WGLEWContextStruct;
00271 struct GLXEWContextStruct;
00272 typedef struct GLEWContextStruct GLEWContext;
00273 typedef struct WGLEWContextStruct WGLEWContext;
00274 typedef struct GLXEWContextStruct GLXEWContext;
00277 #endif // EQ_TYPES_H
Generated on Tue May 1 2012 15:14:28 for Equalizer 1.3.1-git by  doxygen 1.8.0