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