X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=gamma_expansion_effect_test.cpp;h=6fc0252c8c5a28780e7d6127790a0e942543a9f5;hp=ed124c4f31c7a9d750c91bcf4269e4398fd7839c;hb=37f56fcbe571b2322243f6de59494bf9e0cbb37a;hpb=2fdbe6e32ef5de09db9c890b6cd4355bf65dd1e5 diff --git a/gamma_expansion_effect_test.cpp b/gamma_expansion_effect_test.cpp index ed124c4..6fc0252 100644 --- a/gamma_expansion_effect_test.cpp +++ b/gamma_expansion_effect_test.cpp @@ -1,8 +1,10 @@ // Unit tests for GammaExpansionEffect. -#include "test_util.h" -#include "gtest/gtest.h" +#include + #include "gamma_expansion_effect.h" +#include "gtest/gtest.h" +#include "test_util.h" TEST(GammaExpansionEffectTest, sRGB_KeyValues) { float data[] = { @@ -34,6 +36,21 @@ TEST(GammaExpansionEffectTest, sRGB_RampAlwaysIncreases) { } } +TEST(GammaExpansionEffectTest, sRGB_AlphaIsUnchanged) { + float data[] = { + 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.25f, + 0.0f, 0.0f, 0.0f, 0.5f, + 0.0f, 0.0f, 0.0f, 0.75f, + 0.0f, 0.0f, 0.0f, 1.0f, + }; + float out_data[5 * 4]; + EffectChainTester tester(data, 5, 1, FORMAT_RGBA_POSTMULTIPLIED_ALPHA, COLORSPACE_sRGB, GAMMA_sRGB); + tester.run(out_data, GL_RGBA, COLORSPACE_sRGB, GAMMA_LINEAR); + + expect_equal(data, out_data, 5, 1); +} + TEST(GammaExpansionEffectTest, Rec709_KeyValues) { float data[] = { 0.0f, 1.0f, @@ -63,3 +80,18 @@ TEST(GammaExpansionEffectTest, Rec709_RampAlwaysIncreases) { << "No increase between " << i-1 << " and " << i; } } + +TEST(GammaExpansionEffectTest, Rec709_AlphaIsUnchanged) { + float data[] = { + 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.25f, + 0.0f, 0.0f, 0.0f, 0.5f, + 0.0f, 0.0f, 0.0f, 0.75f, + 0.0f, 0.0f, 0.0f, 1.0f, + }; + float out_data[5 * 4]; + EffectChainTester tester(data, 5, 1, FORMAT_RGBA_POSTMULTIPLIED_ALPHA, COLORSPACE_sRGB, GAMMA_REC_709); + tester.run(out_data, GL_RGBA, COLORSPACE_sRGB, GAMMA_LINEAR); + + expect_equal(data, out_data, 5, 1); +}