Equalizer
1.4.1
|
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 class WindowSystem; 00057 struct ConfigEvent; 00058 struct PixelData; 00059 struct Statistic; 00060 struct Event; 00061 00062 using fabric::ANAGLYPH; 00063 using fabric::ASYNC; 00064 using fabric::AUTO; 00065 using fabric::DRAW_SYNC; 00066 using fabric::FASTEST; 00067 using fabric::FBO; 00068 using fabric::HORIZONTAL; 00069 using fabric::LOCAL_SYNC; 00070 using fabric::NICEST; 00071 using fabric::OFF; 00072 using fabric::ON; 00073 using fabric::PBUFFER; 00074 using fabric::QUAD; 00075 using fabric::RGBA16F; 00076 using fabric::RGBA32F; 00077 using fabric::UNDEFINED; 00078 using fabric::VERTICAL; 00079 using fabric::WINDOW; 00080 00081 using fabric::ColorMask; 00082 using fabric::DrawableConfig; 00083 using fabric::Frustum; 00084 using fabric::Frustumf; 00085 using fabric::GPUInfo; 00086 using fabric::IAttribute; 00087 using fabric::Pixel; 00088 using fabric::PixelViewport; 00089 using fabric::Projection; 00090 using fabric::Range; 00091 using fabric::RenderContext; 00092 using fabric::SubPixel; 00093 using fabric::TileTaskPacket; 00094 using fabric::Viewport; 00095 using fabric::Wall; 00096 using fabric::Zoom; 00097 00099 typedef fabric::LeafVisitor< Segment > SegmentVisitor; 00100 00102 typedef fabric::LeafVisitor< View > ViewVisitor; 00103 00105 typedef fabric::LeafVisitor< Observer > ObserverVisitor; 00106 00108 typedef fabric::LeafVisitor< Channel > ChannelVisitor; 00109 00111 typedef fabric::ElementVisitor< Canvas, SegmentVisitor > CanvasVisitor; 00112 00114 typedef fabric::ElementVisitor< Window, ChannelVisitor > WindowVisitor; 00115 00117 typedef fabric::ElementVisitor< Pipe, WindowVisitor > PipeVisitor; 00118 00120 typedef fabric::ElementVisitor< Node, PipeVisitor > NodeVisitor; 00121 00123 typedef fabric::ElementVisitor< Layout, ViewVisitor > LayoutVisitor; 00124 00126 typedef fabric::ConfigVisitor< Config, ObserverVisitor, LayoutVisitor, 00127 CanvasVisitor, NodeVisitor > ConfigVisitor; 00128 00130 typedef fabric::ElementVisitor< Server, ConfigVisitor > ServerVisitor; 00131 00132 //----- Vectors 00134 typedef std::vector< Config* > Configs; 00136 typedef std::vector< Server* > Servers; 00138 typedef std::vector< Node* > Nodes; 00140 typedef std::vector< Pipe* > Pipes; 00142 typedef std::vector< Window* > Windows; 00144 typedef std::vector< Channel* > Channels; 00146 typedef std::vector< Frame* > Frames; 00148 typedef std::vector< Image* > Images; 00150 typedef std::vector< Observer* > Observers; 00152 typedef std::vector< Canvas* > Canvases; 00154 typedef std::vector< Layout* > Layouts; 00156 typedef std::vector< Segment* > Segments; 00158 typedef std::vector< View* > Views; 00160 typedef std::vector< Viewport > Viewports; 00162 typedef std::vector< PixelViewport > PixelViewports; 00164 typedef std::vector< Statistic > Statistics; 00165 00167 typedef Configs::const_iterator ConfigsCIter; 00169 typedef Servers::const_iterator ServersCIter; 00171 typedef Nodes::const_iterator NodesCIter; 00173 typedef Pipes::const_iterator PipesCIter; 00175 typedef Windows::const_iterator WindowsCIter; 00177 typedef Channels::const_iterator ChannelsCIter; 00179 typedef Frames::iterator FramesIter; 00181 typedef Frames::const_iterator FramesCIter; 00183 typedef Images::const_iterator ImagesCIter; 00185 typedef Observers::const_iterator ObserversCIter; 00187 typedef Canvases::const_iterator CanvasesCIter; 00189 typedef Layouts::const_iterator LayoutsCIter; 00191 typedef Segments::const_iterator SegmentsCIter; 00193 typedef Views::const_iterator ViewsCIter; 00195 typedef Viewports::const_iterator ViewportsCIter; 00197 typedef PixelViewports::const_iterator PixelViewportsCIter; 00199 typedef Statistics::const_iterator StatisticsCIter; 00200 00202 typedef lunchbox::RefPtr< Client > ClientPtr; 00204 typedef lunchbox::RefPtr< const Client > ConstClientPtr; 00206 typedef lunchbox::RefPtr< Server > ServerPtr; 00208 typedef lunchbox::RefPtr< FrameData > FrameDataPtr; 00210 typedef lunchbox::RefPtr< const FrameData > ConstFrameDataPtr; 00211 00212 namespace util 00213 { 00214 template< class > class BitmapFont; 00215 template< class > class ObjectManager; 00216 } 00217 00219 typedef util::BitmapFont< const void* > BitmapFont; 00220 00222 typedef util::ObjectManager< const void* > ObjectManager; 00223 00224 using fabric::Matrix3d; 00225 using fabric::Matrix4d; 00226 using fabric::Matrix3f; 00227 using fabric::Matrix4f; 00228 using fabric::Vector2i; 00229 using fabric::Vector3i; 00230 using fabric::Vector4i; 00231 using fabric::Vector3d; 00232 using fabric::Vector4d; 00233 using fabric::Vector2f; 00234 using fabric::Vector3f; 00235 using fabric::Vector4f; 00236 using fabric::Vector3ub; 00237 using fabric::Frustumf; 00238 00239 using fabric::FocusMode; 00240 using fabric::FOCUSMODE_FIXED; 00241 using fabric::FOCUSMODE_RELATIVE_TO_ORIGIN; 00242 using fabric::FOCUSMODE_RELATIVE_TO_OBSERVER; 00243 00245 typedef vmml::frustum_culler< float > FrustumCullerf; 00246 00248 typedef std::vector< std::string > Strings; 00250 typedef std::vector< uint8_t > Vectorub; 00252 typedef std::vector< uint16_t > Vectorus; 00253 00255 typedef Strings::const_iterator StringsCIter; 00256 00257 using lunchbox::a_int32_t; 00258 using lunchbox::backtrace; 00259 using lunchbox::uint128_t; 00260 using lunchbox::UUID; 00261 00263 typedef co::WorkerThread< CommandQueue > Worker; // instantiated in worker.cpp 00264 00265 // originator serial -> statistics 00266 typedef std::map< uint32_t, Statistics > SortedStatistics; 00267 00268 // frame id, config statistics 00269 typedef std::pair< uint32_t, SortedStatistics > FrameStatistics; 00271 } 00272 00274 // GLEW 00275 struct GLEWContextStruct; 00276 struct WGLEWContextStruct; 00277 struct GLXEWContextStruct; 00278 typedef struct GLEWContextStruct GLEWContext; 00279 typedef struct WGLEWContextStruct WGLEWContext; 00280 typedef struct GLXEWContextStruct GLXEWContext; 00283 #endif // EQ_TYPES_H