]> git.sesse.net Git - movit/blobdiff - test_util.cpp
Add a helper class to easier test fragment and compute shader versions of the same...
[movit] / test_util.cpp
index ed8b92a93990e974b0cb1d385d3eda952075614c..99ab731f6d7c1c3af31b93035b27618a770c4f27 100644 (file)
@@ -42,6 +42,11 @@ void vertical_flip(T *data, unsigned width, unsigned height)
        }
 }
 
+void init_movit_for_test()
+{
+       CHECK(init_movit(".", MOVIT_DEBUG_OFF));
+}
+
 }  // namespace
 
 EffectChainTester::EffectChainTester(const float *data, unsigned width, unsigned height,
@@ -512,4 +517,32 @@ double linear_to_srgb(double x)
        }
 }
 
+DisableComputeShadersTemporarily::DisableComputeShadersTemporarily(bool disable_compute_shaders)
+       : disable_compute_shaders(disable_compute_shaders)
+{
+       init_movit_for_test();
+       saved_compute_shaders_supported = movit_compute_shaders_supported;
+       if (disable_compute_shaders) {
+               movit_compute_shaders_supported = false;
+       }
+}
+
+DisableComputeShadersTemporarily::~DisableComputeShadersTemporarily()
+{
+       movit_compute_shaders_supported = saved_compute_shaders_supported;
+}
+
+bool DisableComputeShadersTemporarily::should_skip()
+{
+       if (disable_compute_shaders) {
+               return false;
+       }
+
+       if (!movit_compute_shaders_supported) {
+               fprintf(stderr, "Compute shaders not supported; skipping.\n");
+               return true;
+       }
+       return false;
+}
+
 }  // namespace movit