X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=effect.h;h=b545f857c378e9c993a9cb608c35aaf8b036db04;hp=af2f516593c4bea25404a10ec1c76049006713da;hb=a0ced951a3ad27223d71caae71eeeb5c62c6ce77;hpb=2ced784c6599cb0b21427481ee17f4c8f6afdada diff --git a/effect.h b/effect.h index af2f516..b545f85 100644 --- a/effect.h +++ b/effect.h @@ -25,17 +25,19 @@ 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); +void set_uniform_vec4_array(GLuint glsl_program_num, const std::string &prefix, const std::string &key, const float *values, size_t num_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);