+#ifndef _MOVIT_BLUR_EFFECT_H
+#define _MOVIT_BLUR_EFFECT_H 1
+
+// A separable 2D blur implemented by a combination of mipmap filtering
+// and convolution (essentially giving a convolution with a piecewise linear
+// approximation to the true impulse response).
+//
+// Works in two passes; first horizontal, then vertical (BlurEffect,
+// which is what the user is intended to use, instantiates two copies of
+// SingleBlurPassEffect behind the scenes).
+//
+// The recommended number of taps is the default (16). Fewer will be faster
+// but uglier; a tradeoff that might be worth it as part of more complicated
+// effects. This can be set only before finalization, and must be an
+// even number.
+
+#include <epoxy/gl.h>
+#include <assert.h>
+#include <stddef.h>
+#include <string>