]> git.sesse.net Git - movit/blobdiff - effect.h
Do not send uninitialized memory as a texture.
[movit] / effect.h
index af2f516593c4bea25404a10ec1c76049006713da..2f0172a9bc2c983222653aef5620c2dd3e626ea9 100644 (file)
--- a/effect.h
+++ b/effect.h
@@ -25,17 +25,18 @@ struct RGBTriplet {
 // Convenience functions that deal with prepending the prefix.
 void set_uniform_int(GLuint glsl_program_num, const std::string &prefix, const std::string &key, int value);
 void set_uniform_float(GLuint glsl_program_num, const std::string &prefix, const std::string &key, float value);
+void set_uniform_float_array(GLuint glsl_program_num, const std::string &prefix, const std::string &key, const float *values, size_t num_values);
 void set_uniform_vec2(GLuint glsl_program_num, const std::string &prefix, const std::string &key, const float *values);
 void set_uniform_vec3(GLuint glsl_program_num, const std::string &prefix, const std::string &key, const float *values);
 
 class Effect {
 public: 
-       virtual bool needs_linear_light() { return true; }
-       virtual bool needs_srgb_primaries() { return true; }
-       virtual bool needs_many_samples() { return false; }
-       virtual bool needs_mipmaps() { return false; }
+       virtual bool needs_linear_light() const { return true; }
+       virtual bool needs_srgb_primaries() const { return true; }
+       virtual bool needs_many_samples() const { return false; }
+       virtual bool needs_mipmaps() const { return false; }
 
-       virtual std::string output_convenience_uniforms();
+       virtual std::string output_convenience_uniforms() const;
        virtual std::string output_fragment_shader() = 0;
 
        virtual void set_uniforms(GLuint glsl_program_num, const std::string& prefix, unsigned *sampler_num);