X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=flat_input_test.cpp;h=b717764dda03bb136ff7cb3ece897fa04f3c2f43;hp=17ee9ce49f407abefc9206df05e1e69559f73c2f;hb=36ae69017f10987948009bf6f602da5f94e4f780;hpb=b16d7433b249c5381fa137d3ac3ef7867ae2eae4 diff --git a/flat_input_test.cpp b/flat_input_test.cpp index 17ee9ce..b717764 100644 --- a/flat_input_test.cpp +++ b/flat_input_test.cpp @@ -77,6 +77,37 @@ TEST(FlatInput, RGBA) { expect_equal(expected_data, out_data, 4, size); } +// Note: The sRGB conversion itself is tested in EffectChainTester, +// since it also wants to test the chain building itself. +// Here, we merely test that alpha is left alone; the test will usually +// run using the sRGB OpenGL extension, but might be run with a +// GammaExpansionEffect if the card/driver happens not to support that. +TEST(FlatInput, AlphaIsNotModifiedBySRGBConversion) { + const int size = 5; + + unsigned char data[4 * size] = { + 0, 0, 0, 0, + 0, 0, 0, 63, + 0, 0, 0, 127, + 0, 0, 0, 191, + 0, 0, 0, 255, + }; + float expected_data[4 * size] = { + 0, 0, 0, 0.0 / 255.0, + 0, 0, 0, 63.0 / 255.0, + 0, 0, 0, 127.0 / 255.0, + 0, 0, 0, 191.0 / 255.0, + 0, 0, 0, 255.0 / 255.0, + }; + float out_data[4 * size]; + + EffectChainTester tester(NULL, 1, size); + tester.add_input(data, FORMAT_RGBA, COLORSPACE_sRGB, GAMMA_sRGB); + tester.run(out_data, GL_RGBA, COLORSPACE_sRGB, GAMMA_LINEAR); + + expect_equal(expected_data, out_data, 4, size); +} + TEST(FlatInput, BGR) { const int size = 5;