X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=white_balance_effect.cpp;h=07c95cac4ca473b52dda9f9d80ddbf9fda918a52;hp=ef60e7a92174f0627703128131bf087dcba263db;hb=f216b7bef5a968c89f6fc78e83cc26a91e504a8a;hpb=9651a4eaae012cdc49c1aa38197861e04f62e91e diff --git a/white_balance_effect.cpp b/white_balance_effect.cpp index ef60e7a..07c95ca 100644 --- a/white_balance_effect.cpp +++ b/white_balance_effect.cpp @@ -1,6 +1,6 @@ #include #include -#include +#include #include #include "colorspace_conversion_effect.h" @@ -13,6 +13,8 @@ using namespace Eigen; using namespace std; +namespace movit { + namespace { // Temperature is in Kelvin. Formula from http://en.wikipedia.org/wiki/Planckian_locus#Approximation . @@ -103,6 +105,7 @@ WhiteBalanceEffect::WhiteBalanceEffect() { register_vec3("neutral_color", (float *)&neutral_color); register_float("output_color_temperature", &output_color_temperature); + register_uniform_mat3("correction_matrix", &uniform_correction_matrix); } string WhiteBalanceEffect::output_fragment_shader() @@ -140,11 +143,12 @@ void WhiteBalanceEffect::set_gl_state(GLuint glsl_program_num, const string &pre * Note that since we postmultiply our vectors, the order of the matrices * has to be the opposite of the execution order. */ - Matrix3d corr_matrix = + uniform_correction_matrix = rgb_to_xyz_matrix.inverse() * Map(xyz_to_lms_matrix).inverse() * lms_scale.asDiagonal() * Map(xyz_to_lms_matrix) * rgb_to_xyz_matrix; - set_uniform_mat3(glsl_program_num, prefix, "correction_matrix", corr_matrix); } + +} // namespace movit