Equalizer 1.0
|
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