X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=effect.h;h=2f0172a9bc2c983222653aef5620c2dd3e626ea9;hp=af2f516593c4bea25404a10ec1c76049006713da;hb=75c27c449aabb27ed0b028b57b20d70005a6e447;hpb=2ced784c6599cb0b21427481ee17f4c8f6afdada diff --git a/effect.h b/effect.h index af2f516..2f0172a 100644 --- 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);