Equalizer  1.8.0
Parallel Rendering Framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
include/eq/fabric/frameData.h
1 
2 /* Copyright (c) 2006-2014, Stefan Eilemann <eile@equalizergraphics.com>
3  * 2011, Daniel Nachbaur <danielnachbaur@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_FRAMEDATA_H
20 #define EQFABRIC_FRAMEDATA_H
21 
22 #include <eq/fabric/api.h>
23 #include <eq/fabric/types.h>
24 
25 #include <eq/fabric/frame.h> // for Frame::Type
26 #include <eq/fabric/pixelViewport.h> // member
27 #include <eq/fabric/pixel.h> // member
28 #include <eq/fabric/range.h> // member
29 #include <eq/fabric/subPixel.h> // member
30 
31 namespace eq
32 {
33 namespace fabric
34 {
36 struct FrameData
37 {
38  FrameData() : frameType( Frame::TYPE_MEMORY ), buffers( 0 ), period( 1 )
39  , phase( 0 ) {}
40 
41  PixelViewport pvp;
42  Frame::Type frameType;
43  uint32_t buffers;
44  uint32_t period;
45  uint32_t phase;
46  Range range; //<! database-range of src wrt to dest
47  Pixel pixel; //<! pixel decomposition of source
48  SubPixel subpixel; //<! subpixel decomposition of source
49  Zoom zoom;
50 
51  EQFABRIC_API void serialize( co::DataOStream& os ) const;
52  EQFABRIC_API void deserialize( co::DataIStream& is );
53 };
54 
55 }
56 }
57 
58 namespace lunchbox
59 {
60 template<> inline void byteswap( eq::fabric::FrameData& value )
61 {
62  byteswap( value.pvp );
63  byteswap( value.frameType );
64  byteswap( value.buffers );
65  byteswap( value.period );
66  byteswap( value.phase );
67  byteswap( value.range );
68  byteswap( value.pixel );
69  byteswap( value.subpixel );
70  byteswap( value.zoom );
71 }
72 }
73 
74 #endif // EQFABRIC_FRAMEDATA_H
75 
A zoom specification with methods for manipulation.
Definition: zoom.h:34
Holds a subpixel decomposition specification along with some methods for manipulation.
Definition: subPixel.h:42
Type
The storage type for pixel data.
Definition: fabric/frame.h:50
Holds a pixel decomposition specification with methods for manipulation.
Definition: pixel.h:40
use main memory to store pixel data
Definition: fabric/frame.h:52
Holds a 2D pixel viewport with methods for manipulation.
Definition: pixelViewport.h:34
A fractional database range with methods for manipulation.
Definition: range.h:30