Equalizer  1.2.1
eq/client/types.h
00001 
00002 /* Copyright (c) 2007-2011, 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 
00028 #include <map>
00029 #include <vector>
00030 
00031 namespace eq
00032 {
00033 class Canvas;
00034 class Channel;
00035 class Client;
00036 class CommandQueue;
00037 class ComputeContext;
00038 class Config;
00039 class ConfigParams;
00040 class Frame;
00041 class FrameData;
00042 class Image;
00043 class Layout;
00044 class MessagePump;
00045 class Node;
00046 class NodeFactory;
00047 class Observer;
00048 class Pipe;
00049 class Segment;
00050 class Server;
00051 class SystemPipe;
00052 class SystemWindow;
00053 class View;
00054 class Window;
00055 struct ConfigEvent;
00056 struct PixelData;
00057 struct Statistic;
00058 struct Event;
00059 
00060 using fabric::ANAGLYPH;
00061 using fabric::ASYNC;
00062 using fabric::AUTO;
00063 using fabric::DRAW_SYNC;
00064 using fabric::FASTEST;
00065 using fabric::FBO;
00066 using fabric::HORIZONTAL;
00067 using fabric::LOCAL_SYNC;
00068 using fabric::NICEST;
00069 using fabric::OFF;
00070 using fabric::ON;
00071 using fabric::PBUFFER;
00072 using fabric::QUAD;
00073 using fabric::RGBA16F;
00074 using fabric::RGBA32F;
00075 using fabric::UNDEFINED;
00076 using fabric::VERTICAL;
00077 using fabric::WINDOW;
00078 
00079 using fabric::ColorMask;
00080 using fabric::DrawableConfig;
00081 using fabric::Frustum;
00082 using fabric::Frustumf;
00083 using fabric::GPUInfo;
00084 using fabric::GPUInfos;
00085 using fabric::Pixel;
00086 using fabric::PixelViewport;
00087 using fabric::Projection;
00088 using fabric::Range;
00089 using fabric::RenderContext;
00090 using fabric::SubPixel;
00091 using fabric::TileTaskPacket;
00092 using fabric::Viewport;
00093 using fabric::Wall;
00094 using fabric::Zoom;
00095 
00097 typedef fabric::LeafVisitor< Segment > SegmentVisitor;
00098 
00100 typedef fabric::LeafVisitor< View > ViewVisitor;
00101 
00103 typedef fabric::LeafVisitor< Observer > ObserverVisitor;
00104 
00106 typedef fabric::LeafVisitor< Channel > ChannelVisitor;
00107 
00109 typedef fabric::ElementVisitor< Canvas, SegmentVisitor > CanvasVisitor;
00110 
00112 typedef fabric::ElementVisitor< Window, ChannelVisitor > WindowVisitor;   
00113     
00115 typedef fabric::ElementVisitor< Pipe, WindowVisitor > PipeVisitor;
00116 
00118 typedef fabric::ElementVisitor< Node, PipeVisitor > NodeVisitor;
00119 
00121 typedef fabric::ElementVisitor< Layout, ViewVisitor > LayoutVisitor;
00122 
00124 typedef fabric::ConfigVisitor< Config, ObserverVisitor, LayoutVisitor,
00125                                CanvasVisitor, NodeVisitor > ConfigVisitor;
00126 
00128 typedef fabric::ElementVisitor< Server, ConfigVisitor > ServerVisitor;
00129 
00130 //----- Vectors
00132 typedef std::vector< Config* > Configs;
00134 typedef std::vector< Server* > Servers;
00136 typedef std::vector< Node* > Nodes;
00138 typedef std::vector< Pipe* > Pipes;
00140 typedef std::vector< Window* > Windows;
00142 typedef std::vector< Channel* > Channels;
00144 typedef std::vector< Frame* > Frames;
00146 typedef std::vector< Image* > Images;
00148 typedef std::vector< Observer* > Observers;
00150 typedef std::vector< Canvas* > Canvases;
00152 typedef std::vector< Layout* > Layouts;
00154 typedef std::vector< Segment* > Segments;
00156 typedef std::vector< View* > Views;
00158 typedef std::vector< Viewport > Viewports;
00160 typedef std::vector< PixelViewport > PixelViewports;
00162 typedef std::vector< Statistic > Statistics;
00163 
00165 typedef Configs::const_iterator ConfigsCIter;
00167 typedef Servers::const_iterator ServersCIter;
00169 typedef Nodes::const_iterator NodesCIter;
00171 typedef Pipes::const_iterator PipesCIter;
00173 typedef Windows::const_iterator WindowsCIter;
00175 typedef Channels::const_iterator ChannelsCIter;
00177 typedef Frames::const_iterator FramesCIter;
00179 typedef Images::const_iterator ImagesCIter;
00181 typedef Observers::const_iterator ObserversCIter;
00183 typedef Canvases::const_iterator CanvasesCIter;
00185 typedef Layouts::const_iterator LayoutsCIter;
00187 typedef Segments::const_iterator SegmentsCIter;
00189 typedef Views::const_iterator ViewsCIter;
00191 typedef Viewports::const_iterator ViewportsCIter;
00193 typedef PixelViewports::const_iterator PixelViewportsCIter;
00195 typedef Statistics::const_iterator StatisticsCIter;
00196 
00198 typedef co::base::RefPtr< Client >        ClientPtr;
00200 typedef co::base::RefPtr< const Client >  ConstClientPtr;
00202 typedef co::base::RefPtr< Server >        ServerPtr;
00203 
00204 namespace util
00205 {
00206 template< class > class BitmapFont;
00207 template< class > class ObjectManager;
00208 }
00209 
00211 typedef util::BitmapFont< const void* > BitmapFont;
00212 
00214 typedef util::ObjectManager< const void* > ObjectManager;
00215 
00216 using fabric::Matrix3d;   
00217 using fabric::Matrix4d;   
00218 using fabric::Matrix3f;   
00219 using fabric::Matrix4f;   
00220 using fabric::Vector2i;   
00221 using fabric::Vector3i;   
00222 using fabric::Vector4i;   
00223 using fabric::Vector3d;   
00224 using fabric::Vector4d;   
00225 using fabric::Vector2f;   
00226 using fabric::Vector3f;   
00227 using fabric::Vector4f;   
00228 using fabric::Vector3ub;  
00229 using fabric::Frustumf;   
00230 
00231 using fabric::FocusMode;
00232 using fabric::FOCUSMODE_FIXED;
00233 using fabric::FOCUSMODE_RELATIVE_TO_ORIGIN;
00234 using fabric::FOCUSMODE_RELATIVE_TO_OBSERVER;
00235 
00237 typedef vmml::frustum_culler< float >  FrustumCullerf;
00238 
00240 typedef std::vector< std::string > Strings;
00242 typedef std::vector< uint8_t >    Vectorub;
00244 typedef std::vector< uint16_t >   Vectorus;
00245 
00247 typedef Strings::const_iterator StringsCIter;
00248 
00249 using co::base::uint128_t;
00250 using co::base::UUID;
00251 
00253 typedef co::WorkerThread< CommandQueue > Worker; // instantiated in worker.cpp
00254 
00255 // originator serial -> statistics
00256 typedef std::map< uint32_t, Statistics > SortedStatistics;
00257 
00258 // frame id, config statistics
00259 typedef std::pair< uint32_t, SortedStatistics > FrameStatistics;
00261 }
00262 
00264 // GLEW
00265 struct GLEWContextStruct;
00266 struct WGLEWContextStruct;
00267 struct GLXEWContextStruct;
00268 typedef struct GLEWContextStruct GLEWContext;
00269 typedef struct WGLEWContextStruct WGLEWContext;
00270 typedef struct GLXEWContextStruct GLXEWContext;
00273 #endif // EQ_TYPES_H
Generated on Fri Jun 8 2012 15:44:32 for Equalizer 1.2.1 by  doxygen 1.8.0