// The D65 white point. Given in both Rec. 601 and 709.
double d65_x = 0.3127, d65_y = 0.3290;
-ColorSpaceConversionEffect::ColorSpaceConversionEffect()
+ColorspaceConversionEffect::ColorspaceConversionEffect()
: source_space(COLORSPACE_sRGB),
destination_space(COLORSPACE_sRGB)
{
register_int("destination_space", (int *)&destination_space);
}
-void get_xyz_matrix(ColorSpace space, Matrix3x3 m)
+void get_xyz_matrix(Colorspace space, Matrix3x3 m)
{
if (space == COLORSPACE_XYZ) {
m[0] = 1.0f; m[3] = 0.0f; m[6] = 0.0f;
m[2] = Z_R; m[5] = Z_G; m[8] = Z_B;
}
-std::string ColorSpaceConversionEffect::output_fragment_shader()
+std::string ColorspaceConversionEffect::output_fragment_shader()
{
// Create a matrix to convert from source space -> XYZ,
// another matrix to convert from XYZ -> destination space,
#include "effect.h"
#include "effect_chain.h"
-class ColorSpaceConversionEffect : public Effect {
+class ColorspaceConversionEffect : public Effect {
public:
- ColorSpaceConversionEffect();
- virtual std::string effect_type_id() const { return "ColorSpaceConversionEffect"; }
+ ColorspaceConversionEffect();
+ virtual std::string effect_type_id() const { return "ColorspaceConversionEffect"; }
std::string output_fragment_shader();
virtual bool needs_srgb_primaries() const { return false; }
private:
- ColorSpace source_space, destination_space;
+ Colorspace source_space, destination_space;
};
#endif // !defined(_COLORSPACE_CONVERSION_EFFECT_H)
-// Unit tests for ColorSpaceConversionEffect.
+// Unit tests for ColorspaceConversionEffect.
#include "test_util.h"
#include "gtest/gtest.h"
#include "colorspace_conversion_effect.h"
-TEST(ColorSpaceConversionEffectTest, Reversible) {
+TEST(ColorspaceConversionEffectTest, Reversible) {
float data[] = {
0.0f, 0.0f, 0.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f,
expect_equal(data, out_data, 4, 6);
}
-TEST(ColorSpaceConversionEffectTest, sRGB_Primaries) {
+TEST(ColorspaceConversionEffectTest, sRGB_Primaries) {
float data[] = {
0.0f, 0.0f, 0.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f,
EXPECT_FLOAT_EQ(1.0f, out_data[4 * 4 + 3]);
}
-TEST(ColorSpaceConversionEffectTest, Rec601_525_Primaries) {
+TEST(ColorspaceConversionEffectTest, Rec601_525_Primaries) {
float data[] = {
0.0f, 0.0f, 0.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f,
EXPECT_FLOAT_EQ(1.0f, out_data[4 * 4 + 3]);
}
-TEST(ColorSpaceConversionEffectTest, Rec601_625_Primaries) {
+TEST(ColorspaceConversionEffectTest, Rec601_625_Primaries) {
float data[] = {
0.0f, 0.0f, 0.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f,
EXPECT_FLOAT_EQ(1.0f, out_data[4 * 4 + 3]);
}
-TEST(ColorSpaceConversionEffectTest, sRGBToRec601_525) {
+TEST(ColorspaceConversionEffectTest, sRGBToRec601_525) {
float data[] = {
0.0f, 0.0f, 0.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f,
virtual ~Effect() {}
// An identifier for this type of effect, mostly used for debug output
- // (but some special names, like "ColorSpaceConversionEffect", holds special
+ // (but some special names, like "ColorspaceConversionEffect", holds special
// meaning). Same as the class name is fine.
virtual std::string effect_type_id() const = 0;
continue;
}
- ColorSpace color_space = node->incoming_links[0]->output_color_space;
+ Colorspace color_space = node->incoming_links[0]->output_color_space;
GammaCurve gamma_curve = node->incoming_links[0]->output_gamma_curve;
for (unsigned j = 1; j < node->incoming_links.size(); ++j) {
if (node->incoming_links[j]->output_color_space != color_space) {
// The conversion effects already have their outputs set correctly,
// so leave them alone.
- if (node->effect->effect_type_id() != "ColorSpaceConversionEffect") {
+ if (node->effect->effect_type_id() != "ColorspaceConversionEffect") {
node->output_color_space = color_space;
}
if (node->effect->effect_type_id() != "GammaCompressionEffect" &&
if (input->output_color_space == COLORSPACE_sRGB) {
continue;
}
- Node *conversion = add_node(new ColorSpaceConversionEffect());
+ Node *conversion = add_node(new ColorspaceConversionEffect());
conversion->effect->set_int("source_space", input->output_color_space);
conversion->effect->set_int("destination_space", COLORSPACE_sRGB);
conversion->output_color_space = COLORSPACE_sRGB;
{
Node *output = find_output_node();
if (output->output_color_space != output_format.color_space) {
- Node *conversion = add_node(new ColorSpaceConversionEffect());
+ Node *conversion = add_node(new ColorspaceConversionEffect());
conversion->effect->set_int("source_space", output->output_color_space);
conversion->effect->set_int("destination_space", output_format.color_space);
conversion->output_color_space = output_format.color_space;
Phase *phase;
// Used during the building of the effect chain.
- ColorSpace output_color_space;
+ Colorspace output_color_space;
GammaCurve output_gamma_curve;
friend class EffectChain;
Node *node = effect->invert_node;
ASSERT_EQ(1, node->incoming_links.size());
ASSERT_EQ(1, node->outgoing_links.size());
- EXPECT_EQ("ColorSpaceConversionEffect", node->incoming_links[0]->effect->effect_type_id());
- EXPECT_EQ("ColorSpaceConversionEffect", node->outgoing_links[0]->effect->effect_type_id());
+ EXPECT_EQ("ColorspaceConversionEffect", node->incoming_links[0]->effect->effect_type_id());
+ EXPECT_EQ("ColorspaceConversionEffect", node->outgoing_links[0]->effect->effect_type_id());
expect_equal(expected_data, out_data, 3, 2);
}
unsigned get_width() const { return width; }
unsigned get_height() const { return height; }
- ColorSpace get_color_space() const { return image_format.color_space; }
+ Colorspace get_color_space() const { return image_format.color_space; }
GammaCurve get_gamma_curve() const { return image_format.gamma_curve; }
// Tells the input where to fetch the actual pixel data. Note that if you change
enum MovitPixelFormat { FORMAT_RGB, FORMAT_RGBA, FORMAT_BGR, FORMAT_BGRA, FORMAT_GRAYSCALE };
-enum ColorSpace {
+enum Colorspace {
COLORSPACE_INVALID = -1, // For internal use.
COLORSPACE_sRGB = 0,
COLORSPACE_REC_709 = 0, // Same as sRGB.
};
struct ImageFormat {
- ColorSpace color_space;
+ Colorspace color_space;
GammaCurve gamma_curve;
};
virtual unsigned get_width() const = 0;
virtual unsigned get_height() const = 0;
- virtual ColorSpace get_color_space() const = 0;
+ virtual Colorspace get_color_space() const = 0;
virtual GammaCurve get_gamma_curve() const = 0;
};
#include <algorithm>
-EffectChainTester::EffectChainTester(const float *data, unsigned width, unsigned height, MovitPixelFormat pixel_format, ColorSpace color_space, GammaCurve gamma_curve)
+EffectChainTester::EffectChainTester(const float *data, unsigned width, unsigned height, MovitPixelFormat pixel_format, Colorspace color_space, GammaCurve gamma_curve)
: chain(width, height), width(width), height(height)
{
add_input(data, pixel_format, color_space, gamma_curve);
check_error();
}
-Input *EffectChainTester::add_input(const float *data, MovitPixelFormat pixel_format, ColorSpace color_space, GammaCurve gamma_curve)
+Input *EffectChainTester::add_input(const float *data, MovitPixelFormat pixel_format, Colorspace color_space, GammaCurve gamma_curve)
{
ImageFormat format;
format.color_space = color_space;
return input;
}
-void EffectChainTester::run(float *out_data, GLenum format, ColorSpace color_space, GammaCurve gamma_curve)
+void EffectChainTester::run(float *out_data, GLenum format, Colorspace color_space, GammaCurve gamma_curve)
{
ImageFormat image_format;
image_format.color_space = color_space;
class EffectChainTester {
public:
- EffectChainTester(const float *data, unsigned width, unsigned height, MovitPixelFormat pixel_format, ColorSpace color_space, GammaCurve gamma_curve);
+ EffectChainTester(const float *data, unsigned width, unsigned height, MovitPixelFormat pixel_format, Colorspace color_space, GammaCurve gamma_curve);
~EffectChainTester();
EffectChain *get_chain() { return &chain; }
- Input *add_input(const float *data, MovitPixelFormat pixel_format, ColorSpace color_space, GammaCurve gamma_curve);
- void run(float *out_data, GLenum format, ColorSpace color_space, GammaCurve gamma_curve);
+ Input *add_input(const float *data, MovitPixelFormat pixel_format, Colorspace color_space, GammaCurve gamma_curve);
+ void run(float *out_data, GLenum format, Colorspace color_space, GammaCurve gamma_curve);
private:
EffectChain chain;
unsigned get_width() const { return width; }
unsigned get_height() const { return height; }
- ColorSpace get_color_space() const { return image_format.color_space; }
+ Colorspace get_color_space() const { return image_format.color_space; }
GammaCurve get_gamma_curve() const { return image_format.gamma_curve; }
// Tells the input where to fetch the actual pixel data. Note that if you change