HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ImfRgba.h
Go to the documentation of this file.
1 ///////////////////////////////////////////////////////////////////////////
2 //
3 // Copyright (c) 2004, Industrial Light & Magic, a division of Lucas
4 // Digital Ltd. LLC
5 //
6 // All rights reserved.
7 //
8 // Redistribution and use in source and binary forms, with or without
9 // modification, are permitted provided that the following conditions are
10 // met:
11 // * Redistributions of source code must retain the above copyright
12 // notice, this list of conditions and the following disclaimer.
13 // * Redistributions in binary form must reproduce the above
14 // copyright notice, this list of conditions and the following disclaimer
15 // in the documentation and/or other materials provided with the
16 // distribution.
17 // * Neither the name of Industrial Light & Magic nor the names of
18 // its contributors may be used to endorse or promote products derived
19 // from this software without specific prior written permission.
20 //
21 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 //
33 ///////////////////////////////////////////////////////////////////////////
34 
35 
36 #ifndef INCLUDED_IMF_RGBA_H
37 #define INCLUDED_IMF_RGBA_H
38 
39 //-----------------------------------------------------------------------------
40 //
41 // class Rgba
42 //
43 //-----------------------------------------------------------------------------
44 
45 #include "half.h"
46 #include "ImfNamespace.h"
47 
49 
50 
51 //
52 // RGBA pixel
53 //
54 
55 struct Rgba
56 {
61 
62  Rgba () {}
63  Rgba (half r, half g, half b, half a = 1.f): r (r), g (g), b (b), a (a) {}
64 
65  Rgba & operator = (const Rgba &other)
66  {
67  r = other.r;
68  g = other.g;
69  b = other.b;
70  a = other.a;
71 
72  return *this;
73  }
74 };
75 
76 
77 //
78 // Channels in an RGBA file
79 //
80 
82 {
83  WRITE_R = 0x01, // Red
84  WRITE_G = 0x02, // Green
85  WRITE_B = 0x04, // Blue
86  WRITE_A = 0x08, // Alpha
87 
88  WRITE_Y = 0x10, // Luminance, for black-and-white images,
89  // or in combination with chroma
90 
91  WRITE_C = 0x20, // Chroma (two subsampled channels, RY and BY,
92  // supported only for scanline-based files)
93 
94  WRITE_RGB = 0x07, // Red, green, blue
95  WRITE_RGBA = 0x0f, // Red, green, blue, alpha
96 
97  WRITE_YC = 0x30, // Luminance, chroma
98  WRITE_YA = 0x18, // Luminance, alpha
99  WRITE_YCA = 0x38 // Luminance, chroma, alpha
100 };
101 
102 
104 
105 
106 
107 
108 
109 #endif
Rgba & operator=(const Rgba &other)
Definition: ImfRgba.h:65
Rgba()
Definition: ImfRgba.h:62
#define OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
Definition: ImfNamespace.h:109
half b
Definition: ImfRgba.h:59
GLboolean GLboolean g
Definition: glcorearb.h:1221
GLboolean GLboolean GLboolean GLboolean a
Definition: glcorearb.h:1221
RgbaChannels
Definition: ImfRgba.h:81
Rgba(half r, half g, half b, half a=1.f)
Definition: ImfRgba.h:63
half g
Definition: ImfRgba.h:58
GLfloat f
Definition: glcorearb.h:1925
half a
Definition: ImfRgba.h:60
GLboolean GLboolean GLboolean b
Definition: glcorearb.h:1221
half r
Definition: ImfRgba.h:57
#define OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
Definition: ImfNamespace.h:108
Definition: ImfRgba.h:55
GLboolean r
Definition: glcorearb.h:1221
Definition: half.h:91