X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=effect.h;h=e10fab80759fd2359571fb6ff48d71a56d894aca;hp=ebbb6726104051caaba9b4e58df21279682dc1f3;hb=f85e35e129f2395cb03867feb804e5a4badc594e;hpb=6ec130490868eb8316cb2cdce9fbfd237d25a00e diff --git a/effect.h b/effect.h index ebbb672..e10fab8 100644 --- a/effect.h +++ b/effect.h @@ -138,7 +138,7 @@ public: // Keeps the type of alpha (premultiplied, postmultiplied, blank) // unchanged from input to output. Usually appropriate if you // process all color channels in a linear fashion, do not change - // alpha, and do not produce any new pixels thare have alpha != 1.0. + // alpha, and do not produce any new pixels that have alpha != 1.0. // // Does not make sense for inputs. DONT_CARE_ALPHA_TYPE, @@ -316,11 +316,8 @@ protected: // // Neither of these take ownership of the pointer. - // int is special since GLSL pre-1.30 doesn't have integer uniforms. - // Thus, ints that you register will _not_ be converted to GLSL uniforms. + // These correspond directly to int/float/vec2/vec3/vec4 in GLSL. void register_int(const std::string &key, int *value); - - // These correspond directly to float/vec2/vec3/vec4 in GLSL. void register_float(const std::string &key, float *value); void register_vec2(const std::string &key, float *values); void register_vec3(const std::string &key, float *values); @@ -353,7 +350,9 @@ protected: void register_uniform_vec2(const std::string &key, const float *values); void register_uniform_vec3(const std::string &key, const float *values); void register_uniform_vec4(const std::string &key, const float *values); + void register_uniform_float_array(const std::string &key, const float *values, size_t num_values); void register_uniform_vec2_array(const std::string &key, const float *values, size_t num_values); + void register_uniform_vec3_array(const std::string &key, const float *values, size_t num_values); void register_uniform_vec4_array(const std::string &key, const float *values, size_t num_values); void register_uniform_mat3(const std::string &key, const Eigen::Matrix3d *matrix); @@ -372,7 +371,9 @@ private: std::vector > uniforms_vec2; std::vector > uniforms_vec3; std::vector > uniforms_vec4; + std::vector > uniforms_float_array; std::vector > uniforms_vec2_array; + std::vector > uniforms_vec3_array; std::vector > uniforms_vec4_array; std::vector > uniforms_mat3; friend class EffectChain;