24 .src = m_shader->uniformLocation(
"src"),
25 .sdrBrightness = m_shader->uniformLocation(
"sdrBrightness"),
26 .toXYZD50 = m_shader->uniformLocation(
"toXYZD50"),
27 .bsize = m_shader->uniformLocation(
"Bsize"),
28 .bsampler = m_shader->uniformLocation(
"Bsampler"),
29 .matrix2 = m_shader->uniformLocation(
"matrix2"),
30 .msize = m_shader->uniformLocation(
"Msize"),
31 .msampler = m_shader->uniformLocation(
"Msampler"),
32 .csize = m_shader->uniformLocation(
"Csize"),
33 .csampler = m_shader->uniformLocation(
"Csampler"),
34 .asize = m_shader->uniformLocation(
"Asize"),
35 .asampler = m_shader->uniformLocation(
"Asampler"),
148void IccShader::setUniforms(
const std::shared_ptr<IccProfile> &profile,
float sdrBrightness,
const QVector3D &channelFactors)
153 QMatrix4x4 nightColor;
154 nightColor(0, 0) = channelFactors.x();
155 nightColor(1, 1) = channelFactors.y();
156 nightColor(2, 2) = channelFactors.z();
157 m_shader->setUniform(m_locations.toXYZD50, m_toXYZD50 * nightColor);
158 m_shader->setUniform(m_locations.sdrBrightness, sdrBrightness);
160 glActiveTexture(GL_TEXTURE1);
162 m_shader->setUniform(m_locations.bsize,
int(m_B->size()));
163 m_shader->setUniform(m_locations.bsampler, 1);
166 m_shader->setUniform(m_locations.bsize, 0);
167 m_shader->setUniform(m_locations.bsampler, 1);
168 glBindTexture(GL_TEXTURE_1D, 0);
171 m_shader->setUniform(m_locations.matrix2, m_matrix2);
173 glActiveTexture(GL_TEXTURE2);
175 m_shader->setUniform(m_locations.msize,
int(m_M->size()));
176 m_shader->setUniform(m_locations.msampler, 2);
179 m_shader->setUniform(m_locations.msize, 0);
180 m_shader->setUniform(m_locations.msampler, 1);
181 glBindTexture(GL_TEXTURE_1D, 0);
184 glActiveTexture(GL_TEXTURE3);
186 m_shader->setUniform(m_locations.csize, m_C->xSize(), m_C->ySize(), m_C->zSize());
187 m_shader->setUniform(m_locations.csampler, 3);
190 m_shader->setUniform(m_locations.csize, 0, 0, 0);
191 m_shader->setUniform(m_locations.csampler, 3);
192 glBindTexture(GL_TEXTURE_3D, 0);
195 glActiveTexture(GL_TEXTURE4);
197 m_shader->setUniform(m_locations.asize,
int(m_A->size()));
198 m_shader->setUniform(m_locations.asampler, 4);
201 m_shader->setUniform(m_locations.asize, 0);
202 m_shader->setUniform(m_locations.asampler, 4);
203 glBindTexture(GL_TEXTURE_1D, 0);
206 glActiveTexture(GL_TEXTURE0);
207 m_shader->setUniform(m_locations.src, 0);