Equalizer
1.4.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 EQFABRIC_TYPES_H 00020 #define EQFABRIC_TYPES_H 00021 00022 #include <eq/fabric/api.h> 00023 #include <eq/fabric/vmmlib.h> 00024 #include <co/types.h> 00025 #include <lunchbox/refPtr.h> 00026 #include <lunchbox/uint128_t.h> 00027 00028 namespace eq 00029 { 00030 namespace fabric 00031 { 00032 class ColorMask; 00033 class Frustum; 00034 class Pixel; 00035 class PixelViewport; 00036 class Projection; 00037 class Range; 00038 class RenderContext; 00039 class SubPixel; 00040 class SwapBarrier; 00041 class Viewport; 00042 class Wall; 00043 class Zoom; 00044 struct DrawableConfig; 00045 struct GPUInfo; 00046 00047 typedef vmml::matrix< 3, 3, double > Matrix3d; 00048 typedef vmml::matrix< 4, 4, double > Matrix4d; 00049 typedef vmml::matrix< 3, 3, float > Matrix3f; 00050 typedef vmml::matrix< 4, 4, float > Matrix4f; 00051 typedef vmml::vector< 2, int > Vector2i; 00052 typedef vmml::vector< 3, int > Vector3i; 00053 typedef vmml::vector< 4, int > Vector4i; 00054 typedef vmml::vector< 3, double >Vector3d; 00055 typedef vmml::vector< 4, double >Vector4d; 00056 typedef vmml::vector< 2, float > Vector2f; 00057 typedef vmml::vector< 3, float > Vector3f; 00058 typedef vmml::vector< 4, float > Vector4f; 00059 00060 typedef vmml::vector< 3, unsigned char > Vector3ub; 00061 typedef vmml::frustum< float > Frustumf; 00062 00063 using lunchbox::uint128_t; 00064 using lunchbox::UUID; 00065 00066 class Client; 00067 template< class, class > class Channel; 00068 template< class, class > class Observer; 00069 template< class, class, class > class Layout; 00070 template< class, class, class > class Segment; 00071 template< class, class, class > class View; 00072 template< class, class, class > class Window; 00073 template< class, class, class, class > class Canvas; 00074 template< class, class, class, class > class Node; 00075 template< class, class, class, class > class Pipe; 00076 template< class, class, class, class, class, class > class Server; 00077 template< class, class, class, class, class, class, class > class Config; 00078 template< class, class > class ElementVisitor; 00079 template< class > class LeafVisitor; 00080 template< class, class, class, class, class> class ConfigVisitor; 00081 00082 typedef lunchbox::RefPtr< Client > ClientPtr; 00083 typedef lunchbox::RefPtr< const Client > ConstClientPtr; 00084 typedef lunchbox::RefPtr< SwapBarrier > SwapBarrierPtr; 00085 typedef lunchbox::RefPtr< const SwapBarrier > SwapBarrierConstPtr; 00086 00087 struct CanvasPath; 00088 struct ChannelPath; 00089 struct LayoutPath; 00090 struct NodePath; 00091 struct ObserverPath; 00092 struct PipePath; 00093 struct SegmentPath; 00094 struct ViewPath; 00095 struct WindowPath; 00096 00097 #ifndef EQ_2_0_API 00098 using co::Serializable; 00099 #endif 00100 00101 } 00102 } 00103 #endif // EQFABRIC_TYPES_H