Line data Source code
1 :
2 : /* Copyright (c) 2007-2014, Stefan Eilemann <eile@equalizergraphics.com>
3 : * Copyright (c) 2010, Cedric Stalder <cedric.stalder@gmail.com>
4 : *
5 : * This library is free software; you can redistribute it and/or modify it under
6 : * the terms of the GNU Lesser General Public License version 2.1 as published
7 : * by the Free Software Foundation.
8 : *
9 : * This library is distributed in the hope that it will be useful, but WITHOUT
10 : * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 : * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12 : * details.
13 : *
14 : * You should have received a copy of the GNU Lesser General Public License
15 : * along with this library; if not, write to the Free Software Foundation, Inc.,
16 : * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17 : */
18 :
19 : #ifndef EQFABRIC_EYE_H
20 : #define EQFABRIC_EYE_H
21 :
22 : #include <eq/fabric/api.h>
23 : #include <lunchbox/bitOperation.h>
24 : #include <iostream>
25 :
26 : namespace eq
27 : {
28 : namespace fabric
29 : {
30 : /**
31 : * Eye pass bit mask for which is enabled.
32 : */
33 : enum Eye
34 : {
35 : EYE_CYCLOP_BIT = 0, //!< @internal
36 : EYE_LEFT_BIT = 1, //!< @internal
37 : EYE_RIGHT_BIT = 2, //!< @internal
38 : EYE_UNDEFINED = 0,
39 : EYE_CYCLOP = 1 << EYE_CYCLOP_BIT, //!< monoscopic 'middle' eye
40 : EYE_LEFT = 1 << EYE_LEFT_BIT, //!< left eye
41 : EYE_RIGHT = 1 << EYE_RIGHT_BIT, //!< right eye
42 : EYE_LAST = EYE_RIGHT, //!< the last eye
43 : NUM_EYES = 3, //!< @internal increase with each new enum
44 : EYES_STEREO = EYE_LEFT | EYE_RIGHT, //!< left and right eye
45 : EYES_ALL = 7 //!< all eyes
46 : };
47 :
48 : EQFABRIC_API std::ostream& operator << ( std::ostream& os, const Eye& eye );
49 : }
50 : }
51 :
52 : namespace lunchbox
53 : {
54 0 : template<> inline void byteswap( eq::fabric::Eye& value )
55 0 : { byteswap( reinterpret_cast< uint32_t& >( value )); }
56 : }
57 :
58 : #endif // EQFABRIC_EYE_H
|