Bind contrastFactor in constructor instead of drawFrame method.

PiperOrigin-RevId: 469438747
This commit is contained in:
leonwind 2022-08-23 13:16:17 +00:00 committed by Marc Baechinger
parent f01896af15
commit 9a1e7fbdf4

View File

@ -31,13 +31,12 @@ import java.io.IOException;
private static final String FRAGMENT_SHADER_PATH = "shaders/fragment_shader_contrast_es2.glsl";
private final GlProgram glProgram;
private final float contrastFactor;
public ContrastProcessor(Context context, Contrast contrastEffect, boolean useHdr)
throws FrameProcessingException {
super(useHdr);
// Use 1.0001f to avoid division by zero issues.
contrastFactor = (1 + contrastEffect.contrast) / (1.0001f - contrastEffect.contrast);
float contrastFactor = (1 + contrastEffect.contrast) / (1.0001f - contrastEffect.contrast);
try {
glProgram = new GlProgram(context, VERTEX_SHADER_PATH, FRAGMENT_SHADER_PATH);
@ -55,6 +54,7 @@ import java.io.IOException;
Matrix.setIdentityM(identityMatrix, /* smOffset= */ 0);
glProgram.setFloatsUniform("uTransformationMatrix", identityMatrix);
glProgram.setFloatsUniform("uTexTransformationMatrix", identityMatrix);
glProgram.setFloatUniform("uContrastFactor", contrastFactor);
}
@Override
@ -67,7 +67,6 @@ import java.io.IOException;
try {
glProgram.use();
glProgram.setSamplerTexIdUniform("uTexSampler", inputTexId, /* texUnitIndex= */ 0);
glProgram.setFloatUniform("uContrastFactor", contrastFactor);
glProgram.bindAttributesAndUniforms();
// The four-vertex triangle strip forms a quad.