diff --git a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/filter/BaseFilterTest.java b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/filter/BaseFilterTest.java index e67367c4..ff0474f0 100644 --- a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/filter/BaseFilterTest.java +++ b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/filter/BaseFilterTest.java @@ -104,9 +104,9 @@ public class BaseFilterTest extends BaseEglTest { filter = spy(new TestFilter()); float[] matrix = new float[16]; filter.draw(0L, matrix); - verify(filter, never()).onPreDraw(matrix); - verify(filter, never()).onDraw(); - verify(filter, never()).onPostDraw(); + verify(filter, never()).onPreDraw(0L, matrix); + verify(filter, never()).onDraw(0L); + verify(filter, never()).onPostDraw(0L); } @Test @@ -118,9 +118,9 @@ public class BaseFilterTest extends BaseEglTest { float[] matrix = new float[16]; viewport.drawFrame(0L, texture, matrix); - verify(filter, times(1)).onPreDraw(matrix); - verify(filter, times(1)).onDraw(); - verify(filter, times(1)).onPostDraw(); + verify(filter, times(1)).onPreDraw(0L, matrix); + verify(filter, times(1)).onDraw(0L); + verify(filter, times(1)).onPostDraw(0L); viewport.release(); } diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filter/BaseFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filter/BaseFilter.java index b72b129a..ed109375 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filter/BaseFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filter/BaseFilter.java @@ -101,7 +101,7 @@ public abstract class BaseFilter implements Filter { }); private int vertexModelViewProjectionMatrixLocation = -1; - private int vertexTranformMatrixLocation = -1; + private int vertexTransformMatrixLocation = -1; private int vertexPositionLocation = -1; private int vertexTextureCoordinateLocation = -1; @VisibleForTesting int programHandle = -1; @@ -143,8 +143,8 @@ public abstract class BaseFilter implements Filter { GlUtils.checkLocation(vertexTextureCoordinateLocation, vertexTextureCoordinateName); vertexModelViewProjectionMatrixLocation = GLES20.glGetUniformLocation(programHandle, vertexModelViewProjectionMatrixName); GlUtils.checkLocation(vertexModelViewProjectionMatrixLocation, vertexModelViewProjectionMatrixName); - vertexTranformMatrixLocation = GLES20.glGetUniformLocation(programHandle, vertexTransformMatrixName); - GlUtils.checkLocation(vertexTranformMatrixLocation, vertexTransformMatrixName); + vertexTransformMatrixLocation = GLES20.glGetUniformLocation(programHandle, vertexTransformMatrixName); + GlUtils.checkLocation(vertexTransformMatrixLocation, vertexTransformMatrixName); } @Override @@ -153,7 +153,7 @@ public abstract class BaseFilter implements Filter { vertexPositionLocation = -1; vertexTextureCoordinateLocation = -1; vertexModelViewProjectionMatrixLocation = -1; - vertexTranformMatrixLocation = -1; + vertexTransformMatrixLocation = -1; } @NonNull @@ -173,21 +173,21 @@ public abstract class BaseFilter implements Filter { LOG.w("Filter.draw() called after destroying the filter. " + "This can happen rarely because of threading."); } else { - onPreDraw(transformMatrix); - onDraw(); - onPostDraw(); + onPreDraw(timestampUs, transformMatrix); + onDraw(timestampUs); + onPostDraw(timestampUs); } } - protected void onPreDraw(float[] transformMatrix) { + protected void onPreDraw(long timestampUs, float[] transformMatrix) { // Copy the model / view / projection matrix over. GLES20.glUniformMatrix4fv(vertexModelViewProjectionMatrixLocation, 1, false, GlUtils.IDENTITY_MATRIX, 0); GlUtils.checkError("glUniformMatrix4fv"); // Copy the texture transformation matrix over. - GLES20.glUniformMatrix4fv(vertexTranformMatrixLocation, 1, false, - transformMatrix, 0); + GLES20.glUniformMatrix4fv(vertexTransformMatrixLocation, 1, + false, transformMatrix, 0); GlUtils.checkError("glUniformMatrix4fv"); // Enable the "aPosition" vertex attribute. @@ -208,13 +208,13 @@ public abstract class BaseFilter implements Filter { } @SuppressWarnings("WeakerAccess") - protected void onDraw() { + protected void onDraw(long timestampUs) { GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4); GlUtils.checkError("glDrawArrays"); } @SuppressWarnings("WeakerAccess") - protected void onPostDraw() { + protected void onPostDraw(long timestampUs) { GLES20.glDisableVertexAttribArray(vertexPositionLocation); GLES20.glDisableVertexAttribArray(vertexTextureCoordinateLocation); } diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/AutoFixFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/AutoFixFilter.java index b85cd828..a2ee78da 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/AutoFixFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/AutoFixFilter.java @@ -116,8 +116,8 @@ public class AutoFixFilter extends BaseFilter implements OneParameterFilter { } @Override - protected void onPreDraw(float[] transformMatrix) { - super.onPreDraw(transformMatrix); + protected void onPreDraw(long timestampUs, float[] transformMatrix) { + super.onPreDraw(timestampUs, transformMatrix); GLES20.glUniform1f(scaleLocation, scale); GlUtils.checkError("glUniform1f"); } diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/BrightnessFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/BrightnessFilter.java index dfb60e99..1cd6d2e6 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/BrightnessFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/BrightnessFilter.java @@ -86,8 +86,8 @@ public class BrightnessFilter extends BaseFilter implements OneParameterFilter { } @Override - protected void onPreDraw(float[] transformMatrix) { - super.onPreDraw(transformMatrix); + protected void onPreDraw(long timestampUs, float[] transformMatrix) { + super.onPreDraw(timestampUs, transformMatrix); GLES20.glUniform1f(brightnessLocation, brightness); GlUtils.checkError("glUniform1f"); } diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/ContrastFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/ContrastFilter.java index ad8ead97..ec790e96 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/ContrastFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/ContrastFilter.java @@ -88,8 +88,8 @@ public class ContrastFilter extends BaseFilter implements OneParameterFilter { } @Override - protected void onPreDraw(float[] transformMatrix) { - super.onPreDraw(transformMatrix); + protected void onPreDraw(long timestampUs, float[] transformMatrix) { + super.onPreDraw(timestampUs, transformMatrix); GLES20.glUniform1f(contrastLocation, contrast); GlUtils.checkError("glUniform1f"); } diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/DocumentaryFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/DocumentaryFilter.java index 8f48ae8c..a4f1bfc5 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/DocumentaryFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/DocumentaryFilter.java @@ -93,8 +93,8 @@ public class DocumentaryFilter extends BaseFilter { } @Override - protected void onPreDraw(float[] transformMatrix) { - super.onPreDraw(transformMatrix); + protected void onPreDraw(long timestampUs, float[] transformMatrix) { + super.onPreDraw(timestampUs, transformMatrix); float[] scale = new float[2]; if (mWidth > mHeight) { scale[0] = 1f; diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/DuotoneFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/DuotoneFilter.java index 645d5c5e..ee534f23 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/DuotoneFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/DuotoneFilter.java @@ -137,8 +137,8 @@ public class DuotoneFilter extends BaseFilter implements TwoParameterFilter { } @Override - protected void onPreDraw(float[] transformMatrix) { - super.onPreDraw(transformMatrix); + protected void onPreDraw(long timestampUs, float[] transformMatrix) { + super.onPreDraw(timestampUs, transformMatrix); float[] first = new float[]{ Color.red(mFirstColor) / 255f, Color.green(mFirstColor) / 255f, diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/FillLightFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/FillLightFilter.java index 3d3f8b00..399bab45 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/FillLightFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/FillLightFilter.java @@ -95,8 +95,8 @@ public class FillLightFilter extends BaseFilter implements OneParameterFilter { } @Override - protected void onPreDraw(float[] transformMatrix) { - super.onPreDraw(transformMatrix); + protected void onPreDraw(long timestampUs, float[] transformMatrix) { + super.onPreDraw(timestampUs, transformMatrix); float amount = 1.0f - strength; float multiplier = 1.0f / (amount * 0.7f + 0.3f); GLES20.glUniform1f(multiplierLocation, multiplier); diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/GammaFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/GammaFilter.java index b7ba5c39..74bf888a 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/GammaFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/GammaFilter.java @@ -82,8 +82,8 @@ public class GammaFilter extends BaseFilter implements OneParameterFilter { } @Override - protected void onPreDraw(float[] transformMatrix) { - super.onPreDraw(transformMatrix); + protected void onPreDraw(long timestampUs, float[] transformMatrix) { + super.onPreDraw(timestampUs, transformMatrix); GLES20.glUniform1f(gammaLocation, gamma); GlUtils.checkError("glUniform1f"); } diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/GrainFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/GrainFilter.java index ac94ba8a..38704dba 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/GrainFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/GrainFilter.java @@ -132,8 +132,8 @@ public class GrainFilter extends BaseFilter implements OneParameterFilter { } @Override - protected void onPreDraw(float[] transformMatrix) { - super.onPreDraw(transformMatrix); + protected void onPreDraw(long timestampUs, float[] transformMatrix) { + super.onPreDraw(timestampUs, transformMatrix); GLES20.glUniform1f(strengthLocation, strength); GlUtils.checkError("glUniform1f"); GLES20.glUniform1f(stepXLocation, 0.5f / width); diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/HueFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/HueFilter.java index 5dd80d81..0d790a25 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/HueFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/HueFilter.java @@ -96,8 +96,8 @@ public class HueFilter extends BaseFilter implements OneParameterFilter { } @Override - protected void onPreDraw(float[] transformMatrix) { - super.onPreDraw(transformMatrix); + protected void onPreDraw(long timestampUs, float[] transformMatrix) { + super.onPreDraw(timestampUs, transformMatrix); // map it on 360 degree circle float shaderHue = ((hue - 45) / 45f + 0.5f) * -1; GLES20.glUniform1f(hueLocation, shaderHue); diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/LomoishFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/LomoishFilter.java index 48545ee9..87196abc 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/LomoishFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/LomoishFilter.java @@ -7,7 +7,6 @@ import androidx.annotation.NonNull; import com.otaliastudios.cameraview.filter.BaseFilter; import com.otaliastudios.cameraview.internal.GlUtils; -import java.util.Date; import java.util.Random; /** @@ -142,8 +141,8 @@ public class LomoishFilter extends BaseFilter { } @Override - protected void onPreDraw(float[] transformMatrix) { - super.onPreDraw(transformMatrix); + protected void onPreDraw(long timestampUs, float[] transformMatrix) { + super.onPreDraw(timestampUs, transformMatrix); float[] scale = new float[2]; if (width > height) { scale[0] = 1f; diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/SaturationFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/SaturationFilter.java index 26e7acfb..da84d417 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/SaturationFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/SaturationFilter.java @@ -103,8 +103,8 @@ public class SaturationFilter extends BaseFilter implements OneParameterFilter { } @Override - protected void onPreDraw(float[] transformMatrix) { - super.onPreDraw(transformMatrix); + protected void onPreDraw(long timestampUs, float[] transformMatrix) { + super.onPreDraw(timestampUs, transformMatrix); if (scale > 0.0f) { GLES20.glUniform1f(scaleLocation, 0F); GlUtils.checkError("glUniform1f"); diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/SharpnessFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/SharpnessFilter.java index 4fd24e53..88b2ae76 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/SharpnessFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/SharpnessFilter.java @@ -116,8 +116,8 @@ public class SharpnessFilter extends BaseFilter implements OneParameterFilter { } @Override - protected void onPreDraw(float[] transformMatrix) { - super.onPreDraw(transformMatrix); + protected void onPreDraw(long timestampUs, float[] transformMatrix) { + super.onPreDraw(timestampUs, transformMatrix); GLES20.glUniform1f(scaleLocation, scale); GlUtils.checkError("glUniform1f"); GLES20.glUniform1f(stepSizeXLocation, 1.0F / width); diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/TemperatureFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/TemperatureFilter.java index 0f6f081a..b6137e85 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/TemperatureFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/TemperatureFilter.java @@ -94,8 +94,8 @@ public class TemperatureFilter extends BaseFilter implements OneParameterFilter } @Override - protected void onPreDraw(float[] transformMatrix) { - super.onPreDraw(transformMatrix); + protected void onPreDraw(long timestampUs, float[] transformMatrix) { + super.onPreDraw(timestampUs, transformMatrix); GLES20.glUniform1f(scaleLocation, scale); GlUtils.checkError("glUniform1f"); } diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/TintFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/TintFilter.java index 97cb0eac..51a00ecc 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/TintFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/TintFilter.java @@ -91,8 +91,8 @@ public class TintFilter extends BaseFilter implements OneParameterFilter { } @Override - protected void onPreDraw(float[] transformMatrix) { - super.onPreDraw(transformMatrix); + protected void onPreDraw(long timestampUs, float[] transformMatrix) { + super.onPreDraw(timestampUs, transformMatrix); float[] channels = new float[]{ Color.red(tint) / 255f, Color.green(tint) / 255f, diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/VignetteFilter.java b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/VignetteFilter.java index 6db68bc2..6749e041 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/filters/VignetteFilter.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/filters/VignetteFilter.java @@ -144,8 +144,8 @@ public class VignetteFilter extends BaseFilter implements TwoParameterFilter { } @Override - protected void onPreDraw(float[] transformMatrix) { - super.onPreDraw(transformMatrix); + protected void onPreDraw(long timestampUs, float[] transformMatrix) { + super.onPreDraw(timestampUs, transformMatrix); float[] scale = new float[2]; if (mWidth > mHeight) { scale[0] = 1f;