Coverage Report

Created: 2023-12-08 06:53

/src/freeimage-svn/FreeImage/trunk/Source/OpenEXR/IlmImf/ImfRgba.h
Line
Count
Source (jump to first uncovered line)
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
48
OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
49
50
51
//
52
// RGBA pixel
53
//
54
55
struct Rgba
56
{
57
    half  r;
58
    half  g;
59
    half  b;
60
    half  a;
61
    
62
0
    Rgba () {}
63
0
    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
0
    {
67
0
      r = other.r;
68
0
      g = other.g;
69
0
      b = other.b;
70
0
      a = other.a;
71
72
0
      return *this;
73
0
    }
74
};
75
76
77
//
78
// Channels in an RGBA file
79
//
80
81
enum RgbaChannels
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
103
OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
104
105
106
107
108
109
#endif