Panda3D
colorSpace.h
Go to the documentation of this file.
1 /**
2  * PANDA 3D SOFTWARE
3  * Copyright (c) Carnegie Mellon University. All rights reserved.
4  *
5  * All use of this software is subject to the terms of the revised BSD
6  * license. You should have received a copy of this license along
7  * with this source code in a file named "LICENSE."
8  *
9  * @file colorSpace.h
10  * @author rdb
11  * @date 2014-06-02
12  */
13 
14 #ifndef COLORSPACE_H
15 #define COLORSPACE_H
16 
17 #include "pandabase.h"
18 
19 #include "typedef.h"
20 
21 BEGIN_PUBLISH
22 
23 enum ColorSpace {
24  // This value is not a color space, but is used to indicate that a color
25  // space has not been specified.
26  CS_unspecified = 0,
27 
28  // CS_linear is not a color space per se, but represents the working color
29  // space of graphics APIs, which is linearized. Since the conversion from
30  // sRGB to linear is defined, one could posit that it has the ITU-R BT.709
31  // primaries, but this isn't meaningful as modern graphics APIs do not
32  // perform color management. All colors in Panda3D are linear unless
33  // otherwise specified.
34  CS_linear,
35 
36  // This is the standard, gamma-2.2-corrected sRGB color space, as used by
37  // the majority of image formats.
38  CS_sRGB,
39 
40  // This is a 16-bit encoded linear color space capable of encoding color
41  // values in the -0.5...7.4999 range.
42  CS_scRGB,
43 };
44 
45 EXPCL_PANDA_PUTIL ColorSpace parse_color_space_string(const std::string &str);
46 EXPCL_PANDA_PUTIL std::string format_color_space(ColorSpace cs);
47 
48 END_PUBLISH
49 
50 EXPCL_PANDA_PUTIL std::ostream &operator << (std::ostream &out, ColorSpace cs);
51 EXPCL_PANDA_PUTIL std::istream &operator >> (std::istream &in, ColorSpace &cs);
52 
53 #endif
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.