Equalizer  2.1.0
Parallel Rendering Framework
eq/types.h
1 
2 /* Copyright (c) 2007-2016, Stefan Eilemann <eile@equalizergraphics.com>
3  * Daniel Nachbaur <danielnachbaur@gmail.com>
4  * Cedric Stalder <cedric.stalder@gmail.com>
5  *
6  * This library is free software; you can redistribute it and/or modify it under
7  * the terms of the GNU Lesser General Public License version 2.1 as published
8  * by the Free Software Foundation.
9  *
10  * This library is distributed in the hope that it will be useful, but WITHOUT
11  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12  * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
13  * details.
14  *
15  * You should have received a copy of the GNU Lesser General Public License
16  * along with this library; if not, write to the Free Software Foundation, Inc.,
17  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18  */
19 
20 #ifndef EQ_TYPES_H
21 #define EQ_TYPES_H
22 
23 #include <eq/defines.h>
24 #include <eq/fabric/commands.h>
25 #include <eq/fabric/eventType.h>
26 #include <eq/fabric/focusMode.h>
27 #include <eq/fabric/types.h>
28 #include <eq/util/types.h>
29 #include <lunchbox/atomic.h>
30 #include <lunchbox/compiler.h>
31 
32 #include <map>
33 #include <vector>
34 
35 namespace eq
36 {
37 class Canvas;
38 class Channel;
39 class Client;
40 class CommandQueue;
41 class Config;
42 class EventICommand;
43 class Frame;
44 class FrameData;
45 class Image;
46 class Layout;
47 class MessagePump;
48 class Node;
49 class NodeFactory;
50 class NotifierInterface;
51 class Observer;
52 class Pipe;
53 class ResultImageListener;
54 class Segment;
55 class Server;
56 class SystemPipe;
57 class SystemWindow;
58 class View;
59 class Window;
60 class WindowSettings;
61 class WindowSystem;
62 struct ImageOp;
63 struct PixelData;
64 
65 using namespace fabric::eventEnums;
66 using namespace fabric::eventTypes;
67 
68 using fabric::ANAGLYPH;
69 using fabric::ASYNC;
70 using fabric::AUTO;
71 using fabric::DRAW_SYNC;
72 using fabric::FASTEST;
73 using fabric::FBO;
74 using fabric::HORIZONTAL;
75 using fabric::LOCAL_SYNC;
76 using fabric::NICEST;
77 using fabric::OFF;
78 using fabric::ON;
79 using fabric::QUAD;
80 using fabric::RGBA16F;
81 using fabric::RGBA32F;
82 using fabric::UNDEFINED;
83 using fabric::VERTICAL;
84 using fabric::WINDOW;
85 
86 using fabric::AxisEvent;
87 using fabric::ButtonEvent;
88 using fabric::ColorMask;
89 using fabric::DrawableConfig;
90 using fabric::Errors;
91 using fabric::Event;
92 using fabric::Frustum;
93 using fabric::Frustumf;
94 using fabric::GPUInfo;
95 using fabric::IAttribute;
96 using fabric::KeyEvent;
97 using fabric::Pixel;
98 using fabric::PixelViewport;
99 using fabric::PointerEvent;
100 using fabric::Projection;
101 using fabric::Range;
102 using fabric::RenderContext;
103 using fabric::SizeEvent;
104 using fabric::Statistic;
105 using fabric::SubPixel;
106 using fabric::Tile;
107 using fabric::Viewport;
108 using fabric::Wall;
109 using fabric::Zoom;
110 
113 
116 
119 
122 
125 
128 
131 
134 
137 
140  // cppcheck-suppress unnecessaryForwardDeclaration
141  CanvasVisitor, NodeVisitor>
143 
146 
147 //----- Vectors
149 typedef std::vector<Config*> Configs;
151 typedef std::vector<Server*> Servers;
153 typedef std::vector<Node*> Nodes;
155 typedef std::vector<Pipe*> Pipes;
157 typedef std::vector<Window*> Windows;
159 typedef std::vector<Channel*> Channels;
161 typedef std::vector<Frame*> Frames;
163 typedef std::vector<Image*> Images;
165 typedef std::vector<Observer*> Observers;
167 typedef std::vector<Canvas*> Canvases;
169 typedef std::vector<Layout*> Layouts;
171 typedef std::vector<Segment*> Segments;
173 typedef std::vector<View*> Views;
175 typedef std::vector<PixelViewport> PixelViewports;
177 typedef std::vector<ImageOp> ImageOps;
178 
180 typedef Configs::const_iterator ConfigsCIter;
182 typedef Servers::const_iterator ServersCIter;
184 typedef Nodes::const_iterator NodesCIter;
186 typedef Pipes::const_iterator PipesCIter;
188 typedef Windows::const_iterator WindowsCIter;
190 typedef Channels::const_iterator ChannelsCIter;
192 typedef Frames::iterator FramesIter;
194 typedef Frames::const_iterator FramesCIter;
196 typedef Images::const_iterator ImagesCIter;
198 typedef Observers::const_iterator ObserversCIter;
200 typedef Canvases::const_iterator CanvasesCIter;
202 typedef Layouts::const_iterator LayoutsCIter;
204 typedef Segments::const_iterator SegmentsCIter;
206 typedef Views::const_iterator ViewsCIter;
208 typedef PixelViewports::const_iterator PixelViewportsCIter;
209 
211 typedef lunchbox::RefPtr<Client> ClientPtr;
213 typedef lunchbox::RefPtr<const Client> ConstClientPtr;
215 typedef lunchbox::RefPtr<Server> ServerPtr;
217 typedef lunchbox::RefPtr<FrameData> FrameDataPtr;
219 typedef lunchbox::RefPtr<const FrameData> ConstFrameDataPtr;
220 
221 using fabric::Matrix3d;
222 using fabric::Matrix4d;
223 using fabric::Matrix3f;
224 using fabric::Matrix4f;
225 using fabric::Vector2i;
226 using fabric::Vector3i;
227 using fabric::Vector4i;
228 using fabric::Vector3d;
229 using fabric::Vector4d;
230 using fabric::Vector2f;
231 using fabric::Vector3f;
232 using fabric::Vector4f;
233 using fabric::Vector3ub;
234 using fabric::Frustumf;
235 using fabric::Quaternionf; // !< A float quaternion
236 
237 using fabric::EventOCommand;
238 using fabric::EventType;
239 using fabric::FocusMode;
243 using fabric::CMD_CONFIG_EVENT;
244 
245 using fabric::Statistics;
246 using fabric::Strings;
247 using fabric::StringsCIter;
248 using fabric::Viewports;
249 
251 using vmml::FrustumCullerf;
252 
254 typedef std::vector<uint8_t> Vectorub;
256 typedef std::vector<uint16_t> Vectorus;
257 
258 using co::f_bool_t;
259 
260 using lunchbox::a_int32_t;
261 using lunchbox::backtrace;
262 using lunchbox::uint128_t;
263 
266 typedef co::WorkerThread<CommandQueue> Worker; // instantiated in worker.cpp
267 
268 namespace detail
269 {
270 class InitVisitor;
271 class ExitVisitor;
272 class FrameVisitor;
273 }
274 
275 namespace deflect
276 {
277 class Proxy;
278 }
280 }
281 
283 // GLEW
284 struct GLEWContextStruct;
285 struct WGLEWContextStruct;
286 struct GLXEWContextStruct;
287 typedef struct GLEWContextStruct GLEWContext;
288 typedef struct WGLEWContextStruct WGLEWContext;
289 typedef struct GLXEWContextStruct GLXEWContext;
290 namespace GLStats
291 {
292 class Data;
293 }
294 class QThread;
297 #endif // EQ_TYPES_H
std::vector< ImageOp > ImageOps
A vector of image compositing operations.
Definition: eq/types.h:177
Channels::const_iterator ChannelsCIter
A const_iterator over a eq::Channel vector.
Definition: eq/types.h:190
std::vector< PixelViewport > PixelViewports
A vector of eq::PixelViewport.
Definition: eq/types.h:175
std::vector< View * > Views
A vector of pointers to eq::View.
Definition: eq/types.h:173
lunchbox::RefPtr< Server > ServerPtr
A reference-counted pointer to an eq::Server.
Definition: eq/types.h:215
fabric::LeafVisitor< Observer > ObserverVisitor
A visitor to traverse channels.
Definition: eq/types.h:118
IAttribute
Possible values for integer attributes.
Definition: iAttribute.h:30
A visitor to traverse configs and all children.
Definition: configVisitor.h:36
std::vector< Viewport > Viewports
A vector of eq::Viewport.
Windows::const_iterator WindowsCIter
A const_iterator over a eq::Window vector.
Definition: eq/types.h:188
Segments::const_iterator SegmentsCIter
A const_iterator over a eq::Segment vector.
Definition: eq/types.h:204
A configuration is a visualization session driven by an application.
Definition: config.h:58
std::vector< Server * > Servers
A vector of pointers to eq::Server.
Definition: eq/types.h:151
Images::const_iterator ImagesCIter
A const_iterator over a eq::Image vector.
Definition: eq/types.h:196
fabric::ElementVisitor< Server, ConfigVisitor > ServerVisitor
A visitor to traverse servers and children.
Definition: eq/types.h:145
Pipes::const_iterator PipesCIter
A const_iterator over a eq::Pipe vector.
Definition: eq/types.h:186
Canvases::const_iterator CanvasesCIter
A const_iterator over a eq::Canvas vector.
Definition: eq/types.h:200
Float32 framebuffer (WindowSettings::IATTR_PLANES_COLOR)
Definition: iAttribute.h:39
std::vector< Window * > Windows
A vector of pointers to eq::Window.
Definition: eq/types.h:157
std::vector< Config * > Configs
A vector of pointers to eq::Config.
Definition: eq/types.h:149
FBO drawable (WindowSettings::IATTR_HINT_DRAWABLE)
Definition: iAttribute.h:41
A visitor to traverse leaf nodes of a graph.
Definition: leafVisitor.h:29
std::vector< Layout * > Layouts
A vector of pointers to eq::Layout.
Definition: eq/types.h:169
Focus distance relative and in -Z axis of origin.
Definition: focusMode.h:33
enabled (various attributes)
Definition: iAttribute.h:57
disabled (various attributes)
Definition: iAttribute.h:56
lunchbox::RefPtr< const Client > ConstClientPtr
A reference-counted pointer to a const eq::Client.
Definition: eq/types.h:213
Vertical load-balancing.
Definition: iAttribute.h:46
fabric::ElementVisitor< Node, PipeVisitor > NodeVisitor
A visitor to traverse nodes and children.
Definition: eq/types.h:133
Focus distance relative and in direction of observer.
Definition: focusMode.h:35
fabric::ElementVisitor< Layout, ViewVisitor > LayoutVisitor
A visitor to traverse layouts and children.
Definition: eq/types.h:136
std::vector< uint8_t > Vectorub
A vector of bytes.
Definition: eq/types.h:254
std::vector< Frame * > Frames
A vector of pointers to eq::Frame.
Definition: eq/types.h:161
fabric::ConfigVisitor< Config, ObserverVisitor, LayoutVisitor, CanvasVisitor, NodeVisitor > ConfigVisitor
A visitor to traverse configs and children.
Definition: eq/types.h:142
fabric::LeafVisitor< Segment > SegmentVisitor
A visitor to traverse segments.
Definition: eq/types.h:112
No local sync (Node::IATTR_THREAD_MODEL)
Definition: iAttribute.h:44
Nicest statistics gathering (WindowSettings::IATTR_HINT_STATISTICS, Channel::IATTR_HINT_STATISTICS) ...
Definition: iAttribute.h:54
A visitor to traverse non-leaf elements and their children in a tree.
fabric::ElementVisitor< Pipe, WindowVisitor > PipeVisitor
A visitor to traverse pipes and children.
Definition: eq/types.h:130
std::vector< Channel * > Channels
A vector of pointers to eq::Channel.
Definition: eq/types.h:159
Window drawable (WindowSettings::IATTR_HINT_DRAWABLE)
Definition: iAttribute.h:45
Layouts::const_iterator LayoutsCIter
A const_iterator over a eq::Layout vector.
Definition: eq/types.h:202
lunchbox::RefPtr< const FrameData > ConstFrameDataPtr
A reference-counted pointer to a const eq::FrameData.
Definition: eq/types.h:219
Includes compile-time defines of Equalizer.
Automatic selection (various attributes)
Definition: iAttribute.h:55
Horizontal load-balancing.
Definition: iAttribute.h:63
Servers::const_iterator ServersCIter
A const_iterator over a eq::Server vector.
Definition: eq/types.h:182
std::vector< Pipe * > Pipes
A vector of pointers to eq::Pipe.
Definition: eq/types.h:155
Focus on physical projection.
Definition: focusMode.h:31
FocusMode
The algorithm to use for observer focal distance calculation.
Definition: focusMode.h:29
Local draw sync (Node::IATTR_THREAD_MODEL)
Definition: iAttribute.h:43
fabric::ElementVisitor< Window, ChannelVisitor > WindowVisitor
A visitor to traverse windows and children.
Definition: eq/types.h:127
Configs::const_iterator ConfigsCIter
A const_iterator over a eq::Config vector.
Definition: eq/types.h:180
fabric::ElementVisitor< Canvas, SegmentVisitor > CanvasVisitor
A visitor to traverse canvases and children.
Definition: eq/types.h:124
The Equalizer client library.
Definition: eq/agl/types.h:23
lunchbox::RefPtr< Client > ClientPtr
A reference-counted pointer to an eq::Client.
Definition: eq/types.h:211
fabric::LeafVisitor< View > ViewVisitor
A visitor to traverse views.
Definition: eq/types.h:115
Quad-buffered stereo decomposition.
Definition: iAttribute.h:47
PixelViewports::const_iterator PixelViewportsCIter
A const_iterator over a eq::PixelViewport vector.
Definition: eq/types.h:208
std::vector< Node * > Nodes
A vector of pointers to eq::Node.
Definition: eq/types.h:153
Nodes::const_iterator NodesCIter
A const_iterator over a eq::Node vector.
Definition: eq/types.h:184
lunchbox::RefPtr< FrameData > FrameDataPtr
A reference-counted pointer to an eq::FrameData.
Definition: eq/types.h:217
Frames::const_iterator FramesCIter
A const_iterator over a eq::Frame vector.
Definition: eq/types.h:194
Views::const_iterator ViewsCIter
A const_iterator over a eq::View vector.
Definition: eq/types.h:206
std::vector< Image * > Images
A vector of pointers to eq::Image.
Definition: eq/types.h:163
Anaglyphic stereo decomposition.
Definition: iAttribute.h:48
std::vector< Canvas * > Canvases
A vector of pointers to eq::Canvas.
Definition: eq/types.h:167
std::vector< Observer * > Observers
A vector of pointers to eq::Observer.
Definition: eq/types.h:165
std::vector< Statistic > Statistics
A vector of eq::Statistic events.
std::vector< uint16_t > Vectorus
A vector of unsigned shorts.
Definition: eq/types.h:256
fabric::LeafVisitor< Channel > ChannelVisitor
A visitor to traverse channels.
Definition: eq/types.h:121
std::vector< Segment * > Segments
A vector of pointers to eq::Segment.
Definition: eq/types.h:171
Undefined value.
Definition: iAttribute.h:32
Float16 framebuffer (WindowSettings::IATTR_PLANES_COLOR)
Definition: iAttribute.h:40
Full local sync (Node::IATTR_THREAD_MODEL)
Definition: iAttribute.h:42
Observers::const_iterator ObserversCIter
A const_iterator over a eq::Observer vector.
Definition: eq/types.h:198
std::vector< Error > Errors
A vector of eq::fabric::Error.
Frames::iterator FramesIter
An iterator over a eq::Frame vector.
Definition: eq/types.h:192
Fastest statistics gathering (WindowSettings::IATTR_HINT_STATISTICS, Channel::IATTR_HINT_STATISTICS) ...
Definition: iAttribute.h:62