X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=compute_shader_test.cpp;fp=compute_shader_test.cpp;h=0000000000000000000000000000000000000000;hb=e3306f2e63af4e9c1ac2b0781f67f50906574b97;hp=50b2694fef01a5038861150d82cdcf9e39bbd9c1;hpb=3b9957afac0555a126d1941d7027fb52e29b309a;p=movit diff --git a/compute_shader_test.cpp b/compute_shader_test.cpp deleted file mode 100644 index 50b2694..0000000 --- a/compute_shader_test.cpp +++ /dev/null @@ -1,86 +0,0 @@ -#include - -#include -#include - -#include "effect.h" -#include "flat_input.h" -#include "gtest/gtest.h" -#include "init.h" -#include "resource_pool.h" -#include "test_util.h" -#include "util.h" - -using namespace std; - -namespace movit { - -// An effect that does nothing. -class IdentityComputeEffect : public Effect { -public: - IdentityComputeEffect() {} - virtual string effect_type_id() const { return "IdentityComputeEffect"; } - virtual bool is_compute_shader() const { return true; } - string output_fragment_shader() { return read_file("identity.comp"); } -}; - -TEST(ComputeShaderTest, Identity) { - float data[] = { - 0.0f, 0.25f, 0.3f, - 0.75f, 1.0f, 1.0f, - }; - float out_data[6]; - EffectChainTester tester(data, 3, 2, FORMAT_GRAYSCALE, COLORSPACE_sRGB, GAMMA_LINEAR); - if (!movit_compute_shaders_supported) { - fprintf(stderr, "Skipping test; no support for compile shaders.\n"); - return; - } - tester.get_chain()->add_effect(new IdentityComputeEffect()); - tester.run(out_data, GL_RED, COLORSPACE_sRGB, GAMMA_LINEAR); - - expect_equal(data, out_data, 3, 2); -} - -// Like IdentityComputeEffect, but due to the alpha handling, this will be -// the very last effect in the chain, which means we can't output it directly -// to the screen. -class IdentityAlphaComputeEffect : public IdentityComputeEffect { - AlphaHandling alpha_handling() const { return DONT_CARE_ALPHA_TYPE; } -}; - -TEST(ComputeShaderTest, LastEffectInChain) { - float data[] = { - 0.0f, 0.25f, 0.3f, - 0.75f, 1.0f, 1.0f, - }; - float out_data[6]; - EffectChainTester tester(data, 3, 2, FORMAT_GRAYSCALE, COLORSPACE_sRGB, GAMMA_LINEAR); - if (!movit_compute_shaders_supported) { - fprintf(stderr, "Skipping test; no support for compile shaders.\n"); - return; - } - tester.get_chain()->add_effect(new IdentityAlphaComputeEffect()); - tester.run(out_data, GL_RED, COLORSPACE_sRGB, GAMMA_LINEAR); - - expect_equal(data, out_data, 3, 2); -} - -TEST(ComputeShaderTest, Render8BitTo8Bit) { - uint8_t data[] = { - 14, 200, 80, - 90, 100, 110, - }; - uint8_t out_data[6]; - EffectChainTester tester(nullptr, 3, 2, FORMAT_GRAYSCALE, COLORSPACE_sRGB, GAMMA_LINEAR, GL_RGBA8); - if (!movit_compute_shaders_supported) { - fprintf(stderr, "Skipping test; no support for compile shaders.\n"); - return; - } - tester.add_input(data, FORMAT_GRAYSCALE, COLORSPACE_sRGB, GAMMA_LINEAR, 3, 2); - tester.get_chain()->add_effect(new IdentityAlphaComputeEffect()); - tester.run(out_data, GL_RED, COLORSPACE_sRGB, GAMMA_LINEAR); - - expect_equal(data, out_data, 3, 2); -} - -} // namespace movit