From a7a6f26bc4ed48446a0d219579d072dd2bf3ca82 Mon Sep 17 00:00:00 2001 From: hailindai Date: Sat, 11 Mar 2017 09:02:57 +0800 Subject: [PATCH] fix some warn --- .../com/dreamguard/sample/MainActivity.java | 3 +- .../gpuvideo/filter/base/GPUVideoFilter.java | 7 ++- .../filter/base/GPUVideoFilter2D.java | 58 ++++++++++++------- .../filter/test/GPUGroupFilterTest.java | 6 -- .../texture2d/GPUVideoBrightnessFilter2D.java | 3 +- .../GPUVideoColorInvertFilter2D.java | 3 +- .../GPUVideoColorMatrixFilter2D.java | 3 +- .../texture2d/GPUVideoContrastFilter2D.java | 3 +- .../texture2d/GPUVideoGammaFilter2D.java | 3 +- .../texture2d/GPUVideoGrayscaleFilter2D.java | 3 +- .../filter/texture2d/GPUVideoHueFilter2D.java | 3 +- .../texture2d/GPUVideoPixelationFilter2D.java | 3 +- .../texture2d/GPUVideoSharpenFilter2D.java | 3 +- 13 files changed, 60 insertions(+), 41 deletions(-) diff --git a/app/src/main/java/com/dreamguard/sample/MainActivity.java b/app/src/main/java/com/dreamguard/sample/MainActivity.java index 390d7bb..018f479 100644 --- a/app/src/main/java/com/dreamguard/sample/MainActivity.java +++ b/app/src/main/java/com/dreamguard/sample/MainActivity.java @@ -9,6 +9,7 @@ import com.dreamguard.gpuvideo.GPUVideoView; import com.dreamguard.gpuvideo.IVideoSurface; +import com.dreamguard.gpuvideo.filter.test.GPUGroupFilterTest; import com.dreamguard.gpuvideo.filter.textureoes.GPUVideoContrastFilter; import com.dreamguard.gpuvideo.filter.textureoes.GPUVideoGrayscaleFilter; import com.dreamguard.gpuvideo.filter.textureoes.GPUVideoSepiaFilter; @@ -46,7 +47,7 @@ public void onCreated(SurfaceTexture surfaceTexture) { // filter.setPixel(1000f); // videoView.setFilter(filter); // videoView.setFilter(new GPUVideoContrastFilter()); - videoView.setFilter(new GPUVideoSharpenFilter()); + videoView.setFilter(new GPUGroupFilterTest()); } public void initPlayer(SurfaceTexture surfaceTexture){ diff --git a/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/base/GPUVideoFilter.java b/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/base/GPUVideoFilter.java index e88bfa5..89824a3 100644 --- a/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/base/GPUVideoFilter.java +++ b/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/base/GPUVideoFilter.java @@ -19,6 +19,7 @@ import android.content.Context; import android.content.res.AssetManager; import android.graphics.PointF; +import android.opengl.GLES11Ext; import android.opengl.GLES20; import com.dreamguard.gpuvideo.OpenGlUtils; @@ -59,7 +60,7 @@ public class GPUVideoFilter { protected int mGLAttribTextureCoordinate; protected int mOutputWidth; protected int mOutputHeight; - private boolean mIsInitialized; + protected boolean mIsInitialized; public GPUVideoFilter() { this(NO_FILTER_VERTEX_SHADER, NO_FILTER_FRAGMENT_SHADER); @@ -120,14 +121,14 @@ public void onDraw(final int textureId, final FloatBuffer cubeBuffer, GLES20.glEnableVertexAttribArray(mGLAttribTextureCoordinate); if (textureId != OpenGlUtils.NO_TEXTURE) { GLES20.glActiveTexture(GLES20.GL_TEXTURE0); - GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, textureId); + GLES20.glBindTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, textureId); GLES20.glUniform1i(mGLUniformTexture, 0); } onDrawArraysPre(); GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4); GLES20.glDisableVertexAttribArray(mGLAttribPosition); GLES20.glDisableVertexAttribArray(mGLAttribTextureCoordinate); - GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0); + GLES20.glBindTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, 0); } diff --git a/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/base/GPUVideoFilter2D.java b/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/base/GPUVideoFilter2D.java index e2c29f2..7ed768d 100644 --- a/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/base/GPUVideoFilter2D.java +++ b/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/base/GPUVideoFilter2D.java @@ -1,34 +1,17 @@ -/* - * Copyright (C) 2012 CyberAgent - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - package com.dreamguard.gpuvideo.filter.base; -import android.content.Context; -import android.content.res.AssetManager; -import android.graphics.PointF; import android.opengl.GLES20; import com.dreamguard.gpuvideo.OpenGlUtils; -import com.dreamguard.gpuvideo.filter.base.GPUVideoFilter; -import java.io.InputStream; import java.nio.FloatBuffer; import java.util.LinkedList; -public class GPUVideoFilter2D extends GPUVideoFilter{ +/** + * Created by Administrator on 2017/3/11. + */ + +public class GPUVideoFilter2D extends GPUVideoFilter { public static final String FILTER_FRAGMENT_SHADER_2D = "" + "#extension GL_OES_EGL_image_external : require\n" + "varying highp vec2 textureCoordinate;\n" + @@ -45,4 +28,35 @@ public class GPUVideoFilter2D extends GPUVideoFilter{ public GPUVideoFilter2D() { super(NO_FILTER_VERTEX_SHADER, FILTER_FRAGMENT_SHADER_2D); } + + public GPUVideoFilter2D(final String vertexShader, final String fragmentShader) { + super(vertexShader, fragmentShader); + } + + public void onDraw(final int textureId, final FloatBuffer cubeBuffer, + final FloatBuffer textureBuffer) { + GLES20.glUseProgram(mGLProgId); + runPendingOnDrawTasks(); + if (!mIsInitialized) { + return; + } + + cubeBuffer.position(0); + GLES20.glVertexAttribPointer(mGLAttribPosition, 2, GLES20.GL_FLOAT, false, 0, cubeBuffer); + GLES20.glEnableVertexAttribArray(mGLAttribPosition); + textureBuffer.position(0); + GLES20.glVertexAttribPointer(mGLAttribTextureCoordinate, 2, GLES20.GL_FLOAT, false, 0, + textureBuffer); + GLES20.glEnableVertexAttribArray(mGLAttribTextureCoordinate); + if (textureId != OpenGlUtils.NO_TEXTURE) { + GLES20.glActiveTexture(GLES20.GL_TEXTURE0); + GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, textureId); + GLES20.glUniform1i(mGLUniformTexture, 0); + } + onDrawArraysPre(); + GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4); + GLES20.glDisableVertexAttribArray(mGLAttribPosition); + GLES20.glDisableVertexAttribArray(mGLAttribTextureCoordinate); + GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0); + } } diff --git a/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/test/GPUGroupFilterTest.java b/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/test/GPUGroupFilterTest.java index e85adef..1ebb5c7 100644 --- a/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/test/GPUGroupFilterTest.java +++ b/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/test/GPUGroupFilterTest.java @@ -1,13 +1,7 @@ package com.dreamguard.gpuvideo.filter.test; import com.dreamguard.gpuvideo.filter.base.GPUVideoFilter; -import com.dreamguard.gpuvideo.filter.base.GPUVideoFilter2D; -import com.dreamguard.gpuvideo.filter.texture2d.GPUVideoColorInvertFilter2D; import com.dreamguard.gpuvideo.filter.texture2d.GPUVideoContrastFilter2D; -import com.dreamguard.gpuvideo.filter.texture2d.GPUVideoGammaFilter2D; -import com.dreamguard.gpuvideo.filter.texture2d.GPUVideoPixelationFilter2D; -import com.dreamguard.gpuvideo.filter.textureoes.GPUVideoColorInvertFilter; -import com.dreamguard.gpuvideo.filter.textureoes.GPUVideoGammaFilter; import com.dreamguard.gpuvideo.filter.base.GPUVideoFilterGroup; /** diff --git a/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoBrightnessFilter2D.java b/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoBrightnessFilter2D.java index 6d12509..1e8f4fd 100644 --- a/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoBrightnessFilter2D.java +++ b/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoBrightnessFilter2D.java @@ -19,11 +19,12 @@ import android.opengl.GLES20; import com.dreamguard.gpuvideo.filter.base.GPUVideoFilter; +import com.dreamguard.gpuvideo.filter.base.GPUVideoFilter2D; /** * brightness value ranges from -1.0 to 1.0, with 0.0 as the normal level */ -public class GPUVideoBrightnessFilter2D extends GPUVideoFilter { +public class GPUVideoBrightnessFilter2D extends GPUVideoFilter2D { public static final String BRIGHTNESS_FRAGMENT_SHADER = "" + "varying highp vec2 textureCoordinate;\n" + " \n" + diff --git a/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoColorInvertFilter2D.java b/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoColorInvertFilter2D.java index f7eb88f..a9e63f3 100644 --- a/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoColorInvertFilter2D.java +++ b/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoColorInvertFilter2D.java @@ -17,11 +17,12 @@ package com.dreamguard.gpuvideo.filter.texture2d; import com.dreamguard.gpuvideo.filter.base.GPUVideoFilter; +import com.dreamguard.gpuvideo.filter.base.GPUVideoFilter2D; /** * Invert all the colors in the image. */ -public class GPUVideoColorInvertFilter2D extends GPUVideoFilter { +public class GPUVideoColorInvertFilter2D extends GPUVideoFilter2D { public static final String COLOR_INVERT_FRAGMENT_SHADER = "" + "varying highp vec2 textureCoordinate;\n" + "\n" + diff --git a/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoColorMatrixFilter2D.java b/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoColorMatrixFilter2D.java index b84f361..cafc0d4 100644 --- a/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoColorMatrixFilter2D.java +++ b/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoColorMatrixFilter2D.java @@ -19,11 +19,12 @@ import android.opengl.GLES20; import com.dreamguard.gpuvideo.filter.base.GPUVideoFilter; +import com.dreamguard.gpuvideo.filter.base.GPUVideoFilter2D; /** * Applies a ColorMatrix to the image. */ -public class GPUVideoColorMatrixFilter2D extends GPUVideoFilter { +public class GPUVideoColorMatrixFilter2D extends GPUVideoFilter2D { public static final String COLOR_MATRIX_FRAGMENT_SHADER = "" + "varying highp vec2 textureCoordinate;\n" + "\n" + diff --git a/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoContrastFilter2D.java b/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoContrastFilter2D.java index 4bc90a9..5b9adca 100644 --- a/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoContrastFilter2D.java +++ b/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoContrastFilter2D.java @@ -19,13 +19,14 @@ import android.opengl.GLES20; import com.dreamguard.gpuvideo.filter.base.GPUVideoFilter; +import com.dreamguard.gpuvideo.filter.base.GPUVideoFilter2D; /** * Changes the contrast of the image.
*
* contrast value ranges from 0.0 to 4.0, with 1.0 as the normal level */ -public class GPUVideoContrastFilter2D extends GPUVideoFilter { +public class GPUVideoContrastFilter2D extends GPUVideoFilter2D { public static final String CONTRAST_FRAGMENT_SHADER = "" + "#extension GL_OES_EGL_image_external : require\n" + "varying highp vec2 textureCoordinate;\n" + diff --git a/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoGammaFilter2D.java b/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoGammaFilter2D.java index c59ac2c..5017259 100644 --- a/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoGammaFilter2D.java +++ b/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoGammaFilter2D.java @@ -19,11 +19,12 @@ import android.opengl.GLES20; import com.dreamguard.gpuvideo.filter.base.GPUVideoFilter; +import com.dreamguard.gpuvideo.filter.base.GPUVideoFilter2D; /** * gamma value ranges from 0.0 to 3.0, with 1.0 as the normal level */ -public class GPUVideoGammaFilter2D extends GPUVideoFilter { +public class GPUVideoGammaFilter2D extends GPUVideoFilter2D { public static final String GAMMA_FRAGMENT_SHADER = "" + "varying highp vec2 textureCoordinate;\n" + " \n" + diff --git a/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoGrayscaleFilter2D.java b/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoGrayscaleFilter2D.java index 20e8866..ec8fad6 100644 --- a/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoGrayscaleFilter2D.java +++ b/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoGrayscaleFilter2D.java @@ -17,11 +17,12 @@ package com.dreamguard.gpuvideo.filter.texture2d; import com.dreamguard.gpuvideo.filter.base.GPUVideoFilter; +import com.dreamguard.gpuvideo.filter.base.GPUVideoFilter2D; /** * Applies a grayscale effect to the image. */ -public class GPUVideoGrayscaleFilter2D extends GPUVideoFilter { +public class GPUVideoGrayscaleFilter2D extends GPUVideoFilter2D { public static final String GRAYSCALE_FRAGMENT_SHADER = "" + "precision highp float;\n" + "\n" + diff --git a/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoHueFilter2D.java b/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoHueFilter2D.java index 9664b24..9ce43fe 100644 --- a/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoHueFilter2D.java +++ b/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoHueFilter2D.java @@ -19,8 +19,9 @@ import android.opengl.GLES20; import com.dreamguard.gpuvideo.filter.base.GPUVideoFilter; +import com.dreamguard.gpuvideo.filter.base.GPUVideoFilter2D; -public class GPUVideoHueFilter2D extends GPUVideoFilter { +public class GPUVideoHueFilter2D extends GPUVideoFilter2D { public static final String HUE_FRAGMENT_SHADER = "" + "precision highp float;\n" + "varying highp vec2 textureCoordinate;\n" + diff --git a/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoPixelationFilter2D.java b/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoPixelationFilter2D.java index 13b46a5..8353e5c 100644 --- a/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoPixelationFilter2D.java +++ b/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoPixelationFilter2D.java @@ -19,11 +19,12 @@ import android.opengl.GLES20; import com.dreamguard.gpuvideo.filter.base.GPUVideoFilter; +import com.dreamguard.gpuvideo.filter.base.GPUVideoFilter2D; /** * Applies a pixelation effect to the image. */ -public class GPUVideoPixelationFilter2D extends GPUVideoFilter { +public class GPUVideoPixelationFilter2D extends GPUVideoFilter2D { public static final String PIXELATION_FRAGMENT_SHADER = "" + "precision highp float;\n" + diff --git a/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoSharpenFilter2D.java b/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoSharpenFilter2D.java index f7171bc..1115d0f 100644 --- a/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoSharpenFilter2D.java +++ b/gpuvideo/src/main/java/com/dreamguard/gpuvideo/filter/texture2d/GPUVideoSharpenFilter2D.java @@ -19,13 +19,14 @@ import android.opengl.GLES20; import com.dreamguard.gpuvideo.filter.base.GPUVideoFilter; +import com.dreamguard.gpuvideo.filter.base.GPUVideoFilter2D; /** * Sharpens the picture.
*
* sharpness: from -4.0 to 4.0, with 0.0 as the normal level */ -public class GPUVideoSharpenFilter2D extends GPUVideoFilter { +public class GPUVideoSharpenFilter2D extends GPUVideoFilter2D { public static final String SHARPEN_VERTEX_SHADER = "" + "attribute vec4 position;\n" + "attribute vec4 inputTextureCoordinate;\n" +