Equalizer 1.0

eq/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/defines.h>
00023 #include <eq/util/types.h>
00024 #include <eq/fabric/types.h>
00025 #include <co/base/refPtr.h>
00026 #include <co/base/uuid.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 GLXEventHandler;
00043 class GLXWindow;
00044 class GLXWindowEvent;
00045 class GLXWindowIF;
00046 class Image;
00047 class Layout;
00048 class MessagePump;
00049 class Node;
00050 class NodeFactory;
00051 class Observer;
00052 class Pipe;
00053 class Segment;
00054 class Server;
00055 class SystemPipe;
00056 class SystemWindow;
00057 class View;
00058 class Window;
00059 class X11Connection;
00060 struct ConfigEvent;
00061 struct PixelData;
00062 struct Statistic;
00063 struct Event;
00064 
00065 typedef fabric::ColorMask ColorMask;
00066 typedef fabric::DrawableConfig DrawableConfig;
00067 typedef fabric::Frustum Frustum;
00068 typedef fabric::Pixel Pixel;
00069 typedef fabric::PixelViewport PixelViewport;
00070 typedef fabric::Projection Projection;
00071 typedef fabric::Range Range;
00072 typedef fabric::RenderContext RenderContext;
00073 typedef fabric::SubPixel SubPixel;
00074 typedef fabric::Viewport Viewport;
00075 typedef fabric::Wall Wall;
00076 typedef fabric::Zoom Zoom;
00077 
00079 typedef fabric::LeafVisitor< Segment > SegmentVisitor;
00080 
00082 typedef fabric::LeafVisitor< View > ViewVisitor;
00083 
00085 typedef fabric::LeafVisitor< Observer > ObserverVisitor;
00086 
00088 typedef fabric::LeafVisitor< Channel > ChannelVisitor;
00089 
00091 typedef fabric::ElementVisitor< Canvas, SegmentVisitor > CanvasVisitor;
00092 
00094 typedef fabric::ElementVisitor< Window, ChannelVisitor > WindowVisitor;   
00095     
00097 typedef fabric::ElementVisitor< Pipe, WindowVisitor > PipeVisitor;
00098 
00100 typedef fabric::ElementVisitor< Node, PipeVisitor > NodeVisitor;
00101 
00103 typedef fabric::ElementVisitor< Layout, ViewVisitor > LayoutVisitor;
00104 
00106 typedef fabric::ConfigVisitor< Config, ObserverVisitor, LayoutVisitor,
00107                                CanvasVisitor, NodeVisitor > ConfigVisitor;
00108 
00109 
00110 //----- Vectors
00112 typedef std::vector< Config* > Configs;
00114 typedef std::vector< Node* > Nodes;
00116 typedef std::vector< Pipe* > Pipes;
00118 typedef std::vector< Window* > Windows;
00120 typedef std::vector< Channel* > Channels;
00122 typedef std::vector< Frame* > Frames;
00124 typedef std::vector< Image* > Images;
00126 typedef std::vector< Observer* > Observers;
00128 typedef std::vector< Canvas* > Canvases;
00130 typedef std::vector< Layout* > Layouts;
00132 typedef std::vector< Segment* > Segments;
00134 typedef std::vector< View* > Views;
00136 typedef std::vector< Viewport > Viewports;
00138 typedef std::vector< PixelViewport > PixelViewports;
00140 typedef std::vector< Statistic > Statistics;
00141 
00143 typedef co::base::RefPtr< Client >        ClientPtr;
00145 typedef co::base::RefPtr< const Client >  ConstClientPtr;
00147 typedef co::base::RefPtr< Server >        ServerPtr;
00148 
00150 typedef util::ObjectManager< const void* > ObjectManager;
00151 
00152 typedef fabric::Matrix3d Matrix3d;   
00153 typedef fabric::Matrix4d Matrix4d;   
00154 typedef fabric::Matrix3f Matrix3f;   
00155 typedef fabric::Matrix4f Matrix4f;   
00156 typedef fabric::Vector2i Vector2i;   
00157 typedef fabric::Vector3i Vector3i;   
00158 typedef fabric::Vector4i Vector4i;   
00159 typedef fabric::Vector3d Vector3d;   
00160 typedef fabric::Vector4d Vector4d;   
00161 typedef fabric::Vector2f Vector2f;   
00162 typedef fabric::Vector3f Vector3f;   
00163 typedef fabric::Vector4f Vector4f;   
00164 typedef fabric::Vector3ub Vector3ub; 
00165 typedef fabric::Frustumf Frustumf;   
00166 
00168 typedef vmml::frustum_culler< float >  FrustumCullerf;
00169 
00171 typedef std::vector< std::string >   Strings;
00173 typedef std::vector< uint8_t >    Vectorub;
00175 typedef std::vector< uint16_t >   Vectorus;
00176 
00177 typedef co::base::uint128_t uint128_t;
00178 typedef co::base::UUID UUID;
00179 
00181 typedef co::base::RefPtr< X11Connection > X11ConnectionPtr;
00182     
00183 // originator serial -> statistics
00184 typedef std::map< uint32_t, Statistics > SortedStatistics;
00185 
00186 // frame id, config statistics
00187 typedef std::pair< uint32_t, SortedStatistics > FrameStatistics;
00189 }
00190 
00192 // GLEW
00193 struct GLEWContextStruct;
00194 struct WGLEWContextStruct;
00195 struct GLXEWContextStruct;
00196 typedef struct GLEWContextStruct GLEWContext;
00197 typedef struct WGLEWContextStruct WGLEWContext;
00198 typedef struct GLXEWContextStruct GLXEWContext;
00201 #endif // EQ_TYPES_H
Generated on Sun May 8 2011 19:11:07 for Equalizer 1.0 by  doxygen 1.7.3