#include <math.h>
#include <assert.h>
+#include <GL/glew.h>
#include <Eigen/LU>
#include "white_balance_effect.h"
#include "util.h"
-#include "opengl.h"
#include "d65.h"
using namespace Eigen;
}
// Assuming sRGB primaries, from Wikipedia.
-double rgb_to_xyz_matrix[9] = {
+const double rgb_to_xyz_matrix[9] = {
0.4124, 0.2126, 0.0193,
0.3576, 0.7152, 0.1192,
0.1805, 0.0722, 0.9505,
* (Hunt-Pointer-Estevez, or HPE) for the actual perception post-adaptation.
*
* CIECAM02 chromatic adaptation, while related to the transformation we want,
- * is a more complex phenomenon that depends on factors like the total luminance
- * (in cd/m²) of the illuminant, and can no longer be implemented by just scaling
- * each component in LMS space linearly. The simpler way out is to use the HPE matrix,
+ * is a more complex phenomenon that depends on factors like the viewing conditions
+ * (e.g. amount of surrounding light), and can no longer be implemented by just scaling
+ * each component in LMS space. The simpler way out is to use the HPE matrix,
* which is intended to be close to the actual cone response; this results in
* the “von Kries transformation” when we couple it with normalization in LMS space.
*