diff --git a/Live/src/main/AndroidManifest.xml b/Live/src/main/AndroidManifest.xml
index 5ed1b10..d87ecd1 100644
--- a/Live/src/main/AndroidManifest.xml
+++ b/Live/src/main/AndroidManifest.xml
@@ -7,22 +7,4 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Live/src/main/java/com/frank/live/LiveApplication.java b/Live/src/main/java/com/frank/live/LiveApplication.java
deleted file mode 100644
index 5375976..0000000
--- a/Live/src/main/java/com/frank/live/LiveApplication.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.frank.live;
-
-import android.app.Application;
-
-public class LiveApplication extends Application {
-
- private static LiveApplication context;
-
- @Override
- public void onCreate() {
- super.onCreate();
- context = this;
- }
-
- public static LiveApplication getInstance() {
- return context;
- }
-
-}
diff --git a/Live/src/main/java/com/frank/live/PushActivity.java b/Live/src/main/java/com/frank/live/PushActivity.java
deleted file mode 100644
index 359931d..0000000
--- a/Live/src/main/java/com/frank/live/PushActivity.java
+++ /dev/null
@@ -1,308 +0,0 @@
-
-package com.frank.live;
-
-import android.Manifest;
-import android.annotation.TargetApi;
-import android.app.Activity;
-import android.content.res.Configuration;
-import android.graphics.Bitmap;
-import android.hardware.Camera;
-import android.os.Bundle;
-import android.os.Environment;
-
-import androidx.annotation.NonNull;
-
-import android.util.Log;
-import android.view.Surface;
-import android.view.SurfaceHolder;
-import android.view.SurfaceHolder.Callback;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.view.WindowManager;
-import android.widget.AdapterView;
-import android.widget.AdapterView.OnItemSelectedListener;
-import android.widget.ArrayAdapter;
-import android.widget.Button;
-import android.widget.ImageView;
-import android.widget.Spinner;
-
-import com.frank.live.view.SmartCameraView;
-import com.seu.magicfilter.utils.MagicFilterType;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.nio.ByteBuffer;
-
-public class PushActivity extends Activity implements Callback {
- private static String TAG = PushActivity.class.getSimpleName();
-
- private SmartCameraView mSmartCameraView;
-
-// MagicFilterType magicType = MagicFilterType.SUNRISE;
-
- private Button btnMute;
-
- private boolean isStart = false;
-
- private boolean is_mute = false;
-
- private int mDegree;
-
- private Spinner beautyTypeSelector;
-
- private ImageView img_photo;
-
- private boolean takePhoto;
-
- private final static int videoWidth = 640;
- private final static int videoHeight = 360;
- private final static String[] permissions = new String[]{Manifest.permission.CAMERA};
- private final static int CODE_CAMERA = 1001;
-
- private final static String[] beautySelector = new String[]{
- LiveApplication.getInstance().getString(R.string.effect_beauty),
- LiveApplication.getInstance().getString(R.string.effect_cool),
- LiveApplication.getInstance().getString(R.string.effect_sunrise),
- LiveApplication.getInstance().getString(R.string.effect_sketch),
- LiveApplication.getInstance().getString(R.string.effect_white),
- LiveApplication.getInstance().getString(R.string.effect_romantic),
- LiveApplication.getInstance().getString(R.string.effect_raw)
- };
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
-
- super.onCreate(savedInstanceState);
-
- requestPermissions();
-
- getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
-
- setContentView(R.layout.activity_push);
-
- initView();
- initListener();
- }
-
- @TargetApi(23)
- private void requestPermissions() {
- requestPermissions(permissions, CODE_CAMERA);
- }
-
- private void initView() {
- //SurfaceView
- mSmartCameraView = findViewById(R.id.gl_surfaceview);
- //beauty type
- beautyTypeSelector = findViewById(R.id.beauty_type_selector);
- //mute
- btnMute = findViewById(R.id.button_mute);
- //take photo
- img_photo = findViewById(R.id.img_photo);
- }
-
- private void initListener() {
-
- ArrayAdapter adapterBeautyType = new ArrayAdapter<>(this,
- android.R.layout.simple_spinner_item, beautySelector);
- adapterBeautyType.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
- beautyTypeSelector.setAdapter(adapterBeautyType);
- beautyTypeSelector.setOnItemSelectedListener(new OnItemSelectedListener() {
- @Override
- public void onItemSelected(AdapterView> parent, View view, int position, long id) {
-
- switch (position) {
- case 0:
- switchCameraFilter(MagicFilterType.BEAUTY);
- break;
- case 1:
- switchCameraFilter(MagicFilterType.COOL);
- break;
- case 2:
- switchCameraFilter(MagicFilterType.SUNRISE);
- break;
- case 3:
- switchCameraFilter(MagicFilterType.SKETCH);
- break;
- case 4:
- switchCameraFilter(MagicFilterType.WHITECAT);
- break;
- case 5:
- switchCameraFilter(MagicFilterType.ROMANCE);
- break;
- default:
- switchCameraFilter(MagicFilterType.NONE);
- break;
- }
- }
-
- @Override
- public void onNothingSelected(AdapterView> parent) {
-
- }
- });
-
- btnMute.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View view) {
- is_mute = !is_mute;
-
- if (is_mute) {
- btnMute.setText(getString(R.string.voice));
- } else {
- btnMute.setText(getString(R.string.mute));
- }
- }
- });
-
- //preview data callback(RGBA)
- mSmartCameraView.setPreviewCallback(new SmartCameraView.PreviewCallback() {
- @Override
- public void onGetRgbaFrame(byte[] data, int width, int height) {
-
- if (takePhoto) {
- takePhoto = false;
- Log.i(TAG, "takePhoto...");
- doTakePhoto(data, width, height);
- }
-
- }
- });
-
- img_photo.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View view) {
- takePhoto = true;
- }
- });
-
- }
-
- private void switchCameraFilter(MagicFilterType type) {
- mSmartCameraView.setFilter(type);
- }
-
- /**
- * take photo
- *
- * @param data preview data
- * @param width the width of photo
- * @param height the height of photo
- */
- private void doTakePhoto(byte[] data, int width, int height) {
- Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
- ByteBuffer buffer = ByteBuffer.wrap(data);
- bitmap.copyPixelsFromBuffer(buffer);
-
- Log.i(TAG, "doTakePhoto...");
- FileOutputStream fileOutputStream = null;
- String PATH = Environment.getExternalStorageDirectory().getPath();
- String filePath = PATH + File.separator + "hello" + ".jpg";
- try {
- fileOutputStream = new FileOutputStream(filePath);
- bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fileOutputStream);
- fileOutputStream.flush();
- } catch (IOException e) {
- e.printStackTrace();
- Log.e(TAG, "doTakePhoto error=" + e.toString());
- } finally {
- if (fileOutputStream != null) {
- try {
- fileOutputStream.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- }
-
- @Override
- public void surfaceCreated(SurfaceHolder holder) {
- Log.i(TAG, "surfaceCreated..");
- }
-
- @Override
- public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
- Log.i(TAG, "surfaceChanged..");
- }
-
- @Override
- public void surfaceDestroyed(SurfaceHolder holder) {
- Log.i(TAG, "Surface Destroyed");
- }
-
- public void onConfigurationChanged(Configuration newConfig) {
- try {
- super.onConfigurationChanged(newConfig);
- Log.i(TAG, "onConfigurationChanged, start:" + isStart);
- setCameraDisplayOrientation(this, getCameraId());
- mSmartCameraView.setPreviewOrientation(newConfig.orientation, mDegree);
- } catch (Exception ex) {
- Log.e(TAG, "error=" + ex.toString());
- }
- }
-
- private int getCameraId() {
- return mSmartCameraView.getCameraId();
- }
-
- public void setPreviewResolution(int width, int height) {
- mSmartCameraView.setPreviewResolution(width, height);
- }
-
- private void setCameraDisplayOrientation(Activity activity, int cameraId) {
- Camera.CameraInfo info = new Camera.CameraInfo();
- Camera.getCameraInfo(cameraId, info);
- int rotation = activity.getWindowManager().getDefaultDisplay().getRotation();
- int degrees = 0;
- switch (rotation) {
- case Surface.ROTATION_0:
- degrees = 0;
- break;
- case Surface.ROTATION_90:
- degrees = 90;
- break;
- case Surface.ROTATION_180:
- degrees = 180;
- break;
- case Surface.ROTATION_270:
- degrees = 270;
- break;
- }
- int result;
- if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
- result = (info.orientation + degrees) % 360;
- result = (360 - result) % 360;
- } else {
- // back-facing
- result = (info.orientation - degrees + 360) % 360;
- }
- Log.i(TAG, "curDegree: " + result);
- mDegree = result;
- }
-
- @Override
- protected void onDestroy() {
- if (isStart) {
- isStart = false;
- if (mSmartCameraView != null) {
- mSmartCameraView.stopCamera();
- }
- Log.i(TAG, "onDestroy StopPublish");
- }
- super.onDestroy();
- finish();
- }
-
- @Override
- public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
- super.onRequestPermissionsResult(requestCode, permissions, grantResults);
- if (permissions.length > 0 && grantResults.length > 0) {
- setPreviewResolution(videoWidth, videoHeight);
- if (!mSmartCameraView.startCamera()) {
- Log.e(TAG, "startCamera error...");
- }
- }
- }
-
-}
\ No newline at end of file
diff --git a/Live/src/main/java/com/frank/live/view/SmartCameraView.java b/Live/src/main/java/com/frank/live/view/SmartCameraView.java
deleted file mode 100644
index e36a06a..0000000
--- a/Live/src/main/java/com/frank/live/view/SmartCameraView.java
+++ /dev/null
@@ -1,372 +0,0 @@
-package com.frank.live.view;
-
-import android.content.Context;
-import android.content.res.Configuration;
-import android.graphics.ImageFormat;
-import android.graphics.SurfaceTexture;
-import android.hardware.Camera;
-import android.opengl.GLES20;
-import android.opengl.GLSurfaceView;
-import android.opengl.Matrix;
-import android.util.AttributeSet;
-import android.util.Log;
-
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterFactory;
-import com.seu.magicfilter.utils.MagicFilterType;
-import com.seu.magicfilter.utils.OpenGLUtils;
-
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.nio.IntBuffer;
-import java.util.List;
-import java.util.concurrent.ConcurrentLinkedQueue;
-
-import javax.microedition.khronos.egl.EGLConfig;
-import javax.microedition.khronos.opengles.GL10;
-
-public class SmartCameraView extends GLSurfaceView implements GLSurfaceView.Renderer {
-
- private GPUImageFilter magicFilter;
- private SurfaceTexture surfaceTexture;
- private int mOESTextureId = OpenGLUtils.NO_TEXTURE;
- private int mSurfaceWidth;
- private int mSurfaceHeight;
- private int mPreviewWidth;
- private int mPreviewHeight;
-
- private float mInputAspectRatio;
- private float mOutputAspectRatio;
- private float[] mProjectionMatrix = new float[16];
- private float[] mSurfaceMatrix = new float[16];
- private float[] mTransformMatrix = new float[16];
-
- private Camera mCamera;
- private ByteBuffer mGLPreviewBuffer;
- private int mCamId = -1;
- private int mPreviewRotation = 0;
- private int mPreviewOrientation = Configuration.ORIENTATION_PORTRAIT;
-
- private Thread worker;
- private final Object writeLock = new Object();
- private ConcurrentLinkedQueue mGLIntBufferCache = new ConcurrentLinkedQueue<>();
- private PreviewCallback mPrevCb;
-
- private final String TAG = "SmartCameraView";
-
- public SmartCameraView(Context context) {
- this(context, null);
- }
-
- public SmartCameraView(Context context, AttributeSet attrs) {
- super(context, attrs);
-
- setEGLContextClientVersion(2);
- setRenderer(this);
- setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
- }
-
- @Override
- public void onSurfaceCreated(GL10 gl, EGLConfig config) {
- Log.e(TAG, "Run into onSurfaceCreated...");
-
- GLES20.glDisable(GL10.GL_DITHER);
- GLES20.glClearColor(0, 0, 0, 0);
-
- magicFilter = new GPUImageFilter(MagicFilterType.NONE);
- magicFilter.init(getContext().getApplicationContext());
- magicFilter.onInputSizeChanged(mPreviewWidth, mPreviewHeight);
-
- mOESTextureId = OpenGLUtils.getExternalOESTextureID();
-
- surfaceTexture = new SurfaceTexture(mOESTextureId);
- surfaceTexture.setOnFrameAvailableListener(new SurfaceTexture.OnFrameAvailableListener() {
- @Override
- public void onFrameAvailable(SurfaceTexture surfaceTexture) {
- requestRender();
- }
- });
-
- // For camera preview on activity creation
- if (mCamera != null) {
- try {
- mCamera.setPreviewTexture(surfaceTexture);
- } catch (IOException ioe) {
- ioe.printStackTrace();
- }
- }
-
- Log.i(TAG, "Run out of onSurfaceCreated...");
- }
-
- @Override
- public void onSurfaceChanged(GL10 gl, int width, int height) {
- Log.i(TAG, "Run into onSurfaceChanged...width: " + width + ", height: " + height);
- GLES20.glViewport(0, 0, width, height);
- mSurfaceWidth = width;
- mSurfaceHeight = height;
- magicFilter.onDisplaySizeChanged(width, height);
-
- mOutputAspectRatio = width > height ? (float) width / height : (float) height / width;
- float aspectRatio = mOutputAspectRatio / mInputAspectRatio;
-
- if (width > height) {
- Matrix.orthoM(mProjectionMatrix, 0, -1.0f, 1.0f, -aspectRatio, aspectRatio, -1.0f, 1.0f);
- } else {
- Matrix.orthoM(mProjectionMatrix, 0, -aspectRatio, aspectRatio, -1.0f, 1.0f, -1.0f, 1.0f);
- }
-
- Log.i(TAG, "Run out onSurfaceChanged--");
- }
-
- @Override
- public void onDrawFrame(GL10 gl) {
-
- GLES20.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
- GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT | GLES20.GL_DEPTH_BUFFER_BIT);
-
- surfaceTexture.updateTexImage();
-
- surfaceTexture.getTransformMatrix(mSurfaceMatrix);
-
- Matrix.multiplyMM(mTransformMatrix, 0, mSurfaceMatrix, 0, mProjectionMatrix, 0);
- magicFilter.setTextureTransformMatrix(mTransformMatrix);
-
- magicFilter.onDrawFrame(mOESTextureId);
-
- mGLIntBufferCache.add(magicFilter.getGLFboBuffer());
- synchronized (writeLock) {
- writeLock.notifyAll();
- }
- }
-
- public void setPreviewCallback(PreviewCallback cb) {
- mPrevCb = cb;
- }
-
- public int[] setPreviewResolution(int width, int height) {
- getHolder().setFixedSize(width, height);
-
- mCamera = openCamera();
- mPreviewWidth = width;
- mPreviewHeight = height;
-
- mCamera.getParameters().setPreviewSize(mPreviewWidth, mPreviewHeight);
-
- mGLPreviewBuffer = ByteBuffer.allocate(mPreviewWidth * mPreviewHeight * 4);
-
- mInputAspectRatio = mPreviewWidth > mPreviewHeight ?
- (float) mPreviewWidth / mPreviewHeight : (float) mPreviewHeight / mPreviewWidth;
-
- return new int[]{mPreviewWidth, mPreviewHeight};
- }
-
- public boolean setFilter(final MagicFilterType type) {
- if (mCamera == null) {
- return false;
- }
-
- queueEvent(new Runnable() {
- @Override
- public void run() {
- if (magicFilter != null) {
- magicFilter.destroy();
- }
- magicFilter = MagicFilterFactory.initFilters(type);
- if (magicFilter != null) {
- magicFilter.init(getContext().getApplicationContext());
- magicFilter.onInputSizeChanged(mPreviewWidth, mPreviewHeight);
- magicFilter.onDisplaySizeChanged(mSurfaceWidth, mSurfaceHeight);
- }
- }
- });
- requestRender();
- return true;
- }
-
- private void deleteTextures() {
- if (mOESTextureId != OpenGLUtils.NO_TEXTURE) {
- queueEvent(new Runnable() {
- @Override
- public void run() {
- GLES20.glDeleteTextures(1, new int[]{mOESTextureId}, 0);
- mOESTextureId = OpenGLUtils.NO_TEXTURE;
- }
- });
- }
- }
-
- public void setCameraId(int id) {
- mCamId = id;
- }
-
- public void setPreviewOrientation(int orientation, int degree) {
- mPreviewOrientation = orientation;
- mPreviewRotation = degree;
-
- mCamera.setDisplayOrientation(degree);
-
- }
-
- public int getCameraId() {
- return mCamId;
- }
-
- public boolean startCamera() {
- worker = new Thread(new Runnable() {
- @Override
- public void run() {
- while (!Thread.interrupted()) {
- while (!mGLIntBufferCache.isEmpty()) {
- IntBuffer picture = mGLIntBufferCache.poll();
- mGLPreviewBuffer.asIntBuffer().put(picture.array());
- mPrevCb.onGetRgbaFrame(mGLPreviewBuffer.array(), mPreviewWidth, mPreviewHeight);
- }
- // Waiting for next frame
- synchronized (writeLock) {
- try {
- // isEmpty() may take some time, so we set timeout to detect next frame
- writeLock.wait(500);
- } catch (InterruptedException ie) {
- worker.interrupt();
- }
- }
- }
- }
- });
- worker.start();
-
- if (mCamera == null) {
- mCamera = openCamera();
- if (mCamera == null) {
- return false;
- }
- }
-
- Camera.Parameters params = mCamera.getParameters();
-
- List supportedFocusModes = params.getSupportedFocusModes();
- if (!supportedFocusModes.isEmpty()) {
- if (supportedFocusModes.contains(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE)) {
- params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
- } else {
- params.setFocusMode(supportedFocusModes.get(0));
- }
- }
-
- params.setPictureSize(mPreviewWidth, mPreviewHeight);
- params.setPreviewSize(mPreviewWidth, mPreviewHeight);
-
- int VFPS = 15;
- int[] range = adaptFpsRange(VFPS, params.getSupportedPreviewFpsRange());
- params.setPreviewFpsRange(range[0], range[1]);
- params.setPreviewFormat(ImageFormat.NV21);
-
- params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
- params.setWhiteBalance(Camera.Parameters.WHITE_BALANCE_AUTO);
- params.setSceneMode(Camera.Parameters.SCENE_MODE_AUTO);
- if (!params.getSupportedFocusModes().isEmpty()) {
- params.setFocusMode(params.getSupportedFocusModes().get(0));
- }
- mCamera.setParameters(params);
-
- mCamera.setDisplayOrientation(mPreviewRotation);
-
- try {
- mCamera.setPreviewTexture(surfaceTexture);
- } catch (IOException e) {
- e.printStackTrace();
- }
-
- GetParameters(mCamera);
-
- mCamera.startPreview();
-
- return true;
- }
-
- public void stopCamera() {
- if (worker != null) {
- worker.interrupt();
- try {
- worker.join();
- } catch (InterruptedException e) {
- e.printStackTrace();
- worker.interrupt();
- }
- mGLIntBufferCache.clear();
- worker = null;
- }
-
- if (mCamera != null) {
- mCamera.stopPreview();
- mCamera.release();
- mCamera = null;
- }
- }
-
- public void GetParameters(Camera camera) {
- List pictureSizes = camera.getParameters().getSupportedPictureSizes();
- List previewSizes = camera.getParameters().getSupportedPreviewSizes();
- Camera.Size psize;
- for (int i = 0; i < pictureSizes.size(); i++) {
- psize = pictureSizes.get(i);
- Log.i(TAG, psize.width + " x " + psize.height);
- }
- for (int i = 0; i < previewSizes.size(); i++) {
- psize = previewSizes.get(i);
- Log.i(TAG, psize.width + " x " + psize.height);
- }
- }
-
- private Camera openCamera() {
- Camera camera;
- if (mCamId < 0) {
- Camera.CameraInfo info = new Camera.CameraInfo();
-
- int numCameras = Camera.getNumberOfCameras();
- int frontCamId = -1;
- int backCamId = -1;
- for (int i = 0; i < numCameras; i++) {
- Camera.getCameraInfo(i, info);
- if (info.facing == Camera.CameraInfo.CAMERA_FACING_BACK) {
- backCamId = i;
- } else if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
- frontCamId = i;
- break;
- }
- }
- if (frontCamId != -1) {
- mCamId = frontCamId;
- } else if (backCamId != -1) {
- mCamId = backCamId;
- } else {
- mCamId = 0;
- }
- }
- camera = Camera.open(mCamId);
-
- return camera;
- }
-
- private int[] adaptFpsRange(int expectedFps, List fpsRanges) {
- expectedFps *= 1000;
- int[] closestRange = fpsRanges.get(0);
- int measure = Math.abs(closestRange[0] - expectedFps) + Math.abs(closestRange[1] - expectedFps);
- for (int[] range : fpsRanges) {
- if (range[0] <= expectedFps && range[1] >= expectedFps) {
- int curMeasure = Math.abs(range[0] - expectedFps) + Math.abs(range[1] - expectedFps);
- if (curMeasure < measure) {
- closestRange = range;
- measure = curMeasure;
- }
- }
- }
- return closestRange;
- }
-
- public interface PreviewCallback {
-
- void onGetRgbaFrame(byte[] data, int width, int height);
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicAmaroFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicAmaroFilter.java
deleted file mode 100644
index 398bf5d..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicAmaroFilter.java
+++ /dev/null
@@ -1,66 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-import com.seu.magicfilter.utils.OpenGLUtils;
-
-public class MagicAmaroFilter extends GPUImageFilter {
- private int[] inputTextureHandles = {-1,-1,-1};
- private int[] inputTextureUniformLocations = {-1,-1,-1};
- private int mGLStrengthLocation;
-
- public MagicAmaroFilter(){
- super(MagicFilterType.AMARO, R.raw.amaro);
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- GLES20.glDeleteTextures(inputTextureHandles.length, inputTextureHandles, 0);
- for(int i = 0; i < inputTextureHandles.length; i++)
- inputTextureHandles[i] = -1;
- }
-
- @Override
- protected void onDrawArraysAfter(){
- for(int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3));
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre(){
- for(int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3));
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, inputTextureHandles[i]);
- GLES20.glUniform1i(inputTextureUniformLocations[i], (i+3));
- }
- }
-
- @Override
- protected void onInit(){
- super.onInit();
- for (int i = 0; i < inputTextureUniformLocations.length; i++) {
- inputTextureUniformLocations[i] = GLES20.glGetUniformLocation(getProgram(), "inputImageTexture" + (2 + i));
- }
- mGLStrengthLocation = GLES20.glGetUniformLocation(getProgram(), "strength");
- }
-
- @Override
- protected void onInitialized(){
- super.onInitialized();
- setFloat(mGLStrengthLocation, 1.0f);
- runOnDraw(new Runnable(){
- public void run(){
- inputTextureHandles[0] = OpenGLUtils.loadTexture(getContext(), "filter/brannan_blowout.png");
- inputTextureHandles[1] = OpenGLUtils.loadTexture(getContext(), "filter/overlaymap.png");
- inputTextureHandles[2] = OpenGLUtils.loadTexture(getContext(), "filter/amaromap.png");
- }
- });
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicAntiqueFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicAntiqueFilter.java
deleted file mode 100644
index fba5a08..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicAntiqueFilter.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-
-import java.nio.ByteBuffer;
-
-public class MagicAntiqueFilter extends GPUImageFilter{
- private int[] mToneCurveTexture = {-1};
- private int mToneCurveTextureUniformLocation;
-
- public MagicAntiqueFilter(){
- super(MagicFilterType.ANTIQUE, R.raw.antique);
- }
-
- @Override
- protected void onDestroy(){
- super.onDestroy();
- GLES20.glDeleteTextures(1, mToneCurveTexture, 0);
- this.mToneCurveTexture[0] = -1;
- }
-
- @Override
- protected void onDrawArraysAfter(){
- if (this.mToneCurveTexture[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre(){
- if (this.mToneCurveTexture[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glUniform1i(this.mToneCurveTextureUniformLocation, 3);
- }
- }
-
- @Override
- protected void onInit(){
- super.onInit();
- mToneCurveTextureUniformLocation = GLES20.glGetUniformLocation(getProgram(), "curve");
- }
-
- @Override
- protected void onInitialized(){
- super.onInitialized();
- runOnDraw(new Runnable(){
- public void run(){
- GLES20.glGenTextures(1, mToneCurveTexture, 0);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);
- byte[] arrayOfByte = new byte[2048];
- int[] arrayOfInt1 = { 0, 1, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 8, 9, 10, 11, 11, 12, 13, 14, 15, 15, 16, 17, 18, 19, 20, 21, 22, 23, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, 53, 55, 56, 57, 58, 59, 61, 62, 63, 64, 66, 67, 68, 69, 71, 72, 73, 74, 76, 77, 78, 79, 81, 82, 83, 85, 86, 87, 89, 90, 91, 93, 94, 95, 96, 98, 99, 100, 102, 103, 104, 106, 107, 108, 110, 111, 112, 114, 115, 116, 118, 119, 120, 122, 123, 124, 126, 127, 128, 130, 131, 132, 134, 135, 136, 137, 139, 140, 141, 143, 144, 145, 146, 148, 149, 150, 152, 153, 154, 155, 157, 158, 159, 160, 161, 163, 164, 165, 166, 168, 169, 170, 171, 172, 173, 175, 176, 177, 178, 179, 180, 181, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 211, 212, 213, 214, 215, 216, 216, 217, 218, 219, 220, 220, 221, 222, 223, 223, 224, 225, 226, 226, 227, 228, 228, 229, 230, 230, 231, 232, 232, 233, 234, 234, 235, 236, 236, 237, 238, 238, 239, 239, 240, 241, 241, 242, 242, 243, 244, 244, 245, 245, 246, 247, 247, 248, 248, 249, 249, 250, 251, 251, 252, 252, 253, 253, 254, 254, 255 };
- int[] arrayOfInt2 = { 15, 15, 16, 17, 18, 19, 20, 20, 21, 22, 23, 23, 24, 25, 26, 27, 28, 29, 30, 31, 31, 32, 33, 34, 35, 37, 38, 39, 40, 41, 42, 43, 43, 44, 45, 46, 48, 49, 50, 51, 52, 53, 55, 56, 57, 57, 58, 59, 61, 62, 63, 64, 66, 67, 68, 69, 71, 72, 72, 73, 74, 76, 77, 78, 79, 81, 82, 83, 85, 86, 87, 87, 89, 90, 91, 93, 94, 95, 96, 98, 99, 100, 102, 102, 103, 104, 106, 107, 108, 110, 111, 112, 114, 115, 116, 118, 118, 119, 120, 122, 123, 124, 126, 127, 128, 130, 131, 132, 134, 134, 135, 136, 137, 139, 140, 141, 143, 144, 145, 146, 148, 149, 149, 150, 152, 153, 154, 155, 157, 158, 159, 160, 161, 163, 163, 164, 165, 166, 168, 169, 170, 171, 172, 173, 175, 176, 177, 177, 178, 179, 180, 181, 183, 184, 185, 186, 187, 188, 189, 190, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 211, 212, 212, 213, 214, 215, 216, 216, 217, 218, 219, 220, 220, 221, 222, 222, 223, 223, 224, 225, 226, 226, 227, 228, 228, 229, 230, 230, 230, 231, 232, 232, 233, 234, 234, 235, 236, 236, 237, 238, 238, 238, 239, 239, 240, 241, 241, 242, 242, 243, 244, 244, 245, 245, 245, 246, 247, 247, 248, 248, 249, 249, 250, 251, 251, 252, 252, 252, 253, 253, 254, 254, 255 };
- int[] arrayOfInt3 = { 87, 89, 89, 90, 90, 91, 91, 93, 93, 94, 95, 95, 96, 96, 98, 98, 99, 100, 100, 102, 102, 103, 103, 104, 104, 106, 107, 107, 108, 108, 110, 110, 111, 112, 112, 114, 114, 115, 115, 116, 118, 118, 119, 119, 120, 120, 122, 123, 123, 124, 124, 126, 126, 127, 128, 128, 130, 130, 131, 131, 132, 134, 134, 135, 135, 136, 136, 137, 139, 139, 140, 140, 141, 143, 143, 144, 144, 145, 146, 146, 148, 148, 149, 150, 150, 152, 152, 153, 154, 154, 155, 155, 157, 158, 158, 159, 159, 160, 161, 161, 163, 163, 164, 165, 165, 166, 168, 168, 169, 169, 170, 171, 171, 172, 173, 173, 175, 175, 176, 177, 177, 178, 179, 179, 180, 181, 181, 183, 183, 184, 185, 185, 186, 187, 187, 188, 189, 189, 190, 191, 191, 192, 193, 193, 194, 195, 195, 196, 197, 197, 198, 199, 199, 200, 201, 201, 202, 203, 204, 204, 205, 206, 206, 207, 208, 208, 209, 210, 211, 211, 211, 212, 212, 213, 214, 215, 215, 216, 216, 217, 217, 218, 219, 219, 220, 220, 221, 221, 222, 223, 223, 223, 224, 225, 226, 226, 226, 227, 228, 228, 228, 229, 230, 230, 230, 231, 232, 232, 232, 233, 234, 234, 235, 235, 236, 236, 237, 238, 238, 238, 239, 239, 240, 240, 241, 241, 242, 242, 242, 243, 244, 244, 244, 245, 245, 246, 247, 247, 247, 248, 248, 249, 249, 249, 250, 251, 251, 252, 252, 252, 253, 253, 254, 254, 254, 255 };
- int[] arrayOfInt4 = { 0, 1, 1, 2, 3, 4, 4, 5, 6, 7, 7, 8, 9, 10, 10, 11, 12, 13, 13, 14, 15, 16, 17, 17, 18, 19, 20, 20, 21, 22, 23, 24, 24, 25, 26, 27, 28, 29, 29, 30, 31, 32, 33, 34, 35, 36, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 64, 65, 66, 67, 68, 69, 70, 72, 73, 74, 75, 76, 78, 79, 80, 81, 83, 84, 85, 86, 88, 89, 90, 91, 93, 94, 95, 97, 98, 99, 101, 102, 103, 105, 106, 107, 109, 110, 111, 113, 114, 115, 117, 118, 119, 121, 122, 123, 125, 126, 127, 129, 130, 131, 133, 134, 136, 137, 138, 140, 141, 142, 144, 145, 146, 148, 149, 150, 152, 153, 154, 156, 157, 158, 159, 161, 162, 163, 165, 166, 167, 168, 170, 171, 172, 173, 175, 176, 177, 178, 180, 181, 182, 183, 184, 186, 187, 188, 189, 190, 191, 192, 193, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 213, 214, 215, 216, 217, 218, 219, 219, 220, 221, 222, 223, 223, 224, 225, 226, 227, 227, 228, 229, 230, 230, 231, 232, 232, 233, 234, 234, 235, 236, 236, 237, 238, 238, 239, 240, 240, 241, 242, 242, 243, 244, 244, 245, 245, 246, 247, 247, 248, 248, 249, 250, 250, 251, 251, 252, 253, 253, 254, 254, 255 };
- for (int i = 0; i < 256; i++){
- arrayOfByte[(i * 4)] = ((byte)arrayOfInt1[i]);
- arrayOfByte[(1 + i * 4)] = ((byte)arrayOfInt2[i]);
- arrayOfByte[(2 + i * 4)] = ((byte)arrayOfInt3[i]);
- arrayOfByte[(3 + i * 4)] = ((byte)arrayOfInt4[i]);
- }
- int[] arrayOfInt5 = { 0, 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 20, 20, 20, 21, 21, 21, 22, 22, 23, 23, 23, 24, 24, 24, 25, 25, 25, 25, 26, 26, 27, 27, 28, 28, 28, 28, 29, 29, 30, 29, 31, 31, 31, 31, 32, 32, 33, 33, 34, 34, 34, 34, 35, 35, 36, 36, 37, 37, 37, 38, 38, 39, 39, 39, 40, 40, 40, 41, 42, 42, 43, 43, 44, 44, 45, 45, 45, 46, 47, 47, 48, 48, 49, 50, 51, 51, 52, 52, 53, 53, 54, 55, 55, 56, 57, 57, 58, 59, 60, 60, 61, 62, 63, 63, 64, 65, 66, 67, 68, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, 91, 93, 94, 95, 96, 97, 98, 100, 101, 103, 104, 105, 107, 108, 110, 111, 113, 115, 116, 118, 119, 120, 122, 123, 125, 127, 128, 130, 132, 134, 135, 137, 139, 141, 143, 144, 146, 148, 150, 152, 154, 156, 158, 160, 163, 165, 167, 169, 171, 173, 175, 178, 180, 182, 185, 187, 189, 192, 194, 197, 199, 201, 204, 206, 209, 211, 214, 216, 219, 221, 224, 226, 229, 232, 234, 236, 239, 241, 245, 247, 250, 252, 255 };
- for (int j = 0; j < 256; j++){
- arrayOfByte[(1024 + j * 4)] = ((byte)arrayOfInt5[j]);
- arrayOfByte[(1 + (1024 + j * 4))] = ((byte)arrayOfInt5[j]);
- arrayOfByte[(2 + (1024 + j * 4))] = ((byte)arrayOfInt5[j]);
- arrayOfByte[(3 + (1024 + j * 4))] = -1;
- }
- GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, 256, 2, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, ByteBuffer.wrap(arrayOfByte));
- }
- });
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicBeautyFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicBeautyFilter.java
deleted file mode 100644
index 98e4626..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicBeautyFilter.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-
-/**
- * Created by Administrator on 2016/5/22.
- */
-public class MagicBeautyFilter extends GPUImageFilter {
- private int mSingleStepOffsetLocation;
-
- public MagicBeautyFilter(){
- super(MagicFilterType.BEAUTY, R.raw.beauty);
- }
-
- protected void onInit() {
- super.onInit();
- mSingleStepOffsetLocation = GLES20.glGetUniformLocation(getProgram(), "singleStepOffset");
- }
-
- @Override
- public void onInputSizeChanged(final int width, final int height) {
- super.onInputSizeChanged(width, height);
- setFloatVec2(mSingleStepOffsetLocation, new float[] {2.0f / width, 2.0f / height});
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicBlackCatFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicBlackCatFilter.java
deleted file mode 100644
index dfd5565..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicBlackCatFilter.java
+++ /dev/null
@@ -1,89 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-
-import java.nio.ByteBuffer;
-
-public class MagicBlackCatFilter extends GPUImageFilter {
-
- private int[] mToneCurveTexture = {-1};
- private int mToneCurveTextureUniformLocation;
-
- public MagicBlackCatFilter(){
- super(MagicFilterType.BLACKCAT, R.raw.blackcat);
- }
-
- @Override
- protected void onDestroy(){
- super.onDestroy();
- GLES20.glDeleteTextures(1, mToneCurveTexture, 0);
- mToneCurveTexture[0] = -1;
- }
-
- @Override
- protected void onDrawArraysAfter(){
- if (mToneCurveTexture[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre(){
- if (mToneCurveTexture[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glUniform1i(mToneCurveTextureUniformLocation, 3);
- }
- }
-
- @Override
- protected void onInit(){
- super.onInit();
- mToneCurveTextureUniformLocation = GLES20.glGetUniformLocation(getProgram(), "curve");
- }
-
- @Override
- protected void onInitialized(){
- super.onInitialized();
- runOnDraw(new Runnable(){
- public void run(){
- GLES20.glGenTextures(1, mToneCurveTexture, 0);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);
- byte[] arrayOfByte = new byte[2048];
- int[] arrayOfInt1 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 5, 7, 8, 10, 11, 13, 15, 16, 18, 20, 21, 23, 24, 26, 28, 29, 31, 33, 34, 36, 37, 39, 41, 42, 44, 45, 47, 49, 50, 52, 53, 55, 57, 58, 60, 61, 63, 65, 66, 68, 69, 71, 72, 74, 76, 77, 79, 80, 82, 83, 85, 86, 88, 90, 91, 93, 94, 96, 97, 99, 100, 102, 103, 105, 106, 108, 109, 111, 112, 114, 115, 116, 118, 119, 121, 122, 124, 125, 127, 128, 129, 131, 132, 134, 135, 136, 138, 139, 141, 142, 143, 145, 146, 147, 149, 150, 151, 153, 154, 155, 157, 158, 159, 160, 162, 163, 164, 165, 167, 168, 169, 170, 172, 173, 174, 175, 176, 178, 179, 180, 181, 182, 183, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 199, 200, 201, 202, 203, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 215, 216, 217, 218, 219, 220, 220, 221, 222, 223, 224, 224, 225, 226, 227, 227, 228, 229, 229, 230, 231, 232, 232, 233, 234, 234, 235, 236, 236, 237, 238, 238, 239, 240, 240, 241, 242, 242, 243, 243, 244, 245, 245, 246, 247, 247, 248, 248, 249, 250, 250, 251, 251, 252, 253, 253, 254, 254, 255 };
- int[] arrayOfInt2 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 5, 7, 8, 10, 11, 13, 15, 16, 16, 18, 20, 21, 23, 24, 26, 28, 29, 31, 33, 34, 36, 37, 39, 41, 41, 42, 44, 45, 47, 49, 50, 52, 53, 55, 57, 58, 60, 61, 63, 65, 66, 68, 69, 71, 72, 74, 76, 77, 79, 80, 82, 83, 85, 86, 86, 88, 90, 91, 93, 94, 96, 97, 99, 100, 102, 103, 105, 106, 108, 109, 111, 112, 114, 115, 116, 118, 119, 121, 122, 124, 125, 127, 128, 129, 131, 134, 135, 136, 138, 139, 141, 142, 143, 145, 146, 147, 149, 150, 151, 153, 154, 155, 157, 158, 159, 160, 162, 163, 164, 165, 167, 168, 169, 170, 172, 173, 174, 175, 176, 179, 180, 181, 182, 183, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 199, 200, 201, 203, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 215, 216, 217, 219, 220, 220, 221, 222, 223, 224, 224, 225, 226, 227, 227, 228, 229, 229, 230, 232, 232, 233, 234, 234, 235, 236, 236, 237, 238, 238, 239, 240, 240, 242, 242, 243, 243, 244, 245, 245, 246, 247, 247, 248, 248, 249, 250, 251, 251, 252, 253, 253, 254, 254, 255 };
- int[] arrayOfInt3 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 3, 5, 7, 8, 10, 10, 11, 13, 15, 16, 18, 20, 20, 21, 23, 24, 26, 28, 29, 29, 31, 33, 34, 36, 37, 39, 39, 41, 42, 44, 45, 47, 49, 50, 50, 52, 53, 55, 57, 58, 60, 61, 63, 63, 65, 66, 68, 69, 71, 72, 74, 76, 77, 79, 79, 80, 82, 83, 85, 86, 88, 90, 91, 93, 94, 96, 97, 99, 100, 100, 102, 103, 105, 106, 108, 109, 111, 112, 114, 115, 116, 118, 119, 121, 122, 124, 125, 127, 128, 129, 131, 132, 134, 135, 136, 138, 139, 141, 142, 143, 145, 146, 147, 149, 150, 151, 153, 154, 155, 157, 158, 159, 160, 162, 164, 165, 167, 168, 169, 170, 172, 173, 174, 175, 176, 178, 179, 180, 181, 182, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 199, 200, 201, 202, 203, 203, 204, 205, 206, 207, 209, 210, 211, 212, 213, 214, 215, 215, 216, 218, 219, 220, 220, 221, 222, 223, 224, 225, 226, 227, 227, 228, 229, 229, 230, 232, 232, 233, 234, 234, 235, 236, 236, 238, 238, 239, 240, 240, 241, 242, 243, 243, 244, 245, 245, 246, 247, 247, 248, 249, 250, 250, 251, 251, 252, 253, 254, 254, 255 };
- for (int i = 0; i < 256; i++){
- arrayOfByte[(i * 4)] = ((byte)arrayOfInt1[i]);
- arrayOfByte[(1 + i * 4)] = ((byte)arrayOfInt2[i]);
- arrayOfByte[(2 + i * 4)] = ((byte)arrayOfInt3[i]);
- arrayOfByte[(3 + i * 4)] = -1;
- }
- int[] arrayOfInt4 = { 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 12, 13, 13, 14, 14, 15, 16, 17, 18, 18, 19, 19, 20, 21, 21, 23, 24, 25, 26, 26, 26, 27, 28, 29, 30, 31, 32, 32, 33, 34, 35, 36, 37, 38, 38, 38, 39, 40, 41, 43, 44, 45, 45, 46, 47, 48, 49, 49, 50, 51, 52, 53, 54, 55, 56, 57, 57, 58, 59, 60, 61, 62, 63, 64, 65, 65, 66, 67, 68, 69, 70, 70, 71, 72, 74, 75, 76, 76, 77, 78, 79, 80, 81, 82, 82, 83, 85, 86, 87, 88, 89, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 101, 102, 103, 104, 105, 107, 107, 108, 109, 111, 112, 113, 114, 114, 115, 116, 117, 119, 120, 120, 121, 122, 123, 124, 125, 126, 126, 127, 128, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 139, 141, 142, 143, 144, 145, 145, 146, 147, 148, 149, 151, 151, 153, 154, 155, 156, 157, 158, 158, 159, 160, 161, 162, 163, 165, 166, 167, 168, 169, 170, 170, 171, 172, 173, 174, 175, 177, 178, 179, 180, 181, 182, 183, 183, 184, 185, 186, 189, 189, 190, 191, 192, 193, 194, 195, 195, 196, 198, 199, 201, 202, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 213, 214, 214, 215, 216, 218, 219, 220, 221, 221, 222, 223, 225, 227, 227, 228, 229, 230, 230, 230, 230, 230, 230, 230, 230, 230 };
- int[] arrayOfInt5 = { 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 7, 8, 8, 9, 10, 11, 11, 12, 13, 14, 15, 15, 16, 17, 18, 19, 19, 20, 21, 22, 23, 24, 25, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 39, 40, 41, 42, 43, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 61, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73, 74, 76, 77, 78, 79, 81, 82, 83, 84, 86, 87, 88, 89, 91, 92, 93, 95, 96, 97, 99, 100, 101, 103, 104, 105, 107, 108, 109, 111, 112, 114, 115, 116, 118, 119, 121, 122, 124, 125, 126, 128, 129, 131, 132, 134, 135, 137, 138, 140, 141, 142, 144, 145, 147, 148, 149, 151, 152, 154, 155, 156, 158, 159, 160, 162, 163, 164, 166, 167, 168, 170, 171, 172, 173, 175, 176, 177, 178, 180, 181, 182, 183, 184, 186, 187, 188, 189, 190, 191, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 220, 221, 222, 223, 224, 225, 225, 226, 227, 228, 229, 229, 230, 231, 232, 232, 233, 234, 234, 235, 236, 236, 237, 238, 238, 239, 240, 240, 241, 241, 242, 243, 243, 244, 244, 245, 245, 246, 246, 247, 247, 248, 248, 249, 249, 250, 250, 251, 251, 252, 252, 252, 253, 253, 254, 254, 254, 255, 255 };
- int[] arrayOfInt6 = { 0, 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 20, 20, 20, 21, 21, 21, 22, 22, 23, 23, 23, 24, 24, 24, 25, 25, 25, 25, 26, 26, 27, 27, 28, 28, 28, 28, 29, 29, 30, 29, 31, 31, 31, 31, 32, 32, 33, 33, 34, 34, 34, 34, 35, 35, 36, 36, 37, 37, 37, 38, 38, 39, 39, 39, 40, 40, 40, 41, 42, 42, 43, 43, 44, 44, 45, 45, 45, 46, 47, 47, 48, 48, 49, 50, 51, 51, 52, 52, 53, 53, 54, 55, 55, 56, 57, 57, 58, 59, 60, 60, 61, 62, 63, 63, 64, 65, 66, 67, 68, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, 91, 93, 94, 95, 96, 97, 98, 100, 101, 103, 104, 105, 107, 108, 110, 111, 113, 115, 116, 118, 119, 120, 122, 123, 125, 127, 128, 130, 132, 134, 135, 137, 139, 141, 143, 144, 146, 148, 150, 152, 154, 156, 158, 160, 163, 165, 167, 169, 171, 173, 175, 178, 180, 182, 185, 187, 189, 192, 194, 197, 199, 201, 204, 206, 209, 211, 214, 216, 219, 221, 224, 226, 229, 232, 234, 236, 239, 241, 245, 247, 250, 252, 255 };
- for (int j = 0; j < 256; j++){
- arrayOfByte[(1024 + j * 4)] = ((byte)arrayOfInt4[j]);
- arrayOfByte[(1 + (1024 + j * 4))] = ((byte)arrayOfInt5[j]);
- arrayOfByte[(2 + (1024 + j * 4))] = ((byte)arrayOfInt6[j]);
- arrayOfByte[(3 + (1024 + j * 4))] = -1;
- }
- GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, 256, 2, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, ByteBuffer.wrap(arrayOfByte));
- }
- });
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicBrannanFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicBrannanFilter.java
deleted file mode 100644
index 10dd89a..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicBrannanFilter.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-import com.seu.magicfilter.utils.OpenGLUtils;
-
-public class MagicBrannanFilter extends GPUImageFilter{
- private int[] inputTextureHandles = {-1,-1,-1,-1,-1};
- private int[] inputTextureUniformLocations = {-1,-1,-1,-1,-1};
- private int mGLStrengthLocation;
-
- public MagicBrannanFilter(){
- super(MagicFilterType.BRANNAN, R.raw.brannan);
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- GLES20.glDeleteTextures(inputTextureHandles.length, inputTextureHandles, 0);
- for(int i = 0; i < inputTextureHandles.length; i++)
- inputTextureHandles[i] = -1;
- }
-
- @Override
- protected void onDrawArraysAfter(){
- for(int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3));
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre(){
- for(int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3) );
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, inputTextureHandles[i]);
- GLES20.glUniform1i(inputTextureUniformLocations[i], (i+3));
- }
- }
-
- @Override
- protected void onInit(){
- super.onInit();
- for (int i = 0; i < inputTextureUniformLocations.length; i++) {
- inputTextureUniformLocations[i] = GLES20.glGetUniformLocation(getProgram(), "inputImageTexture" + (2 + i));
- }
- mGLStrengthLocation = GLES20.glGetUniformLocation(getProgram(), "strength");
- }
-
- @Override
- protected void onInitialized(){
- super.onInitialized();
- setFloat(mGLStrengthLocation, 1.0f);
- runOnDraw(new Runnable(){
- public void run(){
- inputTextureHandles[0] = OpenGLUtils.loadTexture(getContext(), "filter/brannan_process.png");
- inputTextureHandles[1] = OpenGLUtils.loadTexture(getContext(), "filter/brannan_blowout.png");
- inputTextureHandles[2] = OpenGLUtils.loadTexture(getContext(), "filter/brannan_contrast.png");
- inputTextureHandles[3] = OpenGLUtils.loadTexture(getContext(), "filter/brannan_luma.png");
- inputTextureHandles[4] = OpenGLUtils.loadTexture(getContext(), "filter/brannan_screen.png");
- }
- });
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicBrooklynFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicBrooklynFilter.java
deleted file mode 100644
index f340296..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicBrooklynFilter.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-import com.seu.magicfilter.utils.OpenGLUtils;
-
-public class MagicBrooklynFilter extends GPUImageFilter {
- private int[] inputTextureHandles = {-1,-1,-1};
- private int[] inputTextureUniformLocations = {-1,-1,-1};
- private int mGLStrengthLocation;
-
- public MagicBrooklynFilter(){
- super(MagicFilterType.BROOKLYN, R.raw.brooklyn);
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- GLES20.glDeleteTextures(inputTextureHandles.length, inputTextureHandles, 0);
- for (int i = 0; i < inputTextureHandles.length; i++) {
- inputTextureHandles[i] = -1;
- }
- }
-
- @Override
- protected void onDrawArraysAfter(){
- for(int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3));
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre(){
- for(int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3) );
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, inputTextureHandles[i]);
- GLES20.glUniform1i(inputTextureUniformLocations[i], (i+3));
- }
- }
-
- @Override
- protected void onInit(){
- super.onInit();
- for (int i = 0; i < inputTextureUniformLocations.length; i++) {
- inputTextureUniformLocations[i] = GLES20.glGetUniformLocation(getProgram(), "inputImageTexture" + (2 + i));
- }
- mGLStrengthLocation = GLES20.glGetUniformLocation(getProgram(), "strength");
- }
-
- @Override
- protected void onInitialized(){
- super.onInitialized();
- setFloat(mGLStrengthLocation, 1.0f);
- runOnDraw(new Runnable(){
- public void run(){
- inputTextureHandles[0] = OpenGLUtils.loadTexture(getContext(), "filter/brooklynCurves1.png");
- inputTextureHandles[1] = OpenGLUtils.loadTexture(getContext(), "filter/filter_map_first.png");
- inputTextureHandles[2] = OpenGLUtils.loadTexture(getContext(), "filter/brooklynCurves2.png");
- }
- });
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicCalmFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicCalmFilter.java
deleted file mode 100644
index b2406ad..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicCalmFilter.java
+++ /dev/null
@@ -1,125 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-import com.seu.magicfilter.utils.OpenGLUtils;
-
-import java.nio.ByteBuffer;
-
-public class MagicCalmFilter extends GPUImageFilter{
- private int[] mToneCurveTexture = {-1};
- private int mToneCurveTextureUniformLocation;
- private int mMaskGrey1TextureId = -1;
- private int mMaskGrey1UniformLocation;
- private int mMaskGrey2TextureId = -1;
- private int mMaskGrey2UniformLocation;
-
- public MagicCalmFilter(){
- super(MagicFilterType.CALM, R.raw.calm);
- }
-
- @Override
- protected void onDestroy(){
- super.onDestroy();
- GLES20.glDeleteTextures(3, new int[]{mToneCurveTexture[0], mMaskGrey1TextureId, mMaskGrey2TextureId}, 0);
- mToneCurveTexture[0] = -1;
- mMaskGrey1TextureId = -1;
- mMaskGrey2TextureId = -1;
- }
-
- @Override
- protected void onDrawArraysAfter(){
- if (mToneCurveTexture[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- if (mMaskGrey1TextureId != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE4);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- if (mMaskGrey2TextureId != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE5);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre(){
- if (mToneCurveTexture[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glUniform1i(mToneCurveTextureUniformLocation, 3);
- }
- if (mMaskGrey1TextureId != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE4);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mMaskGrey1TextureId);
- GLES20.glUniform1i(mMaskGrey1UniformLocation, 4);
- }
- if (mMaskGrey2TextureId != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE5);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mMaskGrey2TextureId);
- GLES20.glUniform1i(mMaskGrey2UniformLocation, 5);
- }
- }
-
- @Override
- protected void onInit(){
- super.onInit();
- mToneCurveTextureUniformLocation = GLES20.glGetUniformLocation(getProgram(), "curve");
- mMaskGrey1UniformLocation = GLES20.glGetUniformLocation(getProgram(), "grey1Frame");
- mMaskGrey2UniformLocation = GLES20.glGetUniformLocation(getProgram(), "grey2Frame");
- }
-
- @Override
- protected void onInitialized(){
- super.onInitialized();
- runOnDraw(new Runnable(){
- public void run(){
- GLES20.glGenTextures(1, mToneCurveTexture, 0);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);
- byte[] arrayOfByte = new byte[3072];
- int[] arrayOfInt1 = { 38, 39, 40, 41, 41, 42, 43, 44, 45, 46, 47, 47, 48, 49, 50, 51, 52, 52, 53, 54, 55, 56, 57, 58, 58, 59, 60, 61, 62, 63, 64, 64, 65, 66, 67, 68, 69, 69, 70, 71, 72, 73, 74, 75, 75, 76, 77, 78, 79, 80, 81, 81, 82, 83, 84, 85, 86, 87, 87, 88, 89, 90, 91, 92, 92, 93, 94, 95, 96, 97, 98, 98, 99, 100, 101, 102, 103, 104, 104, 105, 106, 107, 108, 109, 109, 110, 111, 112, 113, 114, 115, 115, 116, 117, 118, 119, 120, 121, 121, 122, 123, 124, 125, 126, 127, 127, 128, 129, 130, 131, 132, 132, 133, 134, 135, 136, 137, 138, 138, 139, 140, 141, 142, 143, 144, 144, 145, 146, 147, 148, 149, 149, 150, 151, 152, 153, 154, 155, 155, 156, 157, 158, 159, 160, 161, 161, 162, 163, 164, 165, 166, 166, 167, 168, 169, 170, 171, 172, 172, 173, 174, 175, 176, 177, 178, 178, 179, 180, 181, 182, 183, 184, 184, 185, 186, 187, 188, 189, 189, 190, 191, 192, 193, 194, 195, 195, 196, 197, 198, 199, 200, 201, 201, 202, 203, 204, 205, 206, 206, 207, 208, 209, 210, 211, 212, 212, 213, 214, 215, 216, 217, 218, 218, 219, 220, 221, 222, 223, 224, 224, 225, 226, 227, 228, 229, 229, 230, 231, 232, 233, 234, 235, 235, 236, 237, 238, 239, 240, 241, 241, 242, 243, 244, 245, 246, 246, 247, 248, 249, 250, 251, 252, 252, 253, 254, 255 };
- for (int i = 0; i < 256; i++){
- arrayOfByte[(i * 4)] = ((byte)arrayOfInt1[i]);
- arrayOfByte[(1 + i * 4)] = ((byte)arrayOfInt1[i]);
- arrayOfByte[(2 + i * 4)] = ((byte)arrayOfInt1[i]);
- arrayOfByte[(3 + i * 4)] = -1;
- }
- int[] arrayOfInt2 = { 0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 93, 94, 95, 96, 97, 98, 99, 99, 100, 101, 102, 103, 104, 104, 105, 106, 107, 108, 109, 109, 110, 111, 112, 113, 114, 114, 115, 116, 117, 118, 118, 119, 120, 121, 122, 123, 123, 124, 125, 126, 127, 127, 128, 129, 130, 131, 131, 132, 133, 134, 135, 135, 136, 137, 138, 139, 140, 140, 141, 142, 143, 144, 145, 145, 146, 147, 148, 149, 150, 150, 151, 152, 153, 154, 155, 156, 157, 157, 158, 159, 160, 161, 162, 163, 164, 165, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 196, 197, 198, 199, 200, 201, 202, 203, 204, 206, 207, 208, 209, 210, 211, 213, 214, 215, 216, 217, 218, 220, 221, 222, 223, 224, 226, 227, 228, 229, 230, 232, 233, 234, 235, 237, 238, 239, 240, 241, 243, 244, 245, 246, 248, 249, 250, 251, 253, 254, 255 };
- int[] arrayOfInt3 = { 0, 1, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 8, 9, 10, 11, 11, 12, 13, 14, 15, 15, 16, 17, 18, 19, 20, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 42, 43, 44, 46, 47, 48, 50, 51, 53, 54, 56, 57, 59, 60, 62, 64, 65, 67, 69, 70, 72, 74, 75, 77, 79, 80, 82, 84, 85, 87, 89, 91, 92, 94, 96, 97, 99, 101, 102, 104, 106, 107, 109, 111, 112, 114, 115, 117, 118, 120, 121, 123, 124, 126, 127, 129, 130, 132, 133, 134, 136, 137, 138, 140, 141, 142, 144, 145, 146, 147, 149, 150, 151, 152, 153, 155, 156, 157, 158, 159, 160, 161, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 184, 185, 186, 187, 188, 189, 190, 191, 191, 192, 193, 194, 195, 196, 196, 197, 198, 199, 200, 200, 201, 202, 203, 203, 204, 205, 206, 206, 207, 208, 209, 209, 210, 211, 211, 212, 213, 214, 214, 215, 216, 216, 217, 218, 218, 219, 220, 220, 221, 222, 222, 223, 224, 224, 225, 226, 226, 227, 227, 228, 229, 229, 230, 231, 231, 232, 233, 233, 234, 234, 235, 236, 236, 237, 237, 238, 239, 239, 240, 240, 241, 242, 242, 243, 243, 244, 245, 245, 246, 246, 247, 247, 248, 249, 249, 250, 250, 251, 252, 252, 253, 253, 254, 254, 255 };
- for (int j = 0; j < 256; j++){
- arrayOfByte[(1024 + j * 4)] = ((byte)arrayOfInt3[j]);
- arrayOfByte[(1 + (1024 + j * 4))] = ((byte)arrayOfInt3[j]);
- arrayOfByte[(2 + (1024 + j * 4))] = ((byte)arrayOfInt2[j]);
- arrayOfByte[(3 + (1024 + j * 4))] = -1;
- }
- int[] arrayOfInt4 = { 0, 1, 3, 4, 5, 7, 8, 10, 11, 12, 14, 15, 16, 18, 19, 20, 22, 23, 24, 26, 27, 28, 30, 31, 33, 34, 35, 37, 38, 39, 41, 42, 43, 45, 46, 47, 49, 50, 51, 53, 54, 55, 57, 58, 59, 61, 62, 63, 64, 66, 67, 68, 70, 71, 72, 74, 75, 76, 77, 79, 80, 81, 83, 84, 85, 86, 88, 89, 90, 91, 93, 94, 95, 96, 98, 99, 100, 101, 103, 104, 105, 106, 108, 109, 110, 111, 112, 114, 115, 116, 117, 118, 119, 121, 122, 123, 124, 125, 126, 128, 129, 130, 131, 132, 133, 134, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 175, 176, 177, 178, 179, 180, 181, 182, 183, 183, 184, 185, 186, 187, 188, 189, 189, 190, 191, 192, 193, 194, 194, 195, 196, 197, 198, 198, 199, 200, 201, 202, 202, 203, 204, 205, 205, 206, 207, 208, 208, 209, 210, 211, 211, 212, 213, 214, 214, 215, 216, 216, 217, 218, 218, 219, 220, 221, 221, 222, 223, 223, 224, 225, 225, 226, 227, 227, 228, 229, 229, 230, 231, 231, 232, 233, 233, 234, 235, 235, 236, 237, 237, 238, 239, 239, 240, 240, 241, 242, 242, 243, 244, 244, 245, 246, 246, 247, 247, 248, 249, 249, 250, 251, 251, 252, 252, 253, 254, 254, 255 };
- int[] arrayOfInt5 = { 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 20, 20, 21, 21, 21, 22, 22, 23, 23, 24, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 33, 33, 34, 34, 35, 35, 36, 37, 37, 38, 38, 39, 40, 40, 41, 42, 42, 43, 44, 44, 45, 46, 47, 47, 48, 49, 49, 50, 51, 52, 53, 53, 54, 55, 56, 57, 57, 58, 59, 60, 61, 62, 63, 64, 65, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 81, 82, 83, 84, 85, 86, 87, 88, 90, 91, 92, 93, 94, 96, 97, 98, 99, 101, 102, 103, 105, 106, 107, 109, 110, 111, 113, 114, 115, 117, 118, 120, 121, 123, 124, 126, 127, 129, 130, 132, 133, 135, 137, 138, 140, 142, 143, 145, 147, 148, 150, 152, 153, 155, 157, 159, 161, 162, 164, 166, 168, 170, 172, 174, 175, 177, 179, 181, 183, 185, 187, 189, 191, 193, 195, 197, 199, 201, 203, 205, 207, 209, 211, 213, 215, 217, 219, 221, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 247, 249, 251, 253, 255 };
- int[] arrayOfInt6 = { 0, 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 20, 20, 20, 21, 21, 21, 22, 22, 23, 23, 23, 24, 24, 24, 25, 25, 25, 25, 26, 26, 27, 27, 28, 28, 28, 28, 29, 29, 30, 29, 31, 31, 31, 31, 32, 32, 33, 33, 34, 34, 34, 34, 35, 35, 36, 36, 37, 37, 37, 38, 38, 39, 39, 39, 40, 40, 40, 41, 42, 42, 43, 43, 44, 44, 45, 45, 45, 46, 47, 47, 48, 48, 49, 50, 51, 51, 52, 52, 53, 53, 54, 55, 55, 56, 57, 57, 58, 59, 60, 60, 61, 62, 63, 63, 64, 65, 66, 67, 68, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, 91, 93, 94, 95, 96, 97, 98, 100, 101, 103, 104, 105, 107, 108, 110, 111, 113, 115, 116, 118, 119, 120, 122, 123, 125, 127, 128, 130, 132, 134, 135, 137, 139, 141, 143, 144, 146, 148, 150, 152, 154, 156, 158, 160, 163, 165, 167, 169, 171, 173, 175, 178, 180, 182, 185, 187, 189, 192, 194, 197, 199, 201, 204, 206, 209, 211, 214, 216, 219, 221, 224, 226, 229, 232, 234, 236, 239, 241, 245, 247, 250, 252, 255 };
- for (int k = 0; k < 256; k++){
- arrayOfByte[(2048 + k * 4)] = ((byte)arrayOfInt4[k]);
- arrayOfByte[(1 + (2048 + k * 4))] = ((byte)arrayOfInt5[k]);
- arrayOfByte[(2 + (2048 + k * 4))] = ((byte)arrayOfInt6[k]);
- arrayOfByte[(3 + (2048 + k * 4))] = -1;
- }
- GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, 256, 3, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, ByteBuffer.wrap(arrayOfByte));
- mMaskGrey1TextureId = OpenGLUtils.loadTexture(getContext(), "filter/calm_mask1.jpg");
- mMaskGrey2TextureId = OpenGLUtils.loadTexture(getContext(), "filter/calm_mask2.jpg");
- }
- });
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicCoolFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicCoolFilter.java
deleted file mode 100644
index 25d94fb..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicCoolFilter.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-
-import java.nio.ByteBuffer;
-
-public class MagicCoolFilter extends GPUImageFilter {
- private int[] mToneCurveTexture = {-1};
- private int mToneCurveTextureUniformLocation;
-
- public MagicCoolFilter(){
- super(MagicFilterType.COOL, R.raw.cool);
- }
-
- @Override
- protected void onDestroy(){
- super.onDestroy();
- GLES20.glDeleteTextures(1, mToneCurveTexture, 0);
- this.mToneCurveTexture[0] = -1;
- }
-
- @Override
- protected void onDrawArraysAfter(){
- if (this.mToneCurveTexture[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre() {
- if (this.mToneCurveTexture[0] != -1) {
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glUniform1i(this.mToneCurveTextureUniformLocation, 3);
- }
- }
-
- @Override
- protected void onInit() {
- super.onInit();
- mToneCurveTextureUniformLocation = GLES20.glGetUniformLocation(getProgram(), "curve");
- }
-
- @Override
- protected void onInitialized() {
- super.onInitialized();
- runOnDraw(new Runnable(){
- public void run(){
- GLES20.glGenTextures(1, mToneCurveTexture, 0);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);
- byte[] arrayOfByte = new byte[2048];
- int[] arrayOfInt1 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 3, 4, 5, 5, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 16, 16, 17, 18, 19, 20, 20, 21, 22, 23, 24, 24, 25, 26, 27, 28, 28, 29, 30, 31, 32, 33, 33, 34, 35, 36, 37, 38, 39, 39, 40, 41, 42, 43, 44, 45, 46, 47, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, 86, 87, 88, 90, 91, 92, 93, 94, 95, 97, 98, 99, 100, 102, 103, 104, 105, 107, 108, 109, 111, 112, 113, 115, 116, 117, 119, 120, 121, 123, 124, 126, 127, 128, 130, 131, 133, 134, 136, 137, 139, 140, 142, 143, 145, 146, 148, 149, 151, 152, 154, 155, 157, 158, 160, 161, 163, 165, 166, 168, 169, 171, 173, 174, 176, 177, 179, 181, 182, 184, 185, 187, 189, 190, 192, 194, 195, 197, 199, 200, 202, 204, 205, 207, 209, 210, 212, 214, 216, 217, 219, 221, 222, 224, 226, 228, 229, 231, 233, 234, 236, 238, 240, 241, 243, 245, 246, 248, 250, 252, 253, 255 };
- int[] arrayOfInt2 = { 0, 1, 2, 3, 4, 5, 6, 7, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 250, 251, 252, 253, 254, 255 };
- int[] arrayOfInt3 = { 0, 3, 6, 9, 11, 14, 17, 20, 23, 26, 28, 31, 34, 37, 40, 43, 45, 48, 51, 54, 57, 59, 62, 65, 68, 70, 73, 76, 79, 81, 84, 87, 89, 92, 95, 97, 100, 102, 105, 108, 110, 113, 115, 118, 120, 123, 125, 128, 130, 133, 135, 137, 140, 142, 144, 147, 149, 151, 153, 156, 158, 160, 162, 164, 166, 168, 171, 173, 175, 177, 179, 180, 182, 184, 186, 188, 190, 191, 193, 195, 197, 198, 200, 201, 203, 205, 206, 207, 209, 210, 212, 213, 214, 216, 217, 218, 219, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 234, 235, 236, 237, 237, 238, 239, 240, 240, 241, 242, 242, 243, 243, 244, 244, 245, 245, 246, 246, 247, 247, 248, 248, 248, 249, 249, 249, 250, 250, 250, 251, 251, 251, 251, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 };
- int[] arrayOfInt4 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 13, 17, 21, 24, 32, 36, 39, 46, 50, 53, 56, 62, 65, 68, 73, 75, 78, 80, 85, 87, 88, 92, 94, 95, 96, 99, 100, 102, 104, 106, 107, 109, 110, 112, 113, 115, 116, 117, 120, 121, 122, 123, 125, 126, 127, 129, 130, 131, 132, 134, 135, 136, 138, 139, 140, 141, 142, 143, 144, 146, 147, 148, 149, 150, 151, 152, 154, 154, 155, 156, 158, 159, 159, 161, 162, 163, 163, 165, 166, 166, 168, 169, 169, 170, 172, 172, 173, 175, 175, 176, 177, 178, 179, 180, 181, 182, 182, 184, 184, 185, 186, 187, 188, 188, 190, 190, 191, 192, 193, 194, 194, 196, 196, 197, 197, 199, 199, 200, 201, 202, 202, 203, 204, 205, 205, 207, 207, 208, 208, 210, 210, 211, 212, 213, 213, 214, 215, 215, 216, 217, 218, 218, 219, 220, 221, 221, 222, 223, 223, 224, 225, 226, 226, 227, 228, 228, 229, 230, 230, 231, 232, 232, 233, 234, 235, 235, 236, 237, 237, 238, 239, 239, 240, 240, 241, 242, 242, 243, 244, 244, 245, 246, 246, 247, 248, 248, 249, 249, 250, 251, 251, 252, 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 };
- for (int i = 0; i < 256; i++){
- arrayOfByte[(i * 4)] = ((byte)arrayOfInt1[i]);
- arrayOfByte[(1 + i * 4)] = ((byte)arrayOfInt2[i]);
- arrayOfByte[(2 + i * 4)] = ((byte)arrayOfInt3[i]);
- arrayOfByte[(3 + i * 4)] = ((byte)arrayOfInt4[i]);
- }
- int[] arrayOfInt5 = { 0, 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 20, 20, 20, 21, 21, 21, 22, 22, 23, 23, 23, 24, 24, 24, 25, 25, 25, 25, 26, 26, 27, 27, 28, 28, 28, 28, 29, 29, 30, 29, 31, 31, 31, 31, 32, 32, 33, 33, 34, 34, 34, 34, 35, 35, 36, 36, 37, 37, 37, 38, 38, 39, 39, 39, 40, 40, 40, 41, 42, 42, 43, 43, 44, 44, 45, 45, 45, 46, 47, 47, 48, 48, 49, 50, 51, 51, 52, 52, 53, 53, 54, 55, 55, 56, 57, 57, 58, 59, 60, 60, 61, 62, 63, 63, 64, 65, 66, 67, 68, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, 91, 93, 94, 95, 96, 97, 98, 100, 101, 103, 104, 105, 107, 108, 110, 111, 113, 115, 116, 118, 119, 120, 122, 123, 125, 127, 128, 130, 132, 134, 135, 137, 139, 141, 143, 144, 146, 148, 150, 152, 154, 156, 158, 160, 163, 165, 167, 169, 171, 173, 175, 178, 180, 182, 185, 187, 189, 192, 194, 197, 199, 201, 204, 206, 209, 211, 214, 216, 219, 221, 224, 226, 229, 232, 234, 236, 239, 241, 245, 247, 250, 252, 255 };
- for (int j = 0; j < 256; j++){
- arrayOfByte[(1024 + j * 4)] = ((byte)arrayOfInt5[j]);
- arrayOfByte[(1 + (1024 + j * 4))] = ((byte)arrayOfInt5[j]);
- arrayOfByte[(2 + (1024 + j * 4))] = ((byte)arrayOfInt5[j]);
- arrayOfByte[(3 + (1024 + j * 4))] = -1;
- }
- GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, 256, 2, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, ByteBuffer.wrap(arrayOfByte));
- }
- });
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicCrayonFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicCrayonFilter.java
deleted file mode 100644
index 5f432eb..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicCrayonFilter.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-
-public class MagicCrayonFilter extends GPUImageFilter {
-
- private int mSingleStepOffsetLocation;
- //1.0 - 5.0
- private int mStrengthLocation;
-
- public MagicCrayonFilter(){
- super(MagicFilterType.CRAYON, R.raw.crayon);
- }
-
- @Override
- protected void onInit() {
- super.onInit();
- mSingleStepOffsetLocation = GLES20.glGetUniformLocation(getProgram(), "singleStepOffset");
- mStrengthLocation = GLES20.glGetUniformLocation(getProgram(), "strength");
- setFloat(mStrengthLocation, 2.0f);
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- }
-
- @Override
- protected void onInitialized(){
- super.onInitialized();
- setFloat(mStrengthLocation, 0.5f);
- }
-
- @Override
- public void onInputSizeChanged(final int width, final int height) {
- setFloatVec2(mSingleStepOffsetLocation, new float[] {1.0f / width, 1.0f / height});
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicEarlyBirdFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicEarlyBirdFilter.java
deleted file mode 100644
index 2f53954..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicEarlyBirdFilter.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-import com.seu.magicfilter.utils.OpenGLUtils;
-
-public class MagicEarlyBirdFilter extends GPUImageFilter {
- private int[] inputTextureHandles = {-1,-1,-1,-1,-1};
- private int[] inputTextureUniformLocations = {-1,-1,-1,-1,-1};
- protected int mGLStrengthLocation;
-
- public MagicEarlyBirdFilter(){
- super(MagicFilterType.EARLYBIRD, R.raw.earlybird);
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- GLES20.glDeleteTextures(inputTextureHandles.length, inputTextureHandles, 0);
- for(int i = 0; i < inputTextureHandles.length; i++)
- inputTextureHandles[i] = -1;
- }
-
- @Override
- protected void onDrawArraysAfter(){
- for(int i = 0; i < inputTextureHandles.length
- && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3));
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre(){
- for(int i = 0; i < inputTextureHandles.length
- && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3) );
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, inputTextureHandles[i]);
- GLES20.glUniform1i(inputTextureUniformLocations[i], (i+3));
- }
- }
-
- @Override
- protected void onInit(){
- super.onInit();
- for(int i=0; i < inputTextureUniformLocations.length; i++)
- inputTextureUniformLocations[i] = GLES20.glGetUniformLocation(getProgram(), "inputImageTexture"+(2+i));
- mGLStrengthLocation = GLES20.glGetUniformLocation(getProgram(), "strength");
- }
-
- @Override
- protected void onInitialized(){
- super.onInitialized();
- setFloat(mGLStrengthLocation, 1.0f);
- runOnDraw(new Runnable(){
- public void run(){
- inputTextureHandles[0] = OpenGLUtils.loadTexture(getContext(), "filter/earlybirdcurves.png");
- inputTextureHandles[1] = OpenGLUtils.loadTexture(getContext(), "filter/earlybirdoverlaymap_new.png");
- inputTextureHandles[2] = OpenGLUtils.loadTexture(getContext(), "filter/vignettemap_new.png");
- inputTextureHandles[3] = OpenGLUtils.loadTexture(getContext(), "filter/earlybirdblowout.png");
- inputTextureHandles[4] = OpenGLUtils.loadTexture(getContext(), "filter/earlybirdmap.png");
- }
- });
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicEmeraldFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicEmeraldFilter.java
deleted file mode 100644
index 967941a..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicEmeraldFilter.java
+++ /dev/null
@@ -1,88 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-
-import java.nio.ByteBuffer;
-
-public class MagicEmeraldFilter extends GPUImageFilter {
- private int[] mToneCurveTexture = {-1};
- private int mToneCurveTextureUniformLocation;
-
- public MagicEmeraldFilter(){
- super(MagicFilterType.EMERALD, R.raw.emerald);
- }
-
- @Override
- protected void onDestroy(){
- super.onDestroy();
- GLES20.glDeleteTextures(1, mToneCurveTexture, 0);
- mToneCurveTexture[0] = -1;
- }
-
- @Override
- protected void onDrawArraysAfter(){
- if (mToneCurveTexture[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre(){
- if (mToneCurveTexture[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glUniform1i(mToneCurveTextureUniformLocation, 3);
- }
- }
-
- @Override
- protected void onInit(){
- super.onInit();
- mToneCurveTextureUniformLocation = GLES20.glGetUniformLocation(getProgram(), "curve");
- }
-
- @Override
- protected void onInitialized(){
- super.onInitialized();
- runOnDraw(new Runnable(){
- public void run(){
- GLES20.glGenTextures(1, mToneCurveTexture, 0);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);
- byte[] arrayOfByte = new byte[2048];
- int[] arrayOfInt1 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 7, 8, 9, 10, 12, 13, 14, 17, 18, 19, 21, 22, 23, 25, 26, 29, 30, 31, 32, 34, 35, 36, 39, 40, 41, 43, 44, 45, 46, 48, 50, 51, 53, 54, 55, 56, 58, 60, 61, 62, 64, 65, 66, 67, 69, 70, 72, 73, 75, 76, 77, 78, 79, 81, 82, 84, 85, 87, 88, 89, 90, 91, 92, 94, 96, 97, 98, 99, 101, 102, 103, 104, 105, 106, 107, 110, 111, 112, 113, 114, 115, 116, 117, 119, 120, 121, 122, 123, 125, 126, 127, 128, 129, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 173, 174, 175, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 184, 185, 186, 187, 188, 189, 190, 191, 191, 192, 193, 194, 195, 196, 197, 197, 198, 199, 200, 201, 201, 202, 203, 204, 205, 206, 206, 207, 208, 209, 210, 210, 211, 212, 213, 213, 214, 215, 216, 216, 217, 218, 219, 220, 220, 221, 222, 223, 223, 224, 225, 226, 226, 227, 228, 228, 229, 230, 231, 231, 232, 233, 234, 234, 235, 236, 236, 237, 237, 238, 239, 239, 240, 241, 242, 242, 243, 244, 244, 245, 246, 247, 247, 248, 249, 249, 250, 251, 251, 252, 253, 254, 254, 255 };
- int[] arrayOfInt2 = { 0, 0, 0, 0, 0, 0, 1, 3, 4, 5, 7, 8, 9, 10, 12, 13, 14, 16, 18, 19, 21, 22, 23, 25, 26, 27, 29, 30, 31, 32, 34, 35, 36, 37, 39, 40, 41, 43, 44, 45, 46, 48, 50, 51, 53, 54, 55, 56, 58, 59, 60, 61, 62, 64, 65, 66, 67, 69, 70, 71, 72, 73, 75, 76, 77, 78, 79, 82, 83, 84, 85, 87, 88, 89, 90, 91, 92, 94, 95, 96, 97, 98, 99, 101, 102, 103, 104, 105, 106, 107, 109, 111, 112, 113, 114, 115, 116, 117, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 131, 132, 133, 134, 135, 136, 137, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 184, 185, 186, 188, 189, 190, 191, 191, 192, 193, 194, 195, 196, 197, 197, 198, 199, 200, 201, 201, 202, 203, 204, 205, 206, 206, 207, 209, 210, 210, 211, 212, 213, 213, 214, 215, 216, 216, 217, 218, 219, 220, 220, 221, 222, 223, 223, 224, 225, 226, 226, 227, 228, 229, 230, 231, 231, 232, 233, 234, 234, 235, 236, 237, 237, 238, 239, 239, 240, 241, 242, 242, 243, 244, 244, 245, 247, 247, 248, 249, 249, 250, 251, 251, 252, 253, 254, 254, 255, 255, 255, 255, 255, 255 };
- int[] arrayOfInt3 = { 0, 1, 3, 4, 5, 7, 8, 9, 10, 12, 13, 14, 16, 17, 18, 19, 21, 22, 23, 25, 26, 27, 29, 30, 31, 32, 34, 35, 36, 37, 39, 40, 41, 43, 44, 45, 46, 48, 49, 50, 51, 53, 54, 55, 56, 58, 59, 60, 61, 62, 64, 65, 66, 67, 69, 70, 71, 72, 73, 75, 76, 77, 78, 79, 81, 82, 83, 84, 85, 87, 88, 89, 90, 91, 92, 94, 95, 96, 97, 98, 99, 101, 102, 103, 104, 105, 106, 107, 109, 110, 111, 112, 113, 114, 115, 116, 117, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 184, 185, 186, 187, 188, 189, 190, 191, 191, 192, 193, 194, 195, 196, 197, 197, 198, 199, 200, 201, 201, 202, 203, 204, 205, 206, 206, 207, 208, 209, 210, 210, 211, 212, 213, 213, 214, 215, 216, 216, 217, 218, 219, 220, 220, 221, 222, 223, 223, 224, 225, 226, 226, 227, 228, 228, 229, 230, 231, 231, 232, 233, 234, 234, 235, 236, 237, 237, 238, 239, 239, 240, 241, 242, 242, 243, 244, 244, 245, 246, 247, 247, 248, 249, 249, 250, 251, 251, 252, 253, 254, 254, 255 };
- for (int i = 0; i < 256; i++){
- arrayOfByte[(i * 4)] = ((byte)arrayOfInt1[i]);
- arrayOfByte[(1 + i * 4)] = ((byte)arrayOfInt2[i]);
- arrayOfByte[(2 + i * 4)] = ((byte)arrayOfInt3[i]);
- arrayOfByte[(3 + i * 4)] = -1;
- }
- int[] arrayOfInt4 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 60, 61, 62, 63, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 123, 124, 125, 126, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 164, 165, 166, 167, 168, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 200, 201, 202, 203, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 224, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 255, 255, 255, 255, 255 };
- int[] arrayOfInt5 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 132, 133, 135, 136, 137, 138, 139, 140, 141, 142, 143, 145, 146, 147, 148, 149, 150, 151, 152, 154, 155, 156, 157, 158, 159, 160, 161, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 223, 224, 225, 226, 227, 228, 229, 229, 230, 231, 232, 233, 233, 234, 235, 236, 237, 237, 238, 239, 240, 240, 241, 242, 243, 243, 244, 245, 245, 246, 247, 247, 248, 249, 249, 250, 250, 251, 252, 252, 253, 253, 254, 254, 255 };
- int[] arrayOfInt6 = { 0, 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 20, 20, 20, 21, 21, 21, 22, 22, 23, 23, 23, 24, 24, 24, 25, 25, 25, 25, 26, 26, 27, 27, 28, 28, 28, 28, 29, 29, 30, 29, 31, 31, 31, 31, 32, 32, 33, 33, 34, 34, 34, 34, 35, 35, 36, 36, 37, 37, 37, 38, 38, 39, 39, 39, 40, 40, 40, 41, 42, 42, 43, 43, 44, 44, 45, 45, 45, 46, 47, 47, 48, 48, 49, 50, 51, 51, 52, 52, 53, 53, 54, 55, 55, 56, 57, 57, 58, 59, 60, 60, 61, 62, 63, 63, 64, 65, 66, 67, 68, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, 91, 93, 94, 95, 96, 97, 98, 100, 101, 103, 104, 105, 107, 108, 110, 111, 113, 115, 116, 118, 119, 120, 122, 123, 125, 127, 128, 130, 132, 134, 135, 137, 139, 141, 143, 144, 146, 148, 150, 152, 154, 156, 158, 160, 163, 165, 167, 169, 171, 173, 175, 178, 180, 182, 185, 187, 189, 192, 194, 197, 199, 201, 204, 206, 209, 211, 214, 216, 219, 221, 224, 226, 229, 232, 234, 236, 239, 241, 245, 247, 250, 252, 255 };
- for (int j = 0; j < 256; j++){
- arrayOfByte[(1024 + j * 4)] = ((byte)arrayOfInt5[j]);
- arrayOfByte[(1 + (1024 + j * 4))] = ((byte)arrayOfInt4[j]);
- arrayOfByte[(2 + (1024 + j * 4))] = ((byte)arrayOfInt6[j]);
- arrayOfByte[(3 + (1024 + j * 4))] = -1;
- }
- GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, 256, 2, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, ByteBuffer.wrap(arrayOfByte));
- }
- });
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicEvergreenFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicEvergreenFilter.java
deleted file mode 100644
index 91c592f..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicEvergreenFilter.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-
-import java.nio.ByteBuffer;
-
-public class MagicEvergreenFilter extends GPUImageFilter {
- private int[] mToneCurveTexture = {-1};
- private int mToneCurveTextureUniformLocation;
-
- public MagicEvergreenFilter(){
- super(MagicFilterType.EVERGREEN, R.raw.evergreen);
- }
-
- @Override
- protected void onDestroy(){
- super.onDestroy();
- GLES20.glDeleteTextures(1, mToneCurveTexture, 0);
- mToneCurveTexture[0] = -1;
- }
-
- @Override
- protected void onDrawArraysAfter(){
- if (mToneCurveTexture[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre(){
- if (mToneCurveTexture[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glUniform1i(mToneCurveTextureUniformLocation, 3);
- }
- }
-
- @Override
- protected void onInit(){
- super.onInit();
- mToneCurveTextureUniformLocation = GLES20.glGetUniformLocation(getProgram(), "curve");
- }
- @Override
- protected void onInitialized() {
- super.onInitialized();
- runOnDraw(new Runnable(){
- public void run(){
- GLES20.glGenTextures(1, mToneCurveTexture, 0);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);
- byte[] arrayOfByte = new byte[1024];
- int[] arrayOfInt1 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255 };
- int[] arrayOfInt2 = { 0, 1, 1, 2, 3, 4, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 15, 16, 17, 17, 18, 19, 20, 21, 21, 22, 23, 24, 24, 25, 26, 27, 28, 28, 29, 30, 31, 32, 32, 33, 34, 35, 36, 37, 38, 38, 39, 40, 41, 42, 43, 44, 45, 46, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 90, 91, 92, 93, 94, 95, 96, 97, 99, 100, 101, 102, 103, 104, 105, 107, 108, 109, 110, 111, 112, 113, 115, 116, 117, 118, 119, 120, 122, 123, 124, 125, 126, 127, 129, 130, 131, 132, 133, 135, 136, 137, 138, 139, 140, 142, 143, 144, 145, 146, 148, 149, 150, 151, 152, 153, 155, 156, 157, 158, 159, 160, 162, 163, 164, 165, 166, 167, 169, 170, 171, 172, 173, 174, 175, 177, 178, 179, 180, 181, 182, 183, 185, 186, 187, 188, 189, 190, 191, 192, 193, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 241, 242, 243, 244, 245, 246, 247, 247, 248, 249, 250, 251, 252, 252, 253, 254, 255 };
- int[] arrayOfInt3 = { 0, 2, 4, 6, 8, 10, 11, 13, 16, 17, 19, 20, 21, 23, 24, 25, 27, 28, 29, 31, 32, 33, 34, 36, 38, 39, 40, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, 53, 54, 56, 58, 59, 60, 61, 62, 63, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, 77, 78, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 144, 145, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 157, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 168, 169, 170, 171, 172, 173, 175, 176, 177, 177, 178, 179, 180, 181, 182, 183, 184, 185, 185, 186, 187, 188, 190, 191, 192, 193, 193, 194, 195, 196, 197, 198, 199, 200, 200, 201, 202, 203, 205, 206, 207, 207, 208, 209, 210, 211, 212, 213, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 225, 226, 227, 228, 229, 230, 231, 231, 232, 234, 235, 236, 237, 237, 238, 239, 240, 241, 242, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 };
- int[] arrayOfInt4 = { 0, 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 20, 20, 20, 21, 21, 21, 22, 22, 23, 23, 23, 24, 24, 24, 25, 25, 25, 25, 26, 26, 27, 27, 28, 28, 28, 28, 29, 29, 30, 29, 31, 31, 31, 31, 32, 32, 33, 33, 34, 34, 34, 34, 35, 35, 36, 36, 37, 37, 37, 38, 38, 39, 39, 39, 40, 40, 40, 41, 42, 42, 43, 43, 44, 44, 45, 45, 45, 46, 47, 47, 48, 48, 49, 50, 51, 51, 52, 52, 53, 53, 54, 55, 55, 56, 57, 57, 58, 59, 60, 60, 61, 62, 63, 63, 64, 65, 66, 67, 68, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, 91, 93, 94, 95, 96, 97, 98, 100, 101, 103, 104, 105, 107, 108, 110, 111, 113, 115, 116, 118, 119, 120, 122, 123, 125, 127, 128, 130, 132, 134, 135, 137, 139, 141, 143, 144, 146, 148, 150, 152, 154, 156, 158, 160, 163, 165, 167, 169, 171, 173, 175, 178, 180, 182, 185, 187, 189, 192, 194, 197, 199, 201, 204, 206, 209, 211, 214, 216, 219, 221, 224, 226, 229, 232, 234, 236, 239, 241, 245, 247, 250, 252, 255 };
- for (int i = 0; i < 256; i++)
- {
- arrayOfByte[(i * 4)] = ((byte)arrayOfInt1[i]);
- arrayOfByte[(1 + i * 4)] = ((byte)arrayOfInt2[i]);
- arrayOfByte[(2 + i * 4)] = ((byte)arrayOfInt3[i]);
- arrayOfByte[(3 + i * 4)] = ((byte)arrayOfInt4[i]);
- }
- GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, 256, 1, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, ByteBuffer.wrap(arrayOfByte));
- }
- });
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicFreudFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicFreudFilter.java
deleted file mode 100644
index 9bbbaa9..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicFreudFilter.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-import com.seu.magicfilter.utils.OpenGLUtils;
-
-public class MagicFreudFilter extends GPUImageFilter {
- private int mTexelHeightUniformLocation;
- private int mTexelWidthUniformLocation;
- private int[] inputTextureHandles = {-1};
- private int[] inputTextureUniformLocations = {-1};
- private int mGLStrengthLocation;
-
- public MagicFreudFilter(){
- super(MagicFilterType.FREUD, R.raw.freud);
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- GLES20.glDeleteTextures(1, inputTextureHandles, 0);
- for(int i = 0; i < inputTextureHandles.length; i++)
- inputTextureHandles[i] = -1;
- }
-
- @Override
- protected void onDrawArraysAfter(){
- for (int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3));
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre(){
- for (int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3) );
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, inputTextureHandles[i]);
- GLES20.glUniform1i(inputTextureUniformLocations[i], (i+3));
- }
- }
-
- @Override
- protected void onInit(){
- super.onInit();
- inputTextureUniformLocations[0] = GLES20.glGetUniformLocation(getProgram(), "inputImageTexture2");
-
- mTexelWidthUniformLocation = GLES20.glGetUniformLocation(getProgram(), "inputImageTextureWidth");
- mTexelHeightUniformLocation = GLES20.glGetUniformLocation(getProgram(), "inputImageTextureHeight");
-
- mGLStrengthLocation = GLES20.glGetUniformLocation(getProgram(), "strength");
- }
-
- @Override
- protected void onInitialized(){
- super.onInitialized();
- setFloat(mGLStrengthLocation, 1.0f);
- runOnDraw(new Runnable(){
- public void run(){
- inputTextureHandles[0] = OpenGLUtils.loadTexture(getContext(), "filter/freud_rand.png");
- }
- });
- }
-
- @Override
- public void onInputSizeChanged(int width, int height) {
- super.onInputSizeChanged(width, height);
- GLES20.glUniform1f(mTexelWidthUniformLocation, (float)width);
- GLES20.glUniform1f(mTexelHeightUniformLocation, (float)height);
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicHealthyFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicHealthyFilter.java
deleted file mode 100644
index 27bb7d3..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicHealthyFilter.java
+++ /dev/null
@@ -1,109 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-
-import java.nio.ByteBuffer;
-
-public class MagicHealthyFilter extends GPUImageFilter{
-
- private int[] mToneCurveTexture = {-1};
- private int mToneCurveTextureUniformLocation;
- private int mMaskGrey1TextureId = -1;
- private int mMaskGrey1UniformLocation;
- private int mTexelHeightUniformLocation;
- private int mTexelWidthUniformLocation;
-
- public MagicHealthyFilter(){
- super(MagicFilterType.HEALTHY, R.raw.healthy);
- }
-
- @Override
- protected void onDestroy(){
- super.onDestroy();
- GLES20.glDeleteTextures(1, mToneCurveTexture, 0);
- mToneCurveTexture[0] = -1;
- int[] texture = new int[1];
- texture[0] = mMaskGrey1TextureId;
- GLES20.glDeleteTextures(1, texture, 0);
- mMaskGrey1TextureId = -1;
- }
-
- @Override
- protected void onDrawArraysAfter(){
- if (mToneCurveTexture[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- if (mMaskGrey1TextureId != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE4);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre(){
- if (mToneCurveTexture[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glUniform1i(mToneCurveTextureUniformLocation, 3);
- }
- if (mMaskGrey1TextureId != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE4);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mMaskGrey1TextureId);
- GLES20.glUniform1i(mMaskGrey1UniformLocation, 4);
- }
- }
-
- @Override
- protected void onInit(){
- super.onInit();
- mToneCurveTextureUniformLocation = GLES20.glGetUniformLocation(getProgram(), "curve");
- mMaskGrey1UniformLocation = GLES20.glGetUniformLocation(getProgram(), "mask");
- mTexelWidthUniformLocation = GLES20.glGetUniformLocation(getProgram(), "texelWidthOffset");
- mTexelHeightUniformLocation = GLES20.glGetUniformLocation(getProgram(), "texelHeightOffset");
- }
-
- @Override
- protected void onInitialized(){
- super.onInitialized();
- runOnDraw(new Runnable(){
- public void run(){
- GLES20.glGenTextures(1, mToneCurveTexture, 0);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);
- byte[] arrayOfByte = new byte[1024];
- int[] arrayOfInt1 = { 95, 95, 96, 97, 97, 98, 99, 99, 100, 101, 101, 102, 103, 104, 104, 105, 106, 106, 107, 108, 108, 109, 110, 111, 111, 112, 113, 113, 114, 115, 115, 116, 117, 117, 118, 119, 120, 120, 121, 122, 122, 123, 124, 124, 125, 126, 127, 127, 128, 129, 129, 130, 131, 131, 132, 133, 133, 134, 135, 136, 136, 137, 138, 138, 139, 140, 140, 141, 142, 143, 143, 144, 145, 145, 146, 147, 147, 148, 149, 149, 150, 151, 152, 152, 153, 154, 154, 155, 156, 156, 157, 158, 159, 159, 160, 161, 161, 162, 163, 163, 164, 165, 165, 166, 167, 168, 168, 169, 170, 170, 171, 172, 172, 173, 174, 175, 175, 176, 177, 177, 178, 179, 179, 180, 181, 181, 182, 183, 184, 184, 185, 186, 186, 187, 188, 188, 189, 190, 191, 191, 192, 193, 193, 194, 195, 195, 196, 197, 197, 198, 199, 200, 200, 201, 202, 202, 203, 204, 204, 205, 206, 207, 207, 208, 209, 209, 210, 211, 211, 212, 213, 213, 214, 215, 216, 216, 217, 218, 218, 219, 220, 220, 221, 222, 223, 223, 224, 225, 225, 226, 227, 227, 228, 229, 229, 230, 231, 232, 232, 233, 234, 234, 235, 236, 236, 237, 238, 239, 239, 240, 241, 241, 242, 243, 243, 244, 245, 245, 246, 247, 248, 248, 249, 250, 250, 251, 252, 252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 };
- int[] arrayOfInt2 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 5, 7, 8, 9, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 60, 61, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 168, 169, 170, 171, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 189, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 204, 205, 206, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 219, 220, 221, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 234, 235, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 249, 249, 250, 251, 252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255 };
- int[] arrayOfInt3 = { 0, 1, 2, 3, 3, 4, 5, 6, 7, 8, 9, 10, 10, 11, 12, 13, 14, 15, 16, 17, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 95, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110, 111, 112, 114, 115, 116, 117, 118, 119, 120, 121, 122, 124, 125, 126, 127, 128, 129, 130, 131, 132, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 249, 250, 251, 252, 253, 254, 255 };
- for (int i = 0; i < 256; i++)
- {
- arrayOfByte[(i * 4)] = ((byte)arrayOfInt3[i]);
- arrayOfByte[(1 + i * 4)] = ((byte)arrayOfInt2[i]);
- arrayOfByte[(2 + i * 4)] = ((byte)arrayOfInt1[i]);
- arrayOfByte[(3 + i * 4)] = -1;
- }
- GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, 256, 1, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, ByteBuffer.wrap(arrayOfByte));
- }
- });
- }
-
- @Override
- public void onInputSizeChanged(int width, int height){
- super.onInputSizeChanged(width, height);
- GLES20.glUniform1f(mTexelWidthUniformLocation, 1.0f / width);
- GLES20.glUniform1f(mTexelHeightUniformLocation, 1.0f / height);
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicHefeFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicHefeFilter.java
deleted file mode 100644
index a7324e6..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicHefeFilter.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-import com.seu.magicfilter.utils.OpenGLUtils;
-
-public class MagicHefeFilter extends GPUImageFilter {
- private int[] inputTextureHandles = {-1,-1,-1,-1};
- private int[] inputTextureUniformLocations = {-1,-1,-1,-1};
- private int mGLStrengthLocation;
-
- public MagicHefeFilter(){
- super(MagicFilterType.HEFE, R.raw.hefe);
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- GLES20.glDeleteTextures(inputTextureHandles.length, inputTextureHandles, 0);
- for(int i = 0; i < inputTextureHandles.length; i++) {
- inputTextureHandles[i] = -1;
- }
- }
-
- @Override
- protected void onDrawArraysAfter(){
- for(int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3));
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre(){
- for(int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3) );
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, inputTextureHandles[i]);
- GLES20.glUniform1i(inputTextureUniformLocations[i], (i+3));
- }
- }
-
- @Override
- protected void onInit(){
- super.onInit();
- for(int i=0; i < inputTextureUniformLocations.length; i++) {
- inputTextureUniformLocations[i] = GLES20.glGetUniformLocation(getProgram(), "inputImageTexture" + (2 + i));
- }
- mGLStrengthLocation = GLES20.glGetUniformLocation(getProgram(), "strength");
- }
-
- @Override
- protected void onInitialized(){
- super.onInitialized();
- setFloat(mGLStrengthLocation, 1.0f);
- runOnDraw(new Runnable(){
- public void run(){
- inputTextureHandles[0] = OpenGLUtils.loadTexture(getContext(), "filter/edgeburn.png");
- inputTextureHandles[1] = OpenGLUtils.loadTexture(getContext(), "filter/hefemap.png");
- inputTextureHandles[2] = OpenGLUtils.loadTexture(getContext(), "filter/hefemetal.png");
- inputTextureHandles[3] = OpenGLUtils.loadTexture(getContext(), "filter/hefesoftlight.png");
- }
- });
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicHudsonFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicHudsonFilter.java
deleted file mode 100644
index 10669c5..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicHudsonFilter.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-import com.seu.magicfilter.utils.OpenGLUtils;
-
-public class MagicHudsonFilter extends GPUImageFilter {
- private int[] inputTextureHandles = {-1,-1,-1};
- private int[] inputTextureUniformLocations = {-1,-1,-1};
- private int mGLStrengthLocation;
-
- public MagicHudsonFilter(){
- super(MagicFilterType.HUDSON, R.raw.hudson);
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- GLES20.glDeleteTextures(inputTextureHandles.length, inputTextureHandles, 0);
- for(int i = 0; i < inputTextureHandles.length; i++)
- inputTextureHandles[i] = -1;
- }
-
- @Override
- protected void onDrawArraysAfter(){
- for(int i = 0; i < inputTextureHandles.length
- && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3));
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre(){
- for(int i = 0; i < inputTextureHandles.length
- && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3) );
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, inputTextureHandles[i]);
- GLES20.glUniform1i(inputTextureUniformLocations[i], (i+3));
- }
- }
-
- @Override
- protected void onInit(){
- super.onInit();
- for(int i=0; i < inputTextureUniformLocations.length; i++) {
- inputTextureUniformLocations[i] = GLES20.glGetUniformLocation(getProgram(), "inputImageTexture" + (2 + i));
- }
- mGLStrengthLocation = GLES20.glGetUniformLocation(getProgram(), "strength");
- }
-
- @Override
- protected void onInitialized(){
- super.onInitialized();
- setFloat(mGLStrengthLocation, 1.0f);
- runOnDraw(new Runnable(){
- public void run(){
- inputTextureHandles[0] = OpenGLUtils.loadTexture(getContext(), "filter/ohudsonbackground.png");
- inputTextureHandles[1] = OpenGLUtils.loadTexture(getContext(), "filter/overlaymap.png");
- inputTextureHandles[2] = OpenGLUtils.loadTexture(getContext(), "filter/hudsonmap.png");
- }
- });
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicImageAdjustFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicImageAdjustFilter.java
deleted file mode 100644
index 6b1a027..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicImageAdjustFilter.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import com.seu.magicfilter.base.MagicBaseGroupFilter;
-import com.seu.magicfilter.base.gpuimage.GPUImageBrightnessFilter;
-import com.seu.magicfilter.base.gpuimage.GPUImageContrastFilter;
-import com.seu.magicfilter.base.gpuimage.GPUImageExposureFilter;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.base.gpuimage.GPUImageHueFilter;
-import com.seu.magicfilter.base.gpuimage.GPUImageSaturationFilter;
-import com.seu.magicfilter.base.gpuimage.GPUImageSharpenFilter;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class MagicImageAdjustFilter extends MagicBaseGroupFilter {
-
- public MagicImageAdjustFilter() {
- super(initFilters());
- }
-
- private static List initFilters(){
- List filters = new ArrayList();
- filters.add(new GPUImageContrastFilter());
- filters.add(new GPUImageBrightnessFilter());
- filters.add(new GPUImageExposureFilter());
- filters.add(new GPUImageHueFilter());
- filters.add(new GPUImageSaturationFilter());
- filters.add(new GPUImageSharpenFilter());
- return filters;
- }
-
- public void setSharpness(final float range){
- ((GPUImageSharpenFilter) filters.get(5)).setSharpness(range);
- }
-
- public void setHue(final float range){
- ((GPUImageHueFilter) filters.get(3)).setHue(range);
- }
-
- public void setBrightness(final float range){
- ((GPUImageBrightnessFilter) filters.get(1)).setBrightness(range);
- }
-
- public void setContrast(final float range){
- ((GPUImageContrastFilter) filters.get(0)).setContrast(range);
- }
-
- public void setSaturation(final float range){
- ((GPUImageSaturationFilter) filters.get(4)).setSaturation(range);
- }
-
- public void setExposure(final float range){
- ((GPUImageExposureFilter) filters.get(2)).setExposure(range);
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicInkwellFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicInkwellFilter.java
deleted file mode 100644
index da48b76..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicInkwellFilter.java
+++ /dev/null
@@ -1,66 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-import com.seu.magicfilter.utils.OpenGLUtils;
-
-public class MagicInkwellFilter extends GPUImageFilter {
- private int[] inputTextureHandles = {-1};
- private int[] inputTextureUniformLocations = {-1};
- private int mGLStrengthLocation;
-
- public MagicInkwellFilter(){
- super(MagicFilterType.INKWELL, R.raw.inkwell);
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- GLES20.glDeleteTextures(1, inputTextureHandles, 0);
- for(int i = 0; i < inputTextureHandles.length; i++)
- inputTextureHandles[i] = -1;
- }
-
- @Override
- protected void onDrawArraysAfter(){
- for(int i = 0; i < inputTextureHandles.length
- && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3));
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre(){
- for(int i = 0; i < inputTextureHandles.length
- && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3) );
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, inputTextureHandles[i]);
- GLES20.glUniform1i(inputTextureUniformLocations[i], (i+3));
- }
- }
-
- @Override
- protected void onInit(){
- super.onInit();
- for(int i = 0; i < inputTextureUniformLocations.length; i++) {
- inputTextureUniformLocations[i] = GLES20.glGetUniformLocation(getProgram(), "inputImageTexture" + (2 + i));
- }
- mGLStrengthLocation = GLES20.glGetUniformLocation(getProgram(), "strength");
- }
-
- @Override
- protected void onInitialized(){
- super.onInitialized();
- setFloat(mGLStrengthLocation, 1.0f);
- runOnDraw(new Runnable(){
- public void run(){
- inputTextureHandles[0] = OpenGLUtils.loadTexture(getContext(), "filter/inkwellmap.png");
- }
- });
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicKevinFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicKevinFilter.java
deleted file mode 100644
index 3e44423..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicKevinFilter.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-import com.seu.magicfilter.utils.OpenGLUtils;
-
-public class MagicKevinFilter extends GPUImageFilter {
- private int[] inputTextureHandles = {-1};
- private int[] inputTextureUniformLocations = {-1};
- private int mGLStrengthLocation;
-
- public MagicKevinFilter(){
- super(MagicFilterType.KEVIN, R.raw.kevin_new);
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- GLES20.glDeleteTextures(1, inputTextureHandles, 0);
- for (int i = 0; i < inputTextureHandles.length; i++) {
- inputTextureHandles[i] = -1;
- }
- }
-
- @Override
- protected void onDrawArraysAfter(){
- for(int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3));
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre(){
- for(int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3) );
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, inputTextureHandles[i]);
- GLES20.glUniform1i(inputTextureUniformLocations[i], (i+3));
- }
- }
-
- @Override
- protected void onInit(){
- super.onInit();
- for(int i = 0; i < inputTextureUniformLocations.length; i++) {
- inputTextureUniformLocations[i] = GLES20.glGetUniformLocation(getProgram(), "inputImageTexture" + (2 + i));
- }
- mGLStrengthLocation = GLES20.glGetUniformLocation(getProgram(), "strength");
- }
-
- @Override
- protected void onInitialized(){
- super.onInitialized();
- setFloat(mGLStrengthLocation, 1.0f);
- runOnDraw(new Runnable(){
- public void run(){
- inputTextureHandles[0] = OpenGLUtils.loadTexture(getContext(), "filter/kelvinmap.png");
- }
- });
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicLatteFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicLatteFilter.java
deleted file mode 100644
index d6f5a6a..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicLatteFilter.java
+++ /dev/null
@@ -1,88 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-
-import java.nio.ByteBuffer;
-
-public class MagicLatteFilter extends GPUImageFilter {
- private int[] mToneCurveTexture = {-1};
- private int mToneCurveTextureUniformLocation;
-
- public MagicLatteFilter(){
- super(MagicFilterType.LATTE, R.raw.latte);
- }
-
- @Override
- protected void onDestroy(){
- super.onDestroy();
- GLES20.glDeleteTextures(1, mToneCurveTexture, 0);
- mToneCurveTexture[0] = -1;
- }
-
- @Override
- protected void onDrawArraysAfter(){
- if (mToneCurveTexture[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre(){
- if (mToneCurveTexture[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glUniform1i(mToneCurveTextureUniformLocation, 3);
- }
- }
-
- @Override
- protected void onInit(){
- super.onInit();
- mToneCurveTextureUniformLocation = GLES20.glGetUniformLocation(getProgram(), "curve");
- }
-
- @Override
- protected void onInitialized(){
- super.onInitialized();
- runOnDraw(new Runnable(){
- public void run(){
- GLES20.glGenTextures(1, mToneCurveTexture, 0);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);
- byte[] arrayOfByte = new byte[2048];
- int[] arrayOfInt1 = { 5, 6, 8, 9, 11, 12, 14, 15, 16, 18, 19, 21, 22, 23, 25, 26, 28, 29, 30, 32, 33, 34, 36, 37, 39, 40, 41, 43, 44, 45, 46, 48, 49, 50, 52, 53, 54, 55, 56, 58, 59, 60, 61, 62, 64, 65, 66, 67, 68, 69, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 108, 109, 110, 111, 112, 113, 114, 115, 115, 116, 117, 118, 119, 120, 120, 121, 122, 123, 124, 125, 125, 126, 127, 128, 129, 130, 130, 131, 132, 133, 134, 134, 135, 136, 137, 137, 138, 139, 140, 141, 141, 142, 143, 144, 145, 145, 146, 147, 148, 148, 149, 150, 151, 151, 152, 153, 154, 155, 155, 156, 157, 158, 158, 159, 160, 161, 162, 162, 163, 164, 165, 166, 166, 167, 168, 169, 170, 170, 171, 172, 173, 174, 174, 175, 176, 177, 178, 178, 179, 180, 181, 182, 183, 183, 184, 185, 186, 187, 188, 189, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255 };
- int[] arrayOfInt2 = { 5, 6, 8, 11, 12, 14, 15, 18, 19, 21, 22, 25, 26, 28, 29, 32, 33, 34, 36, 39, 40, 41, 43, 44, 46, 48, 49, 50, 52, 54, 55, 56, 58, 59, 61, 62, 64, 65, 66, 67, 69, 71, 72, 73, 74, 75, 76, 78, 79, 80, 81, 82, 83, 85, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 108, 108, 109, 110, 111, 112, 113, 114, 115, 115, 116, 117, 118, 119, 120, 120, 121, 122, 123, 125, 125, 126, 127, 128, 129, 130, 130, 131, 132, 133, 134, 134, 135, 136, 137, 137, 138, 139, 140, 141, 141, 142, 143, 144, 145, 145, 146, 147, 148, 148, 149, 149, 150, 151, 151, 152, 153, 154, 155, 155, 156, 157, 158, 158, 159, 160, 161, 162, 162, 163, 164, 165, 165, 166, 166, 167, 168, 169, 170, 170, 171, 172, 173, 174, 174, 175, 175, 176, 177, 178, 178, 179, 180, 181, 182, 183, 183, 184, 184, 185, 186, 187, 188, 189, 189, 190, 191, 192, 192, 193, 194, 195, 196, 197, 198, 198, 199, 199, 200, 201, 202, 203, 204, 205, 206, 206, 207, 208, 209, 210, 211, 212, 213, 213, 214, 215, 215, 216, 217, 218, 219, 219, 220, 221, 222, 223, 224, 225, 226, 226, 227, 228, 229, 230, 231, 232, 232, 233, 234, 235, 237, 238, 239, 240, 240, 241, 242, 243, 244, 245, 246, 246, 247, 248, 249, 250, 251, 252, 252, 253, 254, 255 };
- int[] arrayOfInt3 = { 5, 6, 8, 11, 12, 14, 15, 16, 18, 21, 22, 23, 25, 26, 28, 30, 32, 33, 34, 36, 37, 40, 41, 43, 44, 45, 46, 49, 50, 52, 53, 54, 55, 58, 59, 60, 61, 62, 64, 66, 67, 68, 69, 71, 72, 73, 75, 76, 77, 78, 79, 80, 81, 83, 85, 86, 87, 88, 89, 90, 92, 93, 94, 95, 95, 96, 97, 98, 99, 101, 102, 103, 104, 105, 106, 107, 108, 108, 109, 111, 112, 113, 114, 115, 115, 116, 117, 118, 119, 120, 120, 121, 123, 124, 125, 125, 126, 127, 128, 129, 130, 130, 131, 132, 133, 134, 134, 135, 136, 137, 137, 138, 139, 140, 141, 141, 142, 143, 144, 145, 145, 146, 147, 148, 148, 149, 150, 151, 151, 152, 153, 154, 155, 155, 156, 156, 157, 158, 158, 159, 160, 161, 162, 162, 163, 164, 165, 165, 166, 166, 167, 168, 169, 170, 170, 170, 171, 172, 173, 174, 174, 175, 176, 176, 177, 178, 178, 179, 180, 180, 181, 182, 183, 183, 184, 184, 185, 186, 187, 188, 189, 189, 189, 190, 191, 192, 192, 193, 194, 195, 196, 196, 197, 198, 198, 199, 199, 200, 201, 202, 202, 203, 204, 205, 206, 206, 207, 208, 209, 209, 210, 211, 212, 213, 213, 214, 215, 215, 215, 216, 217, 218, 218, 219, 220, 221, 221, 222, 223, 224, 224, 225, 226, 227, 227, 228, 229, 230, 230, 231, 232, 233, 233, 234, 235, 237, 237, 238, 239, 240, 240, 241, 242, 243, 243, 244 };
- for (int i = 0; i < 256; i++){
- arrayOfByte[(i * 4)] = ((byte)arrayOfInt1[i]);
- arrayOfByte[(1 + i * 4)] = ((byte)arrayOfInt2[i]);
- arrayOfByte[(2 + i * 4)] = ((byte)arrayOfInt3[i]);
- arrayOfByte[(3 + i * 4)] = -1;
- }
- int[] arrayOfInt4 = { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 10, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, 54, 55, 56, 57, 58, 60, 61, 62, 63, 64, 66, 67, 68, 69, 71, 72, 73, 74, 75, 77, 78, 79, 80, 81, 83, 84, 85, 86, 87, 89, 90, 91, 92, 93, 95, 96, 97, 98, 99, 101, 102, 103, 104, 105, 107, 108, 109, 110, 111, 113, 114, 115, 116, 117, 119, 120, 121, 122, 123, 125, 126, 127, 128, 129, 131, 132, 133, 134, 135, 137, 138, 139, 140, 141, 143, 144, 145, 146, 147, 149, 150, 151, 152, 153, 155, 156, 157, 158, 159, 161, 162, 163, 164, 165, 167, 168, 169, 170, 171, 173, 174, 175, 176, 177, 179, 180, 181, 182, 184, 185, 186, 187, 188, 190, 191, 192, 193, 194, 196, 197, 198, 199, 200, 202, 203, 204, 205, 206, 208, 209, 210, 211, 212, 214, 215, 216, 217, 218, 220, 221, 222, 223, 224, 226, 227, 228, 229, 230, 232, 233, 234, 235, 236, 238, 239, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240 };
- int[] arrayOfInt5 = { 0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 41, 42, 43, 44, 46, 47, 48, 49, 51, 52, 53, 54, 56, 57, 58, 59, 61, 62, 63, 65, 66, 67, 69, 70, 71, 73, 74, 75, 77, 78, 79, 81, 82, 83, 85, 86, 87, 89, 90, 92, 93, 94, 96, 97, 99, 100, 101, 103, 104, 106, 107, 108, 110, 111, 113, 114, 116, 117, 119, 120, 121, 123, 124, 126, 127, 129, 130, 132, 133, 135, 136, 138, 139, 140, 142, 143, 145, 146, 147, 149, 150, 151, 153, 154, 155, 157, 158, 159, 160, 162, 163, 164, 165, 167, 168, 169, 170, 171, 173, 174, 175, 176, 177, 178, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 210, 211, 212, 213, 214, 215, 215, 216, 217, 218, 219, 219, 220, 221, 222, 222, 223, 224, 225, 225, 226, 227, 227, 228, 229, 229, 230, 231, 231, 232, 233, 233, 234, 234, 235, 236, 236, 237, 237, 238, 238, 239, 240, 240, 241, 241, 242, 242, 243, 243, 244, 244, 244, 245, 245, 246, 246, 247, 247, 247, 248, 248, 249, 249, 249, 250, 250, 250, 251, 251, 251, 252, 252, 252, 252, 253, 253, 253, 253, 254, 254, 254, 254, 255, 255, 255 };
- int[] arrayOfInt6 = { 0, 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 20, 20, 20, 21, 21, 21, 22, 22, 23, 23, 23, 24, 24, 24, 25, 25, 25, 25, 26, 26, 27, 27, 28, 28, 28, 28, 29, 29, 30, 29, 31, 31, 31, 31, 32, 32, 33, 33, 34, 34, 34, 34, 35, 35, 36, 36, 37, 37, 37, 38, 38, 39, 39, 39, 40, 40, 40, 41, 42, 42, 43, 43, 44, 44, 45, 45, 45, 46, 47, 47, 48, 48, 49, 50, 51, 51, 52, 52, 53, 53, 54, 55, 55, 56, 57, 57, 58, 59, 60, 60, 61, 62, 63, 63, 64, 65, 66, 67, 68, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, 91, 93, 94, 95, 96, 97, 98, 100, 101, 103, 104, 105, 107, 108, 110, 111, 113, 115, 116, 118, 119, 120, 122, 123, 125, 127, 128, 130, 132, 134, 135, 137, 139, 141, 143, 144, 146, 148, 150, 152, 154, 156, 158, 160, 163, 165, 167, 169, 171, 173, 175, 178, 180, 182, 185, 187, 189, 192, 194, 197, 199, 201, 204, 206, 209, 211, 214, 216, 219, 221, 224, 226, 229, 232, 234, 236, 239, 241, 245, 247, 250, 252, 255 };
- for (int j = 0; j < 256; j++){
- arrayOfByte[(1024 + j * 4)] = ((byte)arrayOfInt5[j]);
- arrayOfByte[(1 + (1024 + j * 4))] = ((byte)arrayOfInt4[j]);
- arrayOfByte[(2 + (1024 + j * 4))] = ((byte)arrayOfInt6[j]);
- arrayOfByte[(3 + (1024 + j * 4))] = -1;
- }
- GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, 256, 2, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, ByteBuffer.wrap(arrayOfByte));
- }
- });
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicLomoFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicLomoFilter.java
deleted file mode 100644
index d81f990..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicLomoFilter.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-import com.seu.magicfilter.utils.OpenGLUtils;
-
-public class MagicLomoFilter extends GPUImageFilter{
- private int[] inputTextureHandles = {-1,-1};
- private int[] inputTextureUniformLocations = {-1,-1};
- private int mGLStrengthLocation;
-
- public MagicLomoFilter(){
- super(MagicFilterType.LOMO, R.raw.lomo);
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- GLES20.glDeleteTextures(inputTextureHandles.length, inputTextureHandles, 0);
- for(int i = 0; i < inputTextureHandles.length; i++)
- inputTextureHandles[i] = -1;
- }
-
- @Override
- protected void onDrawArraysAfter(){
- for(int i = 0; i < inputTextureHandles.length
- && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3));
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre(){
- for(int i = 0; i < inputTextureHandles.length
- && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3) );
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, inputTextureHandles[i]);
- GLES20.glUniform1i(inputTextureUniformLocations[i], (i+3));
- }
- }
-
- @Override
- protected void onInit(){
- super.onInit();
- for(int i=0; i < inputTextureUniformLocations.length; i++) {
- inputTextureUniformLocations[i] = GLES20.glGetUniformLocation(getProgram(), "inputImageTexture" + (2 + i));
- }
- mGLStrengthLocation = GLES20.glGetUniformLocation(getProgram(), "strength");
- }
-
- @Override
- protected void onInitialized(){
- super.onInitialized();
- setFloat(mGLStrengthLocation, 1.0f);
- runOnDraw(new Runnable(){
- public void run(){
- inputTextureHandles[0] = OpenGLUtils.loadTexture(getContext(), "filter/vlomomap_new.png");
- inputTextureHandles[1] = OpenGLUtils.loadTexture(getContext(), "filter/vignette_map.png");
- }
- });
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicN1977Filter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicN1977Filter.java
deleted file mode 100644
index 2b964cc..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicN1977Filter.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-import com.seu.magicfilter.utils.OpenGLUtils;
-
-public class MagicN1977Filter extends GPUImageFilter{
- private int[] inputTextureHandles = {-1,-1};
- private int[] inputTextureUniformLocations = {-1,-1};
- private int mGLStrengthLocation;
-
- public MagicN1977Filter(){
- super(MagicFilterType.N1977, R.raw.n1977);
- }
-
- @Override
- protected void onDrawArraysAfter(){
- for(int i = 0; i < inputTextureHandles.length
- && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3));
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre(){
- for(int i = 0; i < inputTextureHandles.length
- && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3) );
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, inputTextureHandles[i]);
- GLES20.glUniform1i(inputTextureUniformLocations[i], (i+3));
- }
- }
-
- @Override
- protected void onInit(){
- super.onInit();
- for(int i=0; i < inputTextureUniformLocations.length; i++) {
- inputTextureUniformLocations[i] = GLES20.glGetUniformLocation(getProgram(), "inputImageTexture" + (2 + i));
- }
- mGLStrengthLocation = GLES20.glGetUniformLocation(getProgram(), "strength");
- }
-
- @Override
- protected void onInitialized(){
- super.onInitialized();
- setFloat(mGLStrengthLocation, 1.0f);
- runOnDraw(new Runnable(){
- public void run(){
- inputTextureHandles[0] = OpenGLUtils.loadTexture(getContext(), "filter/n1977map.png");
- inputTextureHandles[1] = OpenGLUtils.loadTexture(getContext(), "filter/n1977blowout.png");
- }
- });
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicNashvilleFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicNashvilleFilter.java
deleted file mode 100644
index d5e7377..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicNashvilleFilter.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-import com.seu.magicfilter.utils.OpenGLUtils;
-
-public class MagicNashvilleFilter extends GPUImageFilter {
- private int[] inputTextureHandles = {-1};
- private int[] inputTextureUniformLocations = {-1};
- private int mGLStrengthLocation;
-
- public MagicNashvilleFilter(){
- super(MagicFilterType.NASHVILLE, R.raw.nashville);
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- GLES20.glDeleteTextures(1, inputTextureHandles, 0);
- for(int i = 0; i < inputTextureHandles.length; i++) {
- inputTextureHandles[i] = -1;
- }
- }
-
- @Override
- protected void onDrawArraysAfter(){
- for(int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3));
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre(){
- for(int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3) );
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, inputTextureHandles[i]);
- GLES20.glUniform1i(inputTextureUniformLocations[i], (i+3));
- }
- }
-
- @Override
- protected void onInit(){
- super.onInit();
- for(int i=0; i < inputTextureUniformLocations.length; i++) {
- inputTextureUniformLocations[i] = GLES20.glGetUniformLocation(getProgram(), "inputImageTexture" + (2 + i));
- }
- mGLStrengthLocation = GLES20.glGetUniformLocation(getProgram(), "strength");
- }
-
- @Override
- protected void onInitialized(){
- super.onInitialized();
- setFloat(mGLStrengthLocation, 1.0f);
- runOnDraw(new Runnable(){
- public void run(){
- inputTextureHandles[0] = OpenGLUtils.loadTexture(getContext(), "filter/nashvillemap.png");
- }
- });
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicNostalgiaFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicNostalgiaFilter.java
deleted file mode 100644
index 1db368e..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicNostalgiaFilter.java
+++ /dev/null
@@ -1,140 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-
-import java.nio.ByteBuffer;
-
-public class MagicNostalgiaFilter extends GPUImageFilter {
- private int mBlurSizeUniformLocation;
- private int mTexelWidthUniformLocation;
- private int mTexelHeightUniformLocation;
- private int[] mToneCurveTexture = { -1 };
- private int[] mToneCurveTexture2 = { -1 };
- private int mToneCurveTextureUniformLocation;
- private int mToneCurveTextureUniformLocation2;
-
- public MagicNostalgiaFilter(){
- super(MagicFilterType.NOSTALGIA, R.raw.nostalgia);
- }
-
- @Override
- protected void onDestroy(){
- super.onDestroy();
- GLES20.glDeleteTextures(1, mToneCurveTexture, 0);
- mToneCurveTexture[0] = -1;
- GLES20.glDeleteTextures(1, mToneCurveTexture2, 0);
- mToneCurveTexture2[0] = -1;
- }
-
- @Override
- protected void onDrawArraysAfter(){
- if (mToneCurveTexture[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- if (mToneCurveTexture2[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE4);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre(){
- if (mToneCurveTexture[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glUniform1i(mToneCurveTextureUniformLocation, 3);
- }
- if (mToneCurveTexture2[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE4);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glUniform1i(mToneCurveTextureUniformLocation2, 4);
- }
- GLES20.glUniform1f(mBlurSizeUniformLocation, 1.0F);
- }
-
- @Override
- protected void onInit(){
- super.onInit();
- mToneCurveTextureUniformLocation = GLES20.glGetUniformLocation(getProgram(), "curve");
- mToneCurveTextureUniformLocation2 = GLES20.glGetUniformLocation(getProgram(), "curve2");
- mTexelWidthUniformLocation = GLES20.glGetUniformLocation(getProgram(), "texelWidthOffset");
- mTexelHeightUniformLocation = GLES20.glGetUniformLocation(getProgram(), "texelHeightOffset");
- mBlurSizeUniformLocation = GLES20.glGetUniformLocation(getProgram(), "blurSize");
- }
-
- @Override
- protected void onInitialized(){
- super.onInitialized();
- runOnDraw(new Runnable(){
- public void run(){
- GLES20.glGenTextures(1, mToneCurveTexture, 0);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);
- byte[] arrayOfByte1 = new byte[2048];
- int[] arrayOfInt1 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 5, 6, 8, 9, 11, 13, 15, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 39, 41, 43, 45, 47, 49, 50, 52, 54, 56, 57, 59, 61, 62, 64, 66, 68, 69, 71, 72, 74, 76, 77, 79, 80, 82, 84, 85, 87, 88, 90, 91, 93, 94, 96, 97, 98, 100, 101, 103, 104, 106, 107, 108, 110, 111, 112, 114, 115, 116, 118, 119, 120, 122, 123, 124, 125, 127, 128, 129, 130, 131, 133, 134, 135, 136, 137, 138, 140, 141, 142, 143, 144, 145, 146, 147, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 174, 175, 176, 177, 178, 179, 180, 181, 182, 182, 183, 184, 185, 186, 187, 188, 188, 189, 190, 191, 192, 193, 193, 194, 195, 196, 197, 197, 198, 199, 200, 201, 201, 202, 203, 204, 204, 205, 206, 207, 207, 208, 209, 210, 210, 211, 212, 213, 213, 214, 215, 216, 216, 217, 218, 219, 219, 220, 221, 221, 222, 223, 224, 224, 225, 226, 226, 227, 228, 228, 229, 230, 231, 231, 232, 233, 233, 234, 235, 235, 236, 237, 237, 238, 239, 240, 240, 241, 242, 242, 243, 244, 244, 245, 246, 246, 247, 248, 248, 249, 250, 250, 251, 252, 252, 253, 254, 254, 255 };
- int[] arrayOfInt2 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 6, 7, 9, 10, 12, 13, 14, 16, 17, 19, 20, 22, 23, 24, 26, 27, 29, 30, 32, 33, 34, 36, 37, 39, 40, 42, 43, 44, 46, 47, 49, 50, 52, 53, 54, 56, 57, 59, 60, 61, 63, 64, 66, 67, 69, 70, 71, 73, 74, 75, 77, 78, 80, 81, 82, 84, 85, 87, 88, 89, 91, 92, 93, 95, 96, 97, 99, 100, 101, 103, 104, 105, 107, 108, 109, 111, 112, 113, 115, 116, 117, 119, 120, 121, 122, 124, 125, 126, 127, 129, 130, 131, 132, 134, 135, 136, 137, 139, 140, 141, 142, 144, 145, 146, 147, 148, 149, 151, 152, 153, 154, 155, 156, 158, 159, 160, 161, 162, 163, 164, 165, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 198, 199, 200, 201, 202, 203, 204, 204, 205, 206, 207, 208, 209, 209, 210, 211, 212, 213, 213, 214, 215, 216, 216, 217, 218, 219, 219, 220, 221, 222, 222, 223, 224, 225, 225, 226, 227, 227, 228, 229, 229, 230, 231, 231, 232, 233, 233, 234, 235, 235, 236, 237, 237, 238, 239, 239, 240, 241, 241, 242, 243, 243, 244, 244, 245, 246, 246, 247, 248, 248, 249, 249, 250, 251, 251, 252, 253, 253, 254, 254, 255 };
- int[] arrayOfInt3 = { 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 31, 33, 35, 37, 39, 41, 43, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 65, 67, 69, 71, 73, 75, 76, 78, 80, 82, 84, 85, 87, 89, 91, 92, 94, 96, 98, 99, 101, 102, 104, 106, 107, 109, 110, 112, 114, 115, 117, 118, 119, 121, 122, 124, 125, 126, 128, 129, 130, 132, 133, 134, 135, 137, 138, 139, 140, 141, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 166, 167, 168, 169, 170, 171, 171, 172, 173, 174, 175, 175, 176, 177, 178, 178, 179, 180, 181, 181, 182, 183, 184, 184, 185, 186, 186, 187, 188, 189, 189, 190, 191, 191, 192, 193, 193, 194, 195, 195, 196, 197, 197, 198, 199, 200, 200, 201, 202, 202, 203, 204, 204, 205, 206, 206, 207, 208, 208, 209, 210, 210, 211, 212, 212, 213, 214, 214, 215, 216, 216, 217, 218, 218, 219, 220, 220, 221, 221, 222, 223, 223, 224, 225, 225, 226, 227, 227, 228, 229, 229, 230, 231, 231, 232, 233, 233, 234, 234, 235, 236, 236, 237, 238, 238, 239, 240, 240, 241, 242, 242, 243, 243, 244, 245, 245, 246, 247, 247, 248, 249, 249, 250, 251, 251, 252, 252, 253, 254, 254, 255 };
- int[] arrayOfInt4 = { 0, 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 20, 20, 20, 21, 21, 21, 22, 22, 23, 23, 23, 24, 24, 24, 25, 25, 25, 25, 26, 26, 27, 27, 28, 28, 28, 28, 29, 29, 30, 29, 31, 31, 31, 31, 32, 32, 33, 33, 34, 34, 34, 34, 35, 35, 36, 36, 37, 37, 37, 38, 38, 39, 39, 39, 40, 40, 40, 41, 42, 42, 43, 43, 44, 44, 45, 45, 45, 46, 47, 47, 48, 48, 49, 50, 51, 51, 52, 52, 53, 53, 54, 55, 55, 56, 57, 57, 58, 59, 60, 60, 61, 62, 63, 63, 64, 65, 66, 67, 68, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, 91, 93, 94, 95, 96, 97, 98, 100, 101, 103, 104, 105, 107, 108, 110, 111, 113, 115, 116, 118, 119, 120, 122, 123, 125, 127, 128, 130, 132, 134, 135, 137, 139, 141, 143, 144, 146, 148, 150, 152, 154, 156, 158, 160, 163, 165, 167, 169, 171, 173, 175, 178, 180, 182, 185, 187, 189, 192, 194, 197, 199, 201, 204, 206, 209, 211, 214, 216, 219, 221, 224, 226, 229, 232, 234, 236, 239, 241, 245, 247, 250, 252, 255 };
- for (int i = 0; i < 256; i++){
- arrayOfByte1[(0 + i * 4)] = ((byte)arrayOfInt1[i]);
- arrayOfByte1[(1 + i * 4)] = ((byte)arrayOfInt2[i]);
- arrayOfByte1[(2 + i * 4)] = ((byte)arrayOfInt3[i]);
- arrayOfByte1[(3 + i * 4)] = ((byte)arrayOfInt4[i]);
- }
- int[] arrayOfInt5 = { 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 30, 32, 33, 34, 35, 37, 38, 39, 41, 42, 43, 44, 46, 47, 48, 50, 51, 52, 53, 55, 56, 57, 58, 60, 61, 62, 64, 65, 66, 67, 69, 70, 71, 72, 74, 75, 76, 77, 79, 80, 81, 82, 84, 85, 86, 87, 88, 90, 91, 92, 93, 95, 96, 97, 98, 99, 101, 102, 103, 104, 105, 107, 108, 109, 110, 111, 112, 114, 115, 116, 117, 118, 119, 121, 122, 123, 124, 125, 126, 127, 128, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 174, 175, 176, 177, 178, 179, 180, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 198, 199, 200, 201, 202, 204, 205, 206, 207, 209, 210, 211, 213, 214, 215, 217, 218, 220, 221, 222, 224, 225, 227, 228, 230, 231, 233, 234, 235, 237, 238, 240, 241, 243, 244, 246, 247, 249, 250, 252, 253, 255 };
- int[] arrayOfInt6 = { 0, 3, 6, 8, 11, 14, 16, 18, 21, 24, 26, 29, 30, 33, 35, 37, 39, 41, 43, 45, 47, 49, 50, 52, 53, 54, 56, 58, 59, 61, 62, 63, 65, 65, 66, 68, 69, 70, 72, 73, 74, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 112, 113, 114, 115, 115, 116, 117, 118, 119, 120, 121, 122, 123, 123, 124, 125, 126, 127, 127, 128, 129, 130, 131, 132, 133, 134, 135, 135, 135, 136, 137, 138, 139, 140, 140, 141, 142, 143, 144, 145, 146, 146, 147, 147, 148, 149, 149, 150, 151, 152, 153, 154, 154, 155, 156, 157, 158, 158, 159, 159, 160, 161, 161, 162, 163, 164, 164, 165, 166, 167, 167, 168, 169, 170, 170, 170, 171, 172, 173, 173, 174, 175, 176, 176, 177, 178, 179, 179, 180, 181, 181, 182, 182, 183, 183, 184, 185, 186, 186, 187, 188, 188, 189, 190, 191, 191, 192, 193, 193, 194, 194, 194, 195, 196, 197, 197, 198, 199, 199, 200, 201, 201, 202, 203, 203, 204, 205, 205, 206, 206, 207, 207, 208, 209, 209, 210, 211, 211, 212, 213, 213, 214, 215, 215, 216, 217, 217, 217, 217, 218, 219, 219, 220, 221, 221, 222, 223, 223, 224, 225, 225, 226, 227, 227, 228, 228, 229, 229, 229, 230, 231, 231, 232, 232, 233, 234, 234, 235 };
- int[] arrayOfInt7 = { 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 89, 90, 91, 92, 93, 94, 96, 97, 98, 99, 100, 102, 103, 104, 106, 107, 108, 109, 111, 112, 113, 115, 116, 118, 119, 120, 122, 123, 125, 126, 128, 129, 131, 132, 134, 135, 137, 139, 140, 142, 143, 145, 147, 148, 150, 152, 153, 155, 156, 158, 160, 161, 163, 164, 166, 167, 169, 170, 172, 173, 175, 176, 178, 179, 180, 182, 183, 185, 186, 188, 189, 190, 192, 193, 194, 196, 197, 199, 200, 201, 203, 204, 205, 206, 208, 209, 210, 212, 213, 214, 216, 217, 218, 219, 221, 222, 223, 224, 226, 227, 228, 229, 231, 232, 233, 234, 236, 237, 238, 239, 240, 242, 243, 244, 245, 247, 248, 249, 250, 251, 253, 254, 255 };
- for (int j = 0; j < 256; j++){
- arrayOfByte1[(0 + (1024 + j * 4))] = ((byte)arrayOfInt5[j]);
- arrayOfByte1[(1 + (1024 + j * 4))] = ((byte)arrayOfInt6[j]);
- arrayOfByte1[(2 + (1024 + j * 4))] = ((byte)arrayOfInt7[j]);
- arrayOfByte1[(3 + (1024 + j * 4))] = ((byte)arrayOfInt4[j]);
- }
- GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, 256, 2, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, ByteBuffer.wrap(arrayOfByte1));
- GLES20.glGenTextures(1, mToneCurveTexture2, 0);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture2[0]);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);
- byte[] arrayOfByte2 = new byte[1024];
- int[] arrayOfInt8 = { 0, 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 20, 20, 20, 21, 21, 21, 22, 22, 23, 23, 23, 24, 24, 24, 25, 25, 25, 25, 26, 26, 27, 27, 28, 28, 28, 28, 29, 29, 30, 29, 31, 31, 31, 31, 32, 32, 33, 33, 34, 34, 34, 34, 35, 35, 36, 36, 37, 37, 37, 38, 38, 39, 39, 39, 40, 40, 40, 41, 42, 42, 43, 43, 44, 44, 45, 45, 45, 46, 47, 47, 48, 48, 49, 50, 51, 51, 52, 52, 53, 53, 54, 55, 55, 56, 57, 57, 58, 59, 60, 60, 61, 62, 63, 63, 64, 65, 66, 67, 68, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, 91, 93, 94, 95, 96, 97, 98, 100, 101, 103, 104, 105, 107, 108, 110, 111, 113, 115, 116, 118, 119, 120, 122, 123, 125, 127, 128, 130, 132, 134, 135, 137, 139, 141, 143, 144, 146, 148, 150, 152, 154, 156, 158, 160, 163, 165, 167, 169, 171, 173, 175, 178, 180, 182, 185, 187, 189, 192, 194, 197, 199, 201, 204, 206, 209, 211, 214, 216, 219, 221, 224, 226, 229, 232, 234, 236, 239, 241, 245, 247, 250, 252, 255 };
- int[] arrayOfInt9 = { 42, 43, 43, 44, 45, 45, 46, 47, 48, 48, 49, 50, 50, 51, 52, 52, 53, 54, 55, 55, 56, 57, 57, 58, 59, 60, 60, 61, 62, 62, 63, 64, 65, 65, 66, 67, 67, 68, 69, 70, 70, 71, 72, 72, 73, 74, 75, 75, 76, 77, 78, 78, 79, 80, 81, 81, 82, 83, 84, 84, 85, 86, 87, 87, 88, 89, 90, 91, 91, 92, 93, 94, 94, 95, 96, 97, 98, 98, 99, 100, 101, 102, 103, 103, 104, 105, 106, 107, 108, 108, 109, 110, 111, 112, 113, 113, 114, 115, 116, 117, 118, 119, 120, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 201, 202, 203, 204, 205, 206, 207, 207, 208, 209, 210, 211, 212, 212, 213, 214, 215, 216, 217, 217, 218, 219, 220, 221, 221, 222, 223, 224, 224, 225, 226, 227, 228, 228, 229, 230, 231, 231, 232, 233, 234, 234, 235, 236, 237, 237, 238, 239, 240, 240, 241, 242, 243, 243, 244, 245, 246, 246, 247, 248, 248, 249, 250, 251, 251, 252, 253, 254, 254, 255 };
- int[] arrayOfInt10 = { 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 198, 199, 200, 201, 202, 203, 204, 205, 205, 206, 207, 208, 209, 210, 211, 211, 212, 213, 214, 215, 215, 216, 217, 218, 219, 219, 220, 221, 222, 222, 223, 224, 225, 225, 226, 227, 227, 228, 229, 230, 230, 231, 232, 232, 233, 234, 234, 235, 236, 236, 237, 238, 238, 239, 240, 240, 241, 241, 242, 243, 243, 244, 245, 245, 246, 246, 247, 248, 248, 249, 250, 250, 251, 251, 252, 253, 253, 254, 254, 255 };
- int[] arrayOfInt11 = { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 174, 175, 176, 177, 178, 179, 180, 181, 182, 182, 183, 184, 185, 186, 187, 188, 189, 190, 190, 191, 192, 193, 194, 195, 196, 197, 197, 198, 199, 200, 201, 202, 203, 203, 204, 205, 206, 207, 208, 209, 209, 210, 211, 212, 213, 214, 214, 215, 216, 217, 218, 219, 219, 220, 221, 222, 223, 224, 224, 225, 226, 227, 228, 229, 229, 230, 231, 232, 233, 234, 234, 235, 236, 237, 238, 239, 239, 240, 241, 242, 243, 244, 244, 245, 246, 247, 248, 248, 249, 250, 251, 252, 253, 253, 254, 255 };
- for (int k = 0; k < 256; k++){
- arrayOfByte2[(0 + k * 4)] = ((byte)arrayOfInt9[k]);
- arrayOfByte2[(1 + k * 4)] = ((byte)arrayOfInt10[k]);
- arrayOfByte2[(2 + k * 4)] = ((byte)arrayOfInt11[k]);
- arrayOfByte2[(3 + k * 4)] = ((byte)arrayOfInt8[k]);
- }
- GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, 256, 1, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, ByteBuffer.wrap(arrayOfByte2));
- }
- });
- }
-
- @Override
- public void onInputSizeChanged(int width, int height) {
- super.onInputSizeChanged(width, height);
- GLES20.glUniform1f(mTexelWidthUniformLocation, (1.0f / (float)width));
- GLES20.glUniform1f(mTexelHeightUniformLocation, (1.0f / (float)height));
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicPixelFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicPixelFilter.java
deleted file mode 100644
index c9a7192..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicPixelFilter.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-import com.seu.magicfilter.utils.OpenGLUtils;
-
-public class MagicPixelFilter extends GPUImageFilter {
- private int[] inputTextureHandles = {-1};
- private int[] inputTextureUniformLocations = {-1};
- private int mGLStrengthLocation;
-
- public MagicPixelFilter(){
- super(MagicFilterType.PIXAR, R.raw.pixar);
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- GLES20.glDeleteTextures(1, inputTextureHandles, 0);
- for (int i = 0; i < inputTextureHandles.length; i++) {
- inputTextureHandles[i] = -1;
- }
- }
-
- @Override
- protected void onDrawArraysAfter(){
- for(int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3));
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre(){
- for (int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3) );
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, inputTextureHandles[i]);
- GLES20.glUniform1i(inputTextureUniformLocations[i], (i+3));
- }
- }
-
- @Override
- protected void onInit(){
- super.onInit();
- for (int i=0; i < inputTextureUniformLocations.length; i++) {
- inputTextureUniformLocations[i] = GLES20.glGetUniformLocation(getProgram(), "inputImageTexture" + (2 + i));
- }
- mGLStrengthLocation = GLES20.glGetUniformLocation(getProgram(), "strength");
- }
-
- @Override
- protected void onInitialized(){
- super.onInitialized();
- setFloat(mGLStrengthLocation, 1.0f);
- runOnDraw(new Runnable(){
- public void run(){
-// inputTextureHandles[0] = OpenGLUtils.loadTexture(getContext(), "filter/pixar_curves.png");
- }
- });
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicRiseFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicRiseFilter.java
deleted file mode 100644
index 8cd4569..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicRiseFilter.java
+++ /dev/null
@@ -1,66 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-import com.seu.magicfilter.utils.OpenGLUtils;
-
-
-public class MagicRiseFilter extends GPUImageFilter {
- private int[] inputTextureHandles = {-1,-1,-1};
- private int[] inputTextureUniformLocations = {-1,-1,-1};
-
- public MagicRiseFilter(){
- super(MagicFilterType.RISE, R.raw.rise);
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- GLES20.glDeleteTextures(inputTextureHandles.length, inputTextureHandles, 0);
- for(int i = 0; i < inputTextureHandles.length; i++)
- inputTextureHandles[i] = -1;
- }
-
- @Override
- protected void onDrawArraysAfter(){
- for(int i = 0; i < inputTextureHandles.length
- && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3));
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre(){
- for(int i = 0; i < inputTextureHandles.length
- && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3) );
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, inputTextureHandles[i]);
- GLES20.glUniform1i(inputTextureUniformLocations[i], (i+3));
- }
- }
-
- @Override
- protected void onInit(){
- super.onInit();
- for(int i=0; i < inputTextureUniformLocations.length; i++){
- inputTextureUniformLocations[i] = GLES20.glGetUniformLocation(getProgram(), "inputImageTexture"+(2+i));
- }
- }
-
- @Override
- protected void onInitialized(){
- super.onInitialized();
- runOnDraw(new Runnable(){
- public void run(){
- inputTextureHandles[0] = OpenGLUtils.loadTexture(getContext(), "filter/blackboard1024.png");
- inputTextureHandles[1] = OpenGLUtils.loadTexture(getContext(), "filter/overlaymap.png");
- inputTextureHandles[2] = OpenGLUtils.loadTexture(getContext(), "filter/risemap.png");
- }
- });
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicRomanceFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicRomanceFilter.java
deleted file mode 100644
index 4ca39fe..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicRomanceFilter.java
+++ /dev/null
@@ -1,81 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-
-import java.nio.ByteBuffer;
-
-public class MagicRomanceFilter extends GPUImageFilter {
-
- private int[] mToneCurveTexture = {-1};
- private int mToneCurveTextureUniformLocation;
-
- public MagicRomanceFilter(){
- super(MagicFilterType.ROMANCE, R.raw.romance);
- }
-
- @Override
- protected void onDestroy(){
- super.onDestroy();
- GLES20.glDeleteTextures(1, mToneCurveTexture, 0);
- mToneCurveTexture[0] = -1;
- }
-
- @Override
- protected void onDrawArraysAfter(){
- if (mToneCurveTexture[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre(){
- if (mToneCurveTexture[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glUniform1i(mToneCurveTextureUniformLocation, 3);
- }
- }
-
- @Override
- protected void onInit(){
- super.onInit();
- mToneCurveTextureUniformLocation = GLES20.glGetUniformLocation(getProgram(), "curve");
- }
-
- @Override
- protected void onInitialized(){
- super.onInitialized();
- runOnDraw(new Runnable(){
- public void run(){
- GLES20.glGenTextures(1, mToneCurveTexture, 0);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);
- byte[] romance_arrayOfByte = new byte[1024];
- int[] romance_arrayOfInt1 = { 46, 46, 46, 46, 47, 47, 47, 47, 47, 47, 48, 48, 48, 48, 48, 48, 49, 49, 49, 49, 49, 50, 50, 50, 50, 51, 51, 51, 51, 52, 52, 52, 52, 53, 53, 53, 54, 54, 54, 55, 55, 56, 56, 56, 57, 57, 58, 58, 59, 59, 60, 60, 61, 61, 62, 62, 63, 63, 64, 65, 65, 66, 67, 67, 68, 69, 69, 70, 71, 72, 73, 73, 74, 75, 76, 77, 78, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 100, 101, 102, 103, 104, 105, 106, 107, 109, 110, 111, 112, 113, 114, 116, 117, 118, 119, 120, 122, 123, 124, 125, 127, 128, 129, 130, 131, 133, 134, 135, 136, 138, 139, 140, 141, 143, 144, 145, 146, 148, 149, 150, 151, 153, 154, 155, 156, 158, 159, 160, 161, 162, 164, 165, 166, 167, 169, 170, 171, 172, 173, 175, 176, 177, 178, 179, 180, 182, 183, 184, 185, 186, 187, 188, 189, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 211, 212, 213, 214, 215, 216, 217, 218, 218, 219, 220, 221, 222, 222, 223, 224, 225, 226, 226, 227, 228, 229, 229, 230, 231, 232, 232, 233, 234, 234, 235, 236, 237, 237, 238, 239, 239, 240, 241, 241, 242, 243, 243, 244, 245, 245, 246, 247, 247, 248, 249, 249, 250, 251, 251, 252, 252, 253, 254, 254, 255 };
- int[] romance_arrayOfInt2 = { 0, 1, 1, 2, 3, 4, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 14, 15, 16, 17, 17, 18, 19, 20, 20, 21, 22, 23, 23, 24, 25, 26, 26, 27, 28, 29, 30, 30, 31, 32, 33, 33, 34, 35, 36, 37, 38, 38, 39, 40, 41, 42, 43, 43, 44, 45, 46, 47, 48, 49, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 111, 112, 113, 114, 115, 116, 117, 118, 120, 121, 122, 123, 124, 125, 126, 128, 129, 130, 131, 132, 133, 134, 136, 137, 138, 139, 140, 141, 142, 144, 145, 146, 147, 148, 149, 151, 152, 153, 154, 155, 156, 157, 159, 160, 161, 162, 163, 164, 166, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 183, 184, 185, 186, 187, 188, 189, 190, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255 };
- int[] romance_arrayOfInt3 = { 0, 2, 3, 5, 7, 8, 10, 12, 13, 15, 17, 18, 20, 21, 23, 25, 26, 28, 30, 31, 33, 34, 36, 38, 39, 41, 42, 44, 45, 47, 48, 50, 51, 53, 54, 56, 57, 59, 60, 62, 63, 65, 66, 67, 69, 70, 72, 73, 74, 76, 77, 78, 79, 81, 82, 83, 84, 86, 87, 88, 89, 90, 91, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 106, 107, 108, 109, 110, 111, 112, 112, 113, 114, 115, 116, 116, 117, 118, 119, 119, 120, 121, 122, 122, 123, 124, 124, 125, 126, 126, 127, 128, 128, 129, 130, 130, 131, 131, 132, 133, 133, 134, 134, 135, 136, 136, 137, 137, 138, 139, 139, 140, 140, 141, 141, 142, 143, 143, 144, 144, 145, 146, 146, 147, 147, 148, 149, 149, 150, 150, 151, 152, 152, 153, 154, 154, 155, 155, 156, 157, 157, 158, 159, 159, 160, 161, 162, 162, 163, 164, 164, 165, 166, 167, 168, 168, 169, 170, 171, 172, 172, 173, 174, 175, 176, 177, 177, 178, 179, 180, 181, 182, 183, 184, 185, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 242, 243, 244, 245, 246, 247, 248, 249, 251, 252, 253, 254, 255 };
- int[] romance_arrayOfInt4 = { 0, 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 20, 20, 20, 21, 21, 21, 22, 22, 23, 23, 23, 24, 24, 24, 25, 25, 25, 25, 26, 26, 27, 27, 28, 28, 28, 28, 29, 29, 30, 29, 31, 31, 31, 31, 32, 32, 33, 33, 34, 34, 34, 34, 35, 35, 36, 36, 37, 37, 37, 38, 38, 39, 39, 39, 40, 40, 40, 41, 42, 42, 43, 43, 44, 44, 45, 45, 45, 46, 47, 47, 48, 48, 49, 50, 51, 51, 52, 52, 53, 53, 54, 55, 55, 56, 57, 57, 58, 59, 60, 60, 61, 62, 63, 63, 64, 65, 66, 67, 68, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, 91, 93, 94, 95, 96, 97, 98, 100, 101, 103, 104, 105, 107, 108, 110, 111, 113, 115, 116, 118, 119, 120, 122, 123, 125, 127, 128, 130, 132, 134, 135, 137, 139, 141, 143, 144, 146, 148, 150, 152, 154, 156, 158, 160, 163, 165, 167, 169, 171, 173, 175, 178, 180, 182, 185, 187, 189, 192, 194, 197, 199, 201, 204, 206, 209, 211, 214, 216, 219, 221, 224, 226, 229, 232, 234, 236, 239, 241, 245, 247, 250, 252, 255 };
- for (int i = 0; i < 256; i++){
- romance_arrayOfByte[(i * 4)] = ((byte)romance_arrayOfInt1[i]);
- romance_arrayOfByte[(1 + i * 4)] = ((byte)romance_arrayOfInt2[i]);
- romance_arrayOfByte[(2 + i * 4)] = ((byte)romance_arrayOfInt3[i]);
- romance_arrayOfByte[(3 + i * 4)] = ((byte)romance_arrayOfInt4[i]);
- }
- GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, 256, 1, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, ByteBuffer.wrap(romance_arrayOfByte));
- }
- });
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicSakuraFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicSakuraFilter.java
deleted file mode 100644
index 088899d..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicSakuraFilter.java
+++ /dev/null
@@ -1,89 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-
-import java.nio.ByteBuffer;
-
-public class MagicSakuraFilter extends GPUImageFilter {
- private int[] mToneCurveTexture = {-1};
- private int mToneCurveTextureUniformLocation;
- private int mTexelHeightUniformLocation;
- private int mTexelWidthUniformLocation;
-
- public MagicSakuraFilter(){
- super(MagicFilterType.SAKURA, R.raw.romance);
- }
-
- @Override
- protected void onDestroy(){
- super.onDestroy();
- GLES20.glDeleteTextures(1, mToneCurveTexture, 0);
- mToneCurveTexture[0] = -1;
- }
-
- @Override
- protected void onDrawArraysAfter(){
- if (mToneCurveTexture[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre(){
- if (mToneCurveTexture[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glUniform1i(mToneCurveTextureUniformLocation, 3);
- }
- }
-
- @Override
- protected void onInit(){
- super.onInit();
- mToneCurveTextureUniformLocation = GLES20.glGetUniformLocation(getProgram(), "curve");
- mTexelWidthUniformLocation = GLES20.glGetUniformLocation(getProgram(), "texelWidthOffset");
- mTexelHeightUniformLocation = GLES20.glGetUniformLocation(getProgram(), "texelHeightOffset");
- }
-
- @Override
- protected void onInitialized(){
- super.onInitialized();
- runOnDraw(new Runnable(){
- public void run(){
- GLES20.glGenTextures(1, mToneCurveTexture, 0);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);
- byte[] arrayOfByte = new byte[1024];
- int[] arrayOfInt = { 95, 95, 96, 97, 97, 98, 99, 99, 100, 101, 101, 102, 103, 104, 104, 105, 106, 106, 107, 108, 108, 109, 110, 111, 111, 112, 113, 113, 114, 115, 115, 116, 117, 117, 118, 119, 120, 120, 121, 122, 122, 123, 124, 124, 125, 126, 127, 127, 128, 129, 129, 130, 131, 131, 132, 133, 133, 134, 135, 136, 136, 137, 138, 138, 139, 140, 140, 141, 142, 143, 143, 144, 145, 145, 146, 147, 147, 148, 149, 149, 150, 151, 152, 152, 153, 154, 154, 155, 156, 156, 157, 158, 159, 159, 160, 161, 161, 162, 163, 163, 164, 165, 165, 166, 167, 168, 168, 169, 170, 170, 171, 172, 172, 173, 174, 175, 175, 176, 177, 177, 178, 179, 179, 180, 181, 181, 182, 183, 184, 184, 185, 186, 186, 187, 188, 188, 189, 190, 191, 191, 192, 193, 193, 194, 195, 195, 196, 197, 197, 198, 199, 200, 200, 201, 202, 202, 203, 204, 204, 205, 206, 207, 207, 208, 209, 209, 210, 211, 211, 212, 213, 213, 214, 215, 216, 216, 217, 218, 218, 219, 220, 220, 221, 222, 223, 223, 224, 225, 225, 226, 227, 227, 228, 229, 229, 230, 231, 232, 232, 233, 234, 234, 235, 236, 236, 237, 238, 239, 239, 240, 241, 241, 242, 243, 243, 244, 245, 245, 246, 247, 248, 248, 249, 250, 250, 251, 252, 252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 };
- for (int i = 0; i < 256; i++)
- {
- arrayOfByte[(i * 4)] = ((byte)arrayOfInt[i]);
- arrayOfByte[(1 + i * 4)] = ((byte)arrayOfInt[i]);
- arrayOfByte[(2 + i * 4)] = ((byte)arrayOfInt[i]);
- arrayOfByte[(3 + i * 4)] = ((byte)arrayOfInt[i]);
- }
- GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, 256, 1, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, ByteBuffer.wrap(arrayOfByte));
- }
- });
- }
-
- @Override
- public void onInputSizeChanged(int width, int height) {
- super.onInputSizeChanged(width, height);
- GLES20.glUniform1f(mTexelWidthUniformLocation, (1.0f / (float)width));
- GLES20.glUniform1f(mTexelHeightUniformLocation, (1.0f / (float)height));
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicSierraFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicSierraFilter.java
deleted file mode 100644
index 3857796..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicSierraFilter.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-import com.seu.magicfilter.utils.OpenGLUtils;
-
-public class MagicSierraFilter extends GPUImageFilter {
- private int[] inputTextureHandles = {-1,-1,-1};
- private int[] inputTextureUniformLocations = {-1,-1,-1};
- private int mGLStrengthLocation;
-
- public MagicSierraFilter(){
- super(MagicFilterType.SIERRA, R.raw.sierra);
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- GLES20.glDeleteTextures(inputTextureHandles.length, inputTextureHandles, 0);
- for(int i = 0; i < inputTextureHandles.length; i++)
- inputTextureHandles[i] = -1;
- }
-
- @Override
- protected void onDrawArraysAfter(){
- for(int i = 0; i < inputTextureHandles.length
- && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3));
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre(){
- for(int i = 0; i < inputTextureHandles.length
- && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3) );
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, inputTextureHandles[i]);
- GLES20.glUniform1i(inputTextureUniformLocations[i], (i+3));
- }
- }
-
- @Override
- protected void onInit(){
- super.onInit();
- for(int i = 0; i < inputTextureUniformLocations.length; i++)
- inputTextureUniformLocations[i] = GLES20.glGetUniformLocation(getProgram(), "inputImageTexture"+(2+i));
- mGLStrengthLocation = GLES20.glGetUniformLocation(getProgram(), "strength");
- }
-
- @Override
- protected void onInitialized(){
- super.onInitialized();
- setFloat(mGLStrengthLocation, 1.0f);
- runOnDraw(new Runnable(){
- public void run(){
- inputTextureHandles[0] = OpenGLUtils.loadTexture(getContext(), "filter/sierravignette.png");
- inputTextureHandles[1] = OpenGLUtils.loadTexture(getContext(), "filter/overlaymap.png");
- inputTextureHandles[2] = OpenGLUtils.loadTexture(getContext(), "filter/sierramap.png");
- }
- });
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicSketchFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicSketchFilter.java
deleted file mode 100644
index 733adf4..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicSketchFilter.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-
-public class MagicSketchFilter extends GPUImageFilter {
-
- private int mSingleStepOffsetLocation;
- //0.0 - 1.0
- private int mStrengthLocation;
-
- public MagicSketchFilter(){
- super(MagicFilterType.SKETCH, R.raw.sketch);
- }
-
- @Override
- protected void onInit() {
- super.onInit();
- mSingleStepOffsetLocation = GLES20.glGetUniformLocation(getProgram(), "singleStepOffset");
- mStrengthLocation = GLES20.glGetUniformLocation(getProgram(), "strength");
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- }
-
- @Override
- protected void onInitialized(){
- super.onInitialized();
- setFloat(mStrengthLocation, 0.5f);
- }
-
- @Override
- public void onInputSizeChanged(final int width, final int height) {
- super.onInputSizeChanged(width, height);
- setFloatVec2(mSingleStepOffsetLocation, new float[] {1.0f / width, 1.0f / height});
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicSkinWhitenFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicSkinWhitenFilter.java
deleted file mode 100644
index 44b8ef8..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicSkinWhitenFilter.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-
-import java.nio.ByteBuffer;
-
-public class MagicSkinWhitenFilter extends GPUImageFilter {
- private int mTexelHeightUniformLocation;
- private int mTexelWidthUniformLocation;
- private int mToneCurveTextureUniformLocation;
- private int[] mToneCurveTexture = new int[] {-1};
-
- public MagicSkinWhitenFilter() {
- super(MagicFilterType.SKINWHITEN, R.raw.skinwhiten);
- }
-
- @Override
- protected void onInit() {
- super.onInit();
- mToneCurveTextureUniformLocation = GLES20.glGetUniformLocation(getProgram(), "curve");
- mTexelWidthUniformLocation = GLES20.glGetUniformLocation(getProgram(), "texelWidthOffset");
- mTexelHeightUniformLocation = GLES20.glGetUniformLocation(getProgram(), "texelHeightOffset");
-
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- GLES20.glDeleteTextures(1, mToneCurveTexture, 0);
- mToneCurveTexture[0] = -1;
- }
-
- @Override
- protected void onInitialized() {
- super.onInitialized();
- runOnDraw(new Runnable() {
- public void run() {
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glGenTextures(1, mToneCurveTexture, 0);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);
- byte[] arrayOfByte = new byte[1024];
- int[] arrayOfInt1 = { 95, 95, 96, 97, 97, 98, 99, 99, 100, 101, 101, 102, 103, 104, 104, 105, 106, 106, 107, 108, 108, 109, 110, 111, 111, 112, 113, 113, 114, 115, 115, 116, 117, 117, 118, 119, 120, 120, 121, 122, 122, 123, 124, 124, 125, 126, 127, 127, 128, 129, 129, 130, 131, 131, 132, 133, 133, 134, 135, 136, 136, 137, 138, 138, 139, 140, 140, 141, 142, 143, 143, 144, 145, 145, 146, 147, 147, 148, 149, 149, 150, 151, 152, 152, 153, 154, 154, 155, 156, 156, 157, 158, 159, 159, 160, 161, 161, 162, 163, 163, 164, 165, 165, 166, 167, 168, 168, 169, 170, 170, 171, 172, 172, 173, 174, 175, 175, 176, 177, 177, 178, 179, 179, 180, 181, 181, 182, 183, 184, 184, 185, 186, 186, 187, 188, 188, 189, 190, 191, 191, 192, 193, 193, 194, 195, 195, 196, 197, 197, 198, 199, 200, 200, 201, 202, 202, 203, 204, 204, 205, 206, 207, 207, 208, 209, 209, 210, 211, 211, 212, 213, 213, 214, 215, 216, 216, 217, 218, 218, 219, 220, 220, 221, 222, 223, 223, 224, 225, 225, 226, 227, 227, 228, 229, 229, 230, 231, 232, 232, 233, 234, 234, 235, 236, 236, 237, 238, 239, 239, 240, 241, 241, 242, 243, 243, 244, 245, 245, 246, 247, 248, 248, 249, 250, 250, 251, 252, 252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 };
- int[] arrayOfInt2 = { 0, 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 20, 20, 20, 21, 21, 21, 22, 22, 23, 23, 23, 24, 24, 24, 25, 25, 25, 25, 26, 26, 27, 27, 28, 28, 28, 28, 29, 29, 30, 29, 31, 31, 31, 31, 32, 32, 33, 33, 34, 34, 34, 34, 35, 35, 36, 36, 37, 37, 37, 38, 38, 39, 39, 39, 40, 40, 40, 41, 42, 42, 43, 43, 44, 44, 45, 45, 45, 46, 47, 47, 48, 48, 49, 50, 51, 51, 52, 52, 53, 53, 54, 55, 55, 56, 57, 57, 58, 59, 60, 60, 61, 62, 63, 63, 64, 65, 66, 67, 68, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, 91, 93, 94, 95, 96, 97, 98, 100, 101, 103, 104, 105, 107, 108, 110, 111, 113, 115, 116, 118, 119, 120, 122, 123, 125, 127, 128, 130, 132, 134, 135, 137, 139, 141, 143, 144, 146, 148, 150, 152, 154, 156, 158, 160, 163, 165, 167, 169, 171, 173, 175, 178, 180, 182, 185, 187, 189, 192, 194, 197, 199, 201, 204, 206, 209, 211, 214, 216, 219, 221, 224, 226, 229, 232, 234, 236, 239, 241, 245, 247, 250, 252, 255 };
- for (int i = 0; i < 256; i++){
- arrayOfByte[(i * 4)] = ((byte)arrayOfInt1[i]);
- arrayOfByte[(1 + i * 4)] = ((byte)arrayOfInt1[i]);
- arrayOfByte[(2 + i * 4)] = ((byte)arrayOfInt2[i]);
- arrayOfByte[(3 + i * 4)] = -1;
- }
- GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, 256, 1, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, ByteBuffer.wrap(arrayOfByte));
- }
- });
- }
-
- @Override
- protected void onDrawArraysPre() {
- super.onDrawArraysPre();
- if(mToneCurveTexture[0] != -1) {
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glUniform1i(this.mToneCurveTextureUniformLocation, 3);
- }
- }
-
- @Override
- protected void onDrawArraysAfter() {
- super.onDrawArraysAfter();
- if (mToneCurveTexture[0] != -1) {
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- public void onInputSizeChanged(int width, int height) {
- super.onInputSizeChanged(width, height);
- GLES20.glUniform1f(mTexelWidthUniformLocation, (1.0f / (float)width));
- GLES20.glUniform1f(mTexelHeightUniformLocation, (1.0f / (float)height));
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicSunriseFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicSunriseFilter.java
deleted file mode 100644
index 3a08665..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicSunriseFilter.java
+++ /dev/null
@@ -1,139 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-
-import java.nio.ByteBuffer;
-
-public class MagicSunriseFilter extends GPUImageFilter {
- private int mMaskGrey1TextureId = -1;
- private int mMaskGrey1UniformLocation;
- private int mMaskGrey2TextureId = -1;
- private int mMaskGrey2UniformLocation;
- private int mMaskGrey3TextureId = -1;
- private int mMaskGrey3UniformLocation;
- private int[] mToneCurveTexture = { -1 };
- private int mToneCurveTextureUniformLocation;
-
- public MagicSunriseFilter(){
- super(MagicFilterType.SUNRISE, R.raw.sunrise);
- }
-
- @Override
- protected void onDestroy(){
- super.onDestroy();
- GLES20.glDeleteTextures(1, mToneCurveTexture, 0);
- mToneCurveTexture[0] = -1;
- GLES20.glDeleteTextures(1, new int[]{mMaskGrey1TextureId}, 0);
- mMaskGrey1TextureId = -1;
- GLES20.glDeleteTextures(1, new int[]{mMaskGrey2TextureId}, 0);
- mMaskGrey2TextureId = -1;
- GLES20.glDeleteTextures(1, new int[]{mMaskGrey3TextureId}, 0);
- mMaskGrey3TextureId = -1;
- }
-
- @Override
- protected void onDrawArraysAfter() {
- if (mToneCurveTexture[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- if (mMaskGrey1TextureId != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE4);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- if (mMaskGrey2TextureId != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE5);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- if (mMaskGrey3TextureId != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE6);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre() {
- if (mToneCurveTexture[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glUniform1i(mToneCurveTextureUniformLocation, 3);
- }
- if (mMaskGrey1TextureId != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE4);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mMaskGrey1TextureId);
- GLES20.glUniform1i(mMaskGrey1UniformLocation, 4);
- }
- if (mMaskGrey2TextureId != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE5);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mMaskGrey2TextureId);
- GLES20.glUniform1i(mMaskGrey2UniformLocation, 5);
- }
- if (mMaskGrey3TextureId != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE6);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mMaskGrey3TextureId);
- GLES20.glUniform1i(mMaskGrey3UniformLocation, 6);
- }
- }
-
- @Override
- protected void onInit(){
- super.onInit();
- mToneCurveTextureUniformLocation = GLES20.glGetUniformLocation(getProgram(), "curve");
- mMaskGrey1UniformLocation = GLES20.glGetUniformLocation(getProgram(), "grey1Frame");
- mMaskGrey2UniformLocation = GLES20.glGetUniformLocation(getProgram(), "grey2Frame");
- mMaskGrey3UniformLocation = GLES20.glGetUniformLocation(getProgram(), "grey3Frame");
- }
-
- @Override
- protected void onInitialized(){
- super.onInitialized();
- runOnDraw(new Runnable(){
- public void run(){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glGenTextures(1, mToneCurveTexture, 0);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);
- byte[] arrayOfByte = new byte[2048];
- int[] arrayOfInt1 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 28, 30, 31, 32, 34, 35, 36, 38, 39, 41, 42, 44, 45, 47, 49, 50, 52, 54, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 92, 94, 96, 98, 101, 103, 105, 107, 110, 111, 113, 115, 118, 120, 122, 124, 126, 129, 131, 133, 135, 137, 139, 141, 143, 145, 147, 149, 150, 152, 154, 156, 158, 159, 161, 162, 164, 166, 167, 169, 170, 172, 173, 174, 176, 177, 178, 180, 181, 182, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 200, 201, 202, 203, 203, 204, 205, 205, 207, 208, 208, 209, 209, 210, 210, 211, 211, 212, 212, 213, 213, 213, 214, 214, 215, 215, 215, 216, 216, 216, 216, 217, 217, 217, 218, 218, 218, 218, 219, 219, 219, 219, 219, 220, 220, 220, 220, 220, 220, 221, 221, 221, 221, 221, 222, 222, 222, 222, 222, 223, 223, 223, 223, 223, 224, 224, 224, 224, 224, 225, 225, 225, 225, 226, 226, 226, 227, 227, 227, 228, 228, 228, 229, 229, 230, 230, 230, 231, 231, 232, 232, 233, 233, 234, 234, 235, 235, 236, 236, 237, 238, 238, 239, 239, 241, 241, 242, 243, 243, 244, 245, 245, 246, 246, 247, 248, 248, 249, 250, 250, 251, 252, 252, 253, 254, 254, 255 };
- int[] arrayOfInt2 = { 0, 1, 3, 4, 5, 7, 8, 10, 11, 12, 14, 15, 17, 18, 19, 21, 22, 24, 25, 27, 28, 30, 31, 33, 34, 36, 37, 39, 40, 42, 44, 45, 47, 48, 50, 52, 54, 55, 57, 59, 61, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 83, 85, 87, 90, 92, 94, 96, 98, 101, 103, 105, 107, 110, 111, 113, 115, 117, 119, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 143, 145, 147, 149, 150, 152, 154, 155, 157, 158, 160, 161, 163, 164, 165, 167, 168, 169, 171, 172, 173, 174, 175, 176, 177, 179, 180, 181, 182, 183, 184, 184, 185, 186, 187, 188, 189, 190, 190, 191, 192, 193, 193, 194, 195, 195, 196, 197, 197, 198, 198, 199, 199, 200, 200, 201, 201, 202, 202, 203, 203, 204, 204, 205, 205, 205, 207, 207, 208, 208, 208, 209, 209, 210, 210, 210, 211, 211, 211, 212, 212, 212, 213, 213, 213, 214, 214, 214, 215, 215, 215, 216, 216, 216, 217, 217, 217, 218, 218, 219, 219, 219, 220, 220, 220, 221, 221, 222, 222, 222, 223, 223, 224, 224, 225, 225, 225, 226, 226, 227, 227, 228, 228, 228, 229, 229, 230, 230, 231, 231, 232, 232, 233, 233, 234, 234, 235, 235, 236, 236, 236, 237, 237, 238, 238, 239, 239, 241, 241, 242, 242, 243, 244, 244, 245, 245, 246, 246, 247, 247, 248, 248, 249, 249, 250, 250, 251, 251, 252, 252, 253, 253, 254, 254, 255 };
- int[] arrayOfInt3 = { 0, 1, 3, 4, 5, 6, 8, 9, 10, 11, 13, 14, 15, 17, 18, 19, 21, 22, 23, 25, 26, 28, 29, 30, 32, 33, 35, 36, 38, 39, 41, 43, 44, 46, 47, 49, 51, 53, 54, 56, 58, 60, 62, 64, 66, 68, 69, 71, 73, 76, 78, 80, 82, 83, 85, 87, 89, 91, 93, 95, 97, 100, 102, 104, 106, 108, 110, 111, 113, 115, 117, 119, 121, 123, 125, 127, 129, 130, 132, 134, 136, 138, 139, 141, 143, 145, 146, 148, 150, 151, 153, 155, 156, 158, 159, 161, 162, 164, 165, 167, 168, 169, 171, 172, 173, 175, 176, 177, 179, 180, 181, 182, 183, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 200, 201, 202, 203, 204, 204, 205, 207, 207, 208, 209, 209, 210, 210, 211, 212, 212, 213, 213, 214, 214, 215, 215, 215, 216, 216, 217, 217, 217, 218, 218, 218, 219, 219, 219, 220, 220, 220, 220, 221, 221, 221, 221, 222, 222, 222, 222, 223, 223, 223, 223, 224, 224, 224, 224, 224, 225, 225, 225, 225, 225, 226, 226, 226, 226, 227, 227, 227, 227, 228, 228, 228, 228, 229, 229, 229, 230, 230, 230, 231, 231, 231, 232, 232, 233, 233, 233, 234, 234, 235, 235, 235, 236, 236, 237, 237, 238, 238, 239, 239, 241, 241, 242, 242, 243, 243, 244, 244, 245, 245, 246, 247, 247, 248, 248, 249, 249, 250, 250, 251, 252, 252, 253, 253, 254, 254, 255 };
- int[] arrayOfInt4 = { 0, 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 20, 20, 20, 21, 21, 21, 22, 22, 23, 23, 23, 24, 24, 24, 25, 25, 25, 25, 26, 26, 27, 27, 28, 28, 28, 28, 29, 29, 30, 29, 31, 31, 31, 31, 32, 32, 33, 33, 34, 34, 34, 34, 35, 35, 36, 36, 37, 37, 37, 38, 38, 39, 39, 39, 40, 40, 40, 41, 42, 42, 43, 43, 44, 44, 45, 45, 45, 46, 47, 47, 48, 48, 49, 50, 51, 51, 52, 52, 53, 53, 54, 55, 55, 56, 57, 57, 58, 59, 60, 60, 61, 62, 63, 63, 64, 65, 66, 67, 68, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, 91, 93, 94, 95, 96, 97, 98, 100, 101, 103, 104, 105, 107, 108, 110, 111, 113, 115, 116, 118, 119, 120, 122, 123, 125, 127, 128, 130, 132, 134, 135, 137, 139, 141, 143, 144, 146, 148, 150, 152, 154, 156, 158, 160, 163, 165, 167, 169, 171, 173, 175, 178, 180, 182, 185, 187, 189, 192, 194, 197, 199, 201, 204, 206, 209, 211, 214, 216, 219, 221, 224, 226, 229, 232, 234, 236, 239, 241, 245, 247, 250, 252, 255 };
- for (int i = 0; i < 256; i++){
- arrayOfByte[(i * 4)] = ((byte)arrayOfInt1[i]);
- arrayOfByte[(1 + i * 4)] = ((byte)arrayOfInt2[i]);
- arrayOfByte[(2 + i * 4)] = ((byte)arrayOfInt3[i]);
- arrayOfByte[(3 + i * 4)] = ((byte)arrayOfInt4[i]);
- }
- int[] arrayOfInt5 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, 53, 54, 56, 57, 58, 59, 60, 61, 63, 64, 65, 66, 67, 68, 70, 71, 72, 73, 74, 75, 77, 78, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 92, 93, 94, 95, 96, 97, 99, 100, 101, 102, 103, 104, 105, 107, 108, 109, 110, 111, 112, 114, 115, 116, 117, 118, 119, 121, 122, 123, 124, 125, 126, 128, 129, 130, 131, 132, 133, 134, 136, 137, 138, 139, 140, 141, 143, 144, 145, 146, 147, 148, 150, 151, 152, 153, 154, 155, 156, 158, 159, 160, 161, 162, 163, 165, 166, 167, 168, 169, 170, 172, 173, 174, 175, 176, 177, 178, 180, 181, 182, 183, 184, 185, 187, 188, 189, 190, 191, 192, 194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 207, 209, 210, 211, 212, 213, 214, 216, 217, 218, 219, 220, 221, 223, 224, 225, 226, 227, 228, 230, 231, 232, 233, 234, 235, 236, 238, 239, 240, 241, 242, 243, 245, 246, 247, 248, 249, 250, 252, 253, 254, 255 };
- int[] arrayOfInt6 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 4, 5, 6, 7, 9, 10, 11, 12, 14, 15, 16, 17, 19, 20, 21, 22, 24, 25, 26, 27, 29, 30, 31, 32, 34, 35, 36, 37, 39, 40, 41, 42, 44, 45, 46, 47, 49, 50, 51, 52, 53, 55, 56, 57, 58, 60, 61, 62, 63, 65, 66, 67, 68, 70, 71, 72, 73, 75, 76, 77, 78, 80, 81, 82, 83, 85, 86, 87, 88, 90, 91, 92, 93, 95, 96, 97, 98, 100, 101, 102, 103, 104, 106, 107, 108, 109, 111, 112, 113, 114, 116, 117, 118, 119, 121, 122, 123, 124, 126, 127, 128, 129, 131, 132, 133, 134, 136, 137, 138, 139, 141, 142, 143, 144, 146, 147, 148, 149, 151, 152, 153, 154, 155, 157, 158, 159, 160, 162, 163, 164, 165, 167, 168, 169, 170, 172, 173, 174, 175, 177, 178, 179, 180, 182, 183, 184, 185, 187, 188, 189, 190, 192, 193, 194, 195, 197, 198, 199, 200, 202, 203, 204, 205, 206, 208, 209, 210, 211, 213, 214, 215, 216, 218, 219, 220, 221, 223, 224, 225, 226, 228, 229, 230, 231, 233, 234, 235, 236, 238, 239, 240, 241, 243, 244, 245, 246, 248, 249, 250, 251, 253, 254, 255 };
- int[] arrayOfInt7 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46, 47, 48, 49, 51, 52, 53, 54, 55, 56, 57, 59, 60, 61, 62, 63, 64, 65, 67, 68, 69, 70, 71, 72, 74, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, 86, 87, 88, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110, 111, 113, 114, 115, 116, 117, 118, 119, 121, 122, 123, 124, 125, 126, 128, 129, 130, 131, 132, 133, 134, 136, 137, 138, 139, 140, 141, 142, 144, 145, 146, 147, 148, 149, 150, 152, 153, 154, 155, 156, 157, 159, 160, 161, 162, 163, 164, 165, 167, 168, 169, 170, 171, 172, 173, 175, 176, 177, 178, 179, 180, 181, 183, 184, 185, 186, 187, 188, 190, 191, 192, 193, 194, 195, 196, 198, 199, 200, 201, 202, 203, 204, 206, 207, 208, 209, 210, 211, 213, 214, 215, 216, 217, 218, 219, 221, 222, 223, 224, 225, 226, 227, 229, 230, 231, 232, 233, 234, 235, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 252, 253, 254, 255 };
- int[] arrayOfInt8 = { 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 12, 12, 13, 14, 14, 15, 15, 16, 17, 17, 18, 19, 19, 20, 21, 22, 22, 23, 24, 24, 25, 26, 27, 27, 28, 29, 30, 31, 31, 32, 33, 34, 34, 35, 36, 37, 38, 39, 39, 40, 41, 42, 43, 44, 44, 45, 46, 47, 48, 49, 50, 51, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 126, 127, 128, 129, 130, 131, 132, 134, 135, 136, 137, 138, 139, 140, 142, 143, 144, 145, 146, 147, 149, 150, 151, 152, 153, 155, 156, 157, 158, 159, 160, 162, 163, 164, 165, 166, 168, 169, 170, 171, 173, 174, 175, 176, 177, 179, 180, 181, 182, 184, 185, 186, 187, 189, 190, 191, 192, 194, 195, 196, 197, 199, 200, 201, 202, 204, 205, 206, 208, 209, 210, 211, 213, 214, 215, 217, 218, 219, 221, 222, 223, 224, 226, 227, 228, 230, 231, 232, 234, 235, 236, 238, 239, 240, 242, 243, 244, 246, 247, 248, 250, 251, 252, 254, 255 };
- for (int j = 0; j < 256; j++){
- arrayOfByte[(1024 + j * 4)] = ((byte)arrayOfInt5[j]);
- arrayOfByte[(1 + (1024 + j * 4))] = ((byte)arrayOfInt6[j]);
- arrayOfByte[(2 + (1024 + j * 4))] = ((byte)arrayOfInt7[j]);
- arrayOfByte[(3 + (1024 + j * 4))] = ((byte)arrayOfInt8[j]);
- }
- GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, 256, 2, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, ByteBuffer.wrap(arrayOfByte));
- GLES20.glActiveTexture(GLES20.GL_TEXTURE4);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE5);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE6);
- }
- });
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicSunsetFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicSunsetFilter.java
deleted file mode 100644
index 593e804..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicSunsetFilter.java
+++ /dev/null
@@ -1,120 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-import com.seu.magicfilter.utils.OpenGLUtils;
-
-import java.nio.ByteBuffer;
-
-public class MagicSunsetFilter extends GPUImageFilter {
- private int mMaskGrey1TextureId = -1;
- private int mMaskGrey1UniformLocation;
- private int mMaskGrey2TextureId = -1;
- private int mMaskGrey2UniformLocation;
- private int[] mToneCurveTexture = { -1 };
- private int mToneCurveTextureUniformLocation;
-
- public MagicSunsetFilter(){
- super(MagicFilterType.SUNSET, R.raw.sunset);
- }
-
- @Override
- protected void onDestroy(){
- super.onDestroy();
- GLES20.glDeleteTextures(3, new int[]{mToneCurveTexture[0], mMaskGrey1TextureId, mMaskGrey2TextureId}, 0);
- mToneCurveTexture[0] = -1;
- mMaskGrey1TextureId = -1;
- mMaskGrey2TextureId = -1;
- }
-
- @Override
- protected void onDrawArraysAfter(){
- if (mToneCurveTexture[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- if (mMaskGrey1TextureId != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE4);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- if (mMaskGrey2TextureId != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE5);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre() {
- if (mToneCurveTexture[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glUniform1i(mToneCurveTextureUniformLocation, 3);
- }
- if (mMaskGrey1TextureId != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE4);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mMaskGrey1TextureId);
- GLES20.glUniform1i(mMaskGrey1UniformLocation, 4);
- }
- if (mMaskGrey2TextureId != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE5);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mMaskGrey2TextureId);
- GLES20.glUniform1i(mMaskGrey2UniformLocation, 5);
- }
- }
-
- @Override
- protected void onInit() {
- super.onInit();
- mToneCurveTextureUniformLocation = GLES20.glGetUniformLocation(getProgram(), "curve");
- mMaskGrey1UniformLocation = GLES20.glGetUniformLocation(getProgram(), "grey1Frame");
- mMaskGrey2UniformLocation = GLES20.glGetUniformLocation(getProgram(), "grey2Frame");
- }
-
- @Override
- protected void onInitialized() {
- super.onInitialized();
- runOnDraw(new Runnable(){
- public void run(){
- GLES20.glGenTextures(1, mToneCurveTexture, 0);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);
- byte[] arrayOfByte = new byte[2048];
- int[] arrayOfInt1 = { 0, 1, 2, 3, 5, 5, 7, 8, 9, 10, 11, 12, 13, 15, 16, 16, 18, 19, 20, 21, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33, 35, 36, 38, 39, 40, 41, 42, 44, 45, 47, 48, 49, 51, 52, 54, 55, 56, 59, 60, 62, 63, 64, 66, 67, 70, 71, 72, 74, 76, 78, 79, 80, 83, 84, 85, 88, 89, 90, 93, 94, 95, 98, 99, 100, 102, 104, 106, 107, 108, 109, 112, 113, 114, 116, 117, 118, 119, 120, 122, 124, 125, 126, 128, 129, 130, 131, 132, 132, 133, 135, 136, 137, 138, 139, 140, 141, 142, 142, 143, 145, 146, 147, 148, 148, 149, 150, 151, 151, 152, 153, 154, 155, 155, 156, 157, 157, 158, 159, 160, 160, 161, 162, 162, 163, 164, 165, 165, 166, 167, 167, 168, 169, 169, 170, 171, 171, 172, 173, 173, 174, 175, 175, 176, 177, 177, 178, 178, 179, 179, 180, 181, 181, 182, 183, 183, 184, 185, 185, 186, 187, 188, 188, 189, 190, 190, 191, 192, 193, 193, 194, 194, 194, 195, 196, 197, 197, 198, 199, 200, 201, 201, 202, 203, 204, 204, 205, 206, 207, 208, 208, 208, 209, 210, 211, 212, 212, 213, 214, 215, 216, 217, 218, 218, 219, 220, 221, 222, 222, 223, 224, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 234, 235, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 247, 248, 248, 249, 250, 251, 252, 253, 254, 255 };
- int[] arrayOfInt2 = { 0, 1, 2, 3, 4, 5, 6, 7, 9, 9, 10, 12, 12, 13, 14, 16, 16, 17, 19, 20, 20, 22, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 41, 42, 43, 44, 46, 47, 49, 50, 51, 53, 54, 56, 57, 59, 61, 62, 64, 65, 66, 69, 70, 72, 73, 76, 77, 78, 80, 82, 84, 85, 87, 89, 90, 93, 94, 95, 98, 99, 100, 103, 104, 106, 108, 109, 111, 112, 114, 116, 117, 118, 120, 122, 123, 124, 125, 126, 129, 130, 131, 132, 133, 135, 136, 137, 138, 139, 140, 141, 142, 143, 145, 146, 147, 148, 149, 150, 151, 152, 152, 153, 154, 155, 156, 157, 158, 158, 159, 160, 161, 162, 162, 163, 164, 165, 165, 166, 167, 167, 168, 169, 170, 170, 171, 172, 172, 173, 173, 174, 175, 175, 176, 177, 177, 178, 178, 178, 179, 179, 180, 181, 181, 182, 182, 183, 184, 184, 185, 185, 186, 187, 187, 188, 188, 189, 190, 190, 191, 191, 192, 193, 193, 194, 194, 194, 195, 195, 196, 197, 197, 198, 199, 199, 200, 201, 202, 202, 203, 204, 204, 205, 206, 207, 208, 208, 208, 209, 210, 210, 211, 212, 213, 214, 215, 215, 216, 217, 218, 219, 220, 221, 222, 222, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 234, 235, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 248, 249, 250, 251, 252, 253, 254, 255 };
- int[] arrayOfInt3 = { 0, 1, 2, 3, 4, 5, 5, 7, 8, 9, 9, 11, 12, 12, 13, 14, 16, 16, 17, 18, 20, 20, 21, 22, 23, 25, 25, 26, 27, 29, 30, 31, 31, 32, 34, 35, 36, 37, 39, 40, 41, 41, 42, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 56, 57, 59, 60, 61, 63, 64, 65, 66, 67, 69, 71, 72, 73, 74, 76, 78, 79, 80, 82, 83, 84, 85, 88, 89, 90, 92, 93, 94, 95, 98, 99, 100, 102, 103, 104, 106, 107, 108, 111, 112, 113, 114, 116, 117, 118, 119, 120, 122, 123, 124, 125, 126, 128, 129, 130, 131, 132, 133, 135, 136, 137, 138, 139, 140, 141, 142, 143, 145, 146, 147, 147, 148, 149, 150, 151, 152, 153, 154, 154, 155, 156, 157, 158, 159, 159, 160, 161, 162, 162, 163, 164, 165, 166, 166, 167, 168, 169, 169, 170, 171, 172, 172, 173, 174, 175, 175, 176, 177, 178, 178, 178, 179, 179, 180, 181, 182, 182, 183, 184, 185, 185, 186, 187, 188, 188, 189, 190, 191, 191, 192, 193, 194, 194, 194, 195, 196, 197, 198, 198, 199, 200, 201, 202, 203, 203, 204, 205, 206, 207, 208, 208, 209, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 222, 223, 224, 225, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 235, 236, 237, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 248, 249, 250, 251, 252, 253, 254, 255 };
- int[] arrayOfInt4 = { 0, 1, 3, 4, 6, 7, 9, 10, 12, 13, 14, 16, 17, 19, 20, 21, 23, 24, 26, 27, 28, 30, 31, 32, 34, 35, 36, 38, 39, 40, 42, 43, 44, 45, 47, 48, 49, 51, 52, 53, 54, 55, 57, 58, 59, 60, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73, 74, 75, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 115, 116, 117, 118, 119, 120, 121, 121, 122, 123, 124, 125, 126, 126, 127, 128, 129, 130, 130, 131, 132, 133, 134, 135, 135, 136, 137, 138, 139, 140, 141, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 230, 231, 232, 233, 234, 235, 235, 236, 237, 238, 239, 239, 240, 241, 242, 243, 243, 244, 245, 245, 246, 247, 247, 248, 249, 249, 250, 251, 251, 252, 252, 253, 253, 254, 254, 255 };
- for (int i = 0; i < 256; i++)
- {
- arrayOfByte[(i * 4)] = ((byte)arrayOfInt1[i]);
- arrayOfByte[(1 + i * 4)] = ((byte)arrayOfInt2[i]);
- arrayOfByte[(2 + i * 4)] = ((byte)arrayOfInt3[i]);
- arrayOfByte[(3 + i * 4)] = ((byte)arrayOfInt4[i]);
- }
- int[] arrayOfInt5 = { 0, 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 20, 20, 20, 21, 21, 21, 22, 22, 23, 23, 23, 24, 24, 24, 25, 25, 25, 25, 26, 26, 27, 27, 28, 28, 28, 28, 29, 29, 30, 29, 31, 31, 31, 31, 32, 32, 33, 33, 34, 34, 34, 34, 35, 35, 36, 36, 37, 37, 37, 38, 38, 39, 39, 39, 40, 40, 40, 41, 42, 42, 43, 43, 44, 44, 45, 45, 45, 46, 47, 47, 48, 48, 49, 50, 51, 51, 52, 52, 53, 53, 54, 55, 55, 56, 57, 57, 58, 59, 60, 60, 61, 62, 63, 63, 64, 65, 66, 67, 68, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, 91, 93, 94, 95, 96, 97, 98, 100, 101, 103, 104, 105, 107, 108, 110, 111, 113, 115, 116, 118, 119, 120, 122, 123, 125, 127, 128, 130, 132, 134, 135, 137, 139, 141, 143, 144, 146, 148, 150, 152, 154, 156, 158, 160, 163, 165, 167, 169, 171, 173, 175, 178, 180, 182, 185, 187, 189, 192, 194, 197, 199, 201, 204, 206, 209, 211, 214, 216, 219, 221, 224, 226, 229, 232, 234, 236, 239, 241, 245, 247, 250, 252, 255 };
- for (int j = 0; j < 256; j++)
- {
- arrayOfByte[(1024 + j * 4)] = ((byte)arrayOfInt5[j]);
- arrayOfByte[(1 + (1024 + j * 4))] = ((byte)arrayOfInt5[j]);
- arrayOfByte[(2 + (1024 + j * 4))] = ((byte)arrayOfInt5[j]);
- arrayOfByte[(3 + (1024 + j * 4))] = -1;
- }
- GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, 256, 2, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, ByteBuffer.wrap(arrayOfByte));
- mMaskGrey1TextureId = OpenGLUtils.loadTexture(getContext(), "filter/rise_mask1.jpg");
- mMaskGrey2TextureId = OpenGLUtils.loadTexture(getContext(), "filter/rise_mask2.jpg");
- }
- });
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicSutroFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicSutroFilter.java
deleted file mode 100644
index fe5d977..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicSutroFilter.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-import com.seu.magicfilter.utils.OpenGLUtils;
-
-public class MagicSutroFilter extends GPUImageFilter {
- private int[] inputTextureHandles = {-1,-1,-1,-1,-1};
- private int[] inputTextureUniformLocations = {-1,-1,-1,-1,-1};
- private int mGLStrengthLocation;
-
- public MagicSutroFilter(){
- super(MagicFilterType.SUTRO, R.raw.sutro);
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- GLES20.glDeleteTextures(inputTextureHandles.length, inputTextureHandles, 0);
- for (int i = 0; i < inputTextureHandles.length; i++) {
- inputTextureHandles[i] = -1;
- }
- }
-
- protected void onDrawArraysAfter(){
- for(int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3));
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre(){
- for(int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3) );
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, inputTextureHandles[i]);
- GLES20.glUniform1i(inputTextureUniformLocations[i], (i+3));
- }
- }
-
- @Override
- protected void onInit() {
- super.onInit();
- for(int i = 0; i < inputTextureUniformLocations.length; i++) {
- inputTextureUniformLocations[i] = GLES20.glGetUniformLocation(getProgram(), "inputImageTexture" + (2 + i));
- }
- mGLStrengthLocation = GLES20.glGetUniformLocation(getProgram(), "strength");
- }
-
- @Override
- protected void onInitialized() {
- super.onInitialized();
- setFloat(mGLStrengthLocation, 1.0f);
- runOnDraw(new Runnable(){
- public void run(){
- inputTextureHandles[0] = OpenGLUtils.loadTexture(getContext(), "filter/vignette_map.png");
- inputTextureHandles[1] = OpenGLUtils.loadTexture(getContext(), "filter/sutrometal.png");
- inputTextureHandles[2] = OpenGLUtils.loadTexture(getContext(), "filter/softlight.png");
- inputTextureHandles[3] = OpenGLUtils.loadTexture(getContext(), "filter/sutroedgeburn.png");
- inputTextureHandles[4] = OpenGLUtils.loadTexture(getContext(), "filter/sutrocurves.png");
- }
- });
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicSweetsFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicSweetsFilter.java
deleted file mode 100644
index de98e69..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicSweetsFilter.java
+++ /dev/null
@@ -1,96 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-import com.seu.magicfilter.utils.OpenGLUtils;
-
-import java.nio.ByteBuffer;
-
-public class MagicSweetsFilter extends GPUImageFilter {
- private int[] mToneCurveTexture = {-1};
- private int mToneCurveTextureUniformLocation;
- private int mMaskGrey1TextureId = -1;
- private int mMaskGrey1UniformLocation;
- private int mLowPerformanceUniformLocation;
-
- public MagicSweetsFilter(){
- super(MagicFilterType.SWEETS, R.raw.sweets);
- }
-
- @Override
- protected void onDestroy(){
- super.onDestroy();
- GLES20.glDeleteTextures(2, new int[]{mToneCurveTexture[0], mMaskGrey1TextureId}, 0);
- mToneCurveTexture[0] = -1;
- mMaskGrey1TextureId = -1;
- }
-
- @Override
- protected void onDrawArraysAfter(){
- if (mToneCurveTexture[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- if (mMaskGrey1TextureId != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE4);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre(){
- if (mToneCurveTexture[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glUniform1i(mToneCurveTextureUniformLocation, 3);
- }
- if (mMaskGrey1TextureId != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE4);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mMaskGrey1TextureId);
- GLES20.glUniform1i(mMaskGrey1UniformLocation, 4);
- }
- }
-
- @Override
- protected void onInit(){
- super.onInit();
- mToneCurveTextureUniformLocation = GLES20.glGetUniformLocation(getProgram(), "curve");
- mMaskGrey1UniformLocation = GLES20.glGetUniformLocation(getProgram(), "grey1Frame");
- mLowPerformanceUniformLocation = GLES20.glGetUniformLocation(getProgram(), "lowPerformance");
- setInteger(mLowPerformanceUniformLocation, 1);
- }
-
- @Override
- protected void onInitialized(){
- super.onInitialized();
- runOnDraw(new Runnable(){
- public void run(){
- GLES20.glGenTextures(1, mToneCurveTexture, 0);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);
- byte[] arrayOfByte = new byte[1024];
- int[] arrayOfInt = { 0, 1, 2, 2, 3, 4, 5, 6, 6, 7, 8, 9, 10, 10, 11, 12, 13, 14, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 23, 24, 24, 25, 26, 27, 28, 29, 30, 30, 31, 32, 33, 34, 35, 36, 37, 38, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 71, 72, 73, 74, 75, 76, 77, 79, 80, 81, 82, 83, 84, 86, 87, 88, 89, 90, 92, 93, 94, 95, 96, 98, 99, 100, 101, 103, 104, 105, 106, 108, 109, 110, 111, 113, 114, 115, 116, 118, 119, 120, 121, 123, 124, 125, 126, 128, 129, 130, 132, 133, 134, 135, 137, 138, 139, 140, 142, 143, 144, 145, 147, 148, 149, 150, 152, 153, 154, 155, 157, 158, 159, 160, 161, 163, 164, 165, 166, 167, 169, 170, 171, 172, 173, 174, 176, 177, 178, 179, 180, 181, 182, 183, 184, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 209, 210, 211, 212, 213, 214, 215, 216, 217, 217, 218, 219, 220, 221, 222, 222, 223, 224, 225, 226, 227, 227, 228, 229, 230, 230, 231, 232, 233, 234, 234, 235, 236, 237, 237, 238, 239, 240, 240, 241, 242, 243, 243, 244, 245, 246, 246, 247, 248, 248, 249, 250, 251, 251, 252, 253, 254, 254, 255 };
- for (int i = 0; i < 256; i++){
- arrayOfByte[(i * 4)] = ((byte)arrayOfInt[i]);
- arrayOfByte[(1 + i * 4)] = ((byte)arrayOfInt[i]);
- arrayOfByte[(2 + i * 4)] = ((byte)arrayOfInt[i]);
- arrayOfByte[(3 + i * 4)] = ((byte)i);
- }
- GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, 256, 1, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, ByteBuffer.wrap(arrayOfByte));
- mMaskGrey1TextureId = OpenGLUtils.loadTexture(getContext(), "filter/rise_mask2.jpg");
- }
- });
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicTenderFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicTenderFilter.java
deleted file mode 100644
index da82d62..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicTenderFilter.java
+++ /dev/null
@@ -1,96 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-import com.seu.magicfilter.utils.OpenGLUtils;
-
-import java.nio.ByteBuffer;
-
-public class MagicTenderFilter extends GPUImageFilter{
- private int[] mToneCurveTexture = {-1};
- private int mToneCurveTextureUniformLocation;
- private int mMaskGrey1TextureId = -1;
- private int mMaskGrey1UniformLocation;
-
- public MagicTenderFilter(){
- super(MagicFilterType.TENDER, R.raw.tender);
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- GLES20.glDeleteTextures(2, new int[]{mToneCurveTexture[0], mMaskGrey1TextureId}, 0);
- mToneCurveTexture[0] = -1;
- mMaskGrey1TextureId = -1;
- }
-
- @Override
- protected void onDrawArraysAfter() {
- if (mToneCurveTexture[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- if (mMaskGrey1TextureId != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE4);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre() {
- if (mToneCurveTexture[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glUniform1i(mToneCurveTextureUniformLocation, 3);
- }
- if (mMaskGrey1TextureId != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE4);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mMaskGrey1TextureId);
- GLES20.glUniform1i(mMaskGrey1UniformLocation, 4);
- }
- }
-
- @Override
- protected void onInit() {
- super.onInit();
- mToneCurveTextureUniformLocation = GLES20.glGetUniformLocation(getProgram(), "curve");
- mMaskGrey1UniformLocation = GLES20.glGetUniformLocation(getProgram(), "grey1Frame");
- }
-
- @Override
- protected void onInitialized() {
- super.onInitialized();
- runOnDraw(new Runnable(){
- public void run(){
- GLES20.glGenTextures(1, mToneCurveTexture, 0);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);
- byte[] arrayOfByte = new byte[1024];
- int[] arrayOfInt1 = { 10, 12, 14, 15, 17, 19, 21, 22, 24, 26, 28, 29, 31, 33, 35, 38, 40, 41, 43, 45, 47, 48, 50, 52, 53, 55, 57, 58, 60, 61, 63, 65, 66, 68, 69, 71, 72, 74, 75, 77, 79, 80, 81, 83, 84, 86, 87, 89, 92, 93, 94, 96, 97, 99, 100, 101, 103, 104, 105, 107, 108, 109, 110, 112, 113, 114, 116, 117, 118, 119, 120, 122, 123, 124, 125, 126, 127, 129, 130, 131, 132, 133, 134, 135, 136, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 158, 159, 160, 161, 162, 163, 164, 165, 166, 166, 167, 168, 169, 170, 171, 171, 172, 173, 174, 175, 175, 176, 177, 178, 179, 179, 180, 181, 182, 182, 183, 184, 184, 185, 186, 187, 187, 188, 189, 189, 190, 191, 191, 192, 193, 193, 194, 195, 195, 196, 196, 197, 198, 198, 199, 200, 200, 201, 201, 202, 202, 203, 204, 204, 205, 205, 206, 206, 207, 207, 208, 209, 209, 210, 210, 211, 211, 212, 212, 213, 213, 214, 214, 215, 215, 216, 216, 216, 217, 217, 218, 218, 219, 219, 219, 220, 220, 221, 221, 222, 222, 223, 223, 224, 224, 224, 225, 225, 226, 226, 227, 227, 227, 228, 228, 229, 229, 230, 230, 230, 231, 231, 232, 232, 232, 233, 233, 234, 234, 234, 234, 235, 235, 236, 236, 236, 237, 237, 238, 238, 238, 239, 239, 240, 240, 240, 241, 241, 242, 242 };
- int[] arrayOfInt2 = { 10, 12, 14, 15, 17, 19, 19, 21, 22, 24, 26, 28, 29, 31, 33, 35, 36, 36, 38, 40, 41, 43, 45, 47, 48, 50, 52, 52, 53, 55, 57, 58, 60, 61, 63, 65, 66, 68, 69, 69, 71, 72, 74, 75, 77, 79, 80, 81, 83, 84, 86, 86, 87, 89, 90, 92, 93, 94, 96, 97, 99, 100, 101, 103, 103, 104, 105, 107, 108, 109, 110, 112, 113, 114, 116, 117, 118, 119, 120, 122, 122, 123, 124, 125, 126, 127, 129, 130, 131, 132, 133, 134, 135, 136, 138, 139, 140, 141, 142, 143, 144, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 158, 159, 160, 161, 162, 163, 164, 165, 166, 166, 167, 168, 169, 170, 171, 171, 172, 173, 174, 175, 175, 176, 177, 178, 179, 179, 180, 181, 182, 182, 183, 184, 184, 185, 186, 187, 187, 188, 189, 190, 191, 191, 192, 193, 193, 194, 195, 195, 196, 196, 197, 198, 198, 199, 200, 200, 201, 201, 202, 202, 204, 204, 205, 205, 206, 206, 207, 207, 208, 209, 209, 210, 210, 211, 211, 212, 213, 213, 214, 214, 215, 215, 216, 216, 217, 217, 218, 218, 219, 219, 220, 220, 221, 221, 222, 222, 223, 223, 224, 224, 224, 225, 226, 226, 227, 227, 227, 228, 228, 229, 229, 230, 230, 231, 231, 232, 232, 232, 233, 233, 234, 234, 234, 235, 236, 236, 236, 237, 237, 238, 238, 238, 239, 239, 240, 240, 241, 241, 242, 242 };
- int[] arrayOfInt3 = { 10, 12, 12, 14, 15, 15, 17, 17, 19, 21, 21, 22, 24, 24, 26, 28, 28, 29, 31, 31, 33, 33, 35, 36, 36, 38, 40, 40, 41, 43, 43, 45, 47, 47, 48, 50, 52, 52, 53, 55, 55, 57, 58, 58, 60, 61, 63, 63, 65, 66, 68, 68, 69, 71, 71, 72, 74, 75, 77, 77, 79, 80, 81, 81, 83, 84, 86, 87, 87, 89, 90, 92, 93, 94, 94, 96, 97, 99, 100, 101, 103, 103, 104, 105, 107, 108, 109, 110, 112, 113, 113, 114, 116, 117, 118, 119, 120, 122, 123, 124, 125, 126, 127, 129, 130, 130, 131, 132, 133, 134, 135, 136, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 154, 155, 156, 157, 158, 158, 159, 160, 161, 162, 163, 164, 165, 166, 166, 167, 169, 170, 171, 171, 172, 173, 174, 175, 175, 176, 178, 179, 179, 180, 181, 182, 182, 183, 184, 185, 186, 187, 187, 188, 189, 190, 191, 191, 192, 193, 193, 195, 195, 196, 196, 197, 198, 199, 200, 200, 201, 201, 202, 203, 204, 204, 205, 206, 206, 207, 207, 209, 209, 210, 210, 211, 212, 212, 213, 213, 214, 215, 215, 216, 217, 217, 218, 218, 219, 219, 220, 220, 221, 222, 222, 223, 223, 224, 224, 225, 225, 226, 227, 227, 227, 228, 229, 229, 230, 230, 231, 231, 232, 232, 233, 233, 234, 234, 235, 235, 236, 236, 237, 238, 238, 238, 239, 240, 240, 240, 241, 242, 242 };
- int[] arrayOfInt4 = { 0, 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 20, 20, 20, 21, 21, 21, 22, 22, 23, 23, 23, 24, 24, 24, 25, 25, 25, 25, 26, 26, 27, 27, 28, 28, 28, 28, 29, 29, 30, 29, 31, 31, 31, 31, 32, 32, 33, 33, 34, 34, 34, 34, 35, 35, 36, 36, 37, 37, 37, 38, 38, 39, 39, 39, 40, 40, 40, 41, 42, 42, 43, 43, 44, 44, 45, 45, 45, 46, 47, 47, 48, 48, 49, 50, 51, 51, 52, 52, 53, 53, 54, 55, 55, 56, 57, 57, 58, 59, 60, 60, 61, 62, 63, 63, 64, 65, 66, 67, 68, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, 91, 93, 94, 95, 96, 97, 98, 100, 101, 103, 104, 105, 107, 108, 110, 111, 113, 115, 116, 118, 119, 120, 122, 123, 125, 127, 128, 130, 132, 134, 135, 137, 139, 141, 143, 144, 146, 148, 150, 152, 154, 156, 158, 160, 163, 165, 167, 169, 171, 173, 175, 178, 180, 182, 185, 187, 189, 192, 194, 197, 199, 201, 204, 206, 209, 211, 214, 216, 219, 221, 224, 226, 229, 232, 234, 236, 239, 241, 245, 247, 250, 252, 255 };
- for (int i = 0; i < 256; i++){
- arrayOfByte[(i * 4)] = ((byte)arrayOfInt1[i]);
- arrayOfByte[(1 + i * 4)] = ((byte)arrayOfInt2[i]);
- arrayOfByte[(2 + i * 4)] = ((byte)arrayOfInt3[i]);
- arrayOfByte[(3 + i * 4)] = ((byte)arrayOfInt4[i]);
- }
- GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, 256, 1, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, ByteBuffer.wrap(arrayOfByte));
- mMaskGrey1TextureId = OpenGLUtils.loadTexture(getContext(), "filter/bluevintage_mask1.jpg");
- }
- });
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicToasterFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicToasterFilter.java
deleted file mode 100644
index f860e3d..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicToasterFilter.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-import com.seu.magicfilter.utils.OpenGLUtils;
-
-public class MagicToasterFilter extends GPUImageFilter{
- private int[] inputTextureHandles = {-1,-1,-1,-1,-1};
- private int[] inputTextureUniformLocations = {-1,-1,-1,-1,-1};
- private int mGLStrengthLocation;
-
- public MagicToasterFilter(){
- super(MagicFilterType.TOASTER2, R.raw.toaster2_filter_shader);
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- GLES20.glDeleteTextures(inputTextureHandles.length, inputTextureHandles, 0);
- for(int i = 0; i < inputTextureHandles.length; i++)
- inputTextureHandles[i] = -1;
- }
-
- @Override
- protected void onDrawArraysAfter() {
- for(int i = 0; i < inputTextureHandles.length
- && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3));
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre() {
- for(int i = 0; i < inputTextureHandles.length
- && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3) );
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, inputTextureHandles[i]);
- GLES20.glUniform1i(inputTextureUniformLocations[i], (i+3));
- }
- }
-
- @Override
- protected void onInit() {
- super.onInit();
- for(int i = 0; i < inputTextureUniformLocations.length; i++) {
- inputTextureUniformLocations[i] = GLES20.glGetUniformLocation(getProgram(), "inputImageTexture" + (2 + i));
- }
- mGLStrengthLocation = GLES20.glGetUniformLocation(getProgram(), "strength");
- }
-
- @Override
- protected void onInitialized() {
- super.onInitialized();
- setFloat(mGLStrengthLocation, 1.0f);
- runOnDraw(new Runnable(){
- public void run(){
- inputTextureHandles[0] = OpenGLUtils.loadTexture(getContext(), "filter/toastermetal.png");
- inputTextureHandles[1] = OpenGLUtils.loadTexture(getContext(), "filter/toastersoftlight.png");
- inputTextureHandles[2] = OpenGLUtils.loadTexture(getContext(), "filter/toastercurves.png");
- inputTextureHandles[3] = OpenGLUtils.loadTexture(getContext(), "filter/toasteroverlaymapwarm.png");
- inputTextureHandles[4] = OpenGLUtils.loadTexture(getContext(), "filter/toastercolorshift.png");
- }
- });
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicValenciaFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicValenciaFilter.java
deleted file mode 100644
index de55a74..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicValenciaFilter.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-import com.seu.magicfilter.utils.OpenGLUtils;
-
-public class MagicValenciaFilter extends GPUImageFilter{
- private int[] inputTextureHandles = {-1,-1};
- private int[] inputTextureUniformLocations = {-1,-1};
- private int mGLStrengthLocation;
-
- public MagicValenciaFilter(){
- super(MagicFilterType.VALENCIA, R.raw.valencia);
- }
-
- @Override
- protected void onDrawArraysAfter() {
- for(int i = 0; i < inputTextureHandles.length
- && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3));
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre() {
- for(int i = 0; i < inputTextureHandles.length
- && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3) );
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, inputTextureHandles[i]);
- GLES20.glUniform1i(inputTextureUniformLocations[i], (i+3));
- }
- }
-
- @Override
- public void onInit() {
- super.onInit();
- for(int i = 0; i < inputTextureUniformLocations.length; i++) {
- inputTextureUniformLocations[i] = GLES20.glGetUniformLocation(getProgram(), "inputImageTexture" + (2 + i));
- }
- mGLStrengthLocation = GLES20.glGetUniformLocation(getProgram(), "strength");
- }
-
- @Override
- public void onDestroy() {
- super.onDestroy();
- GLES20.glDeleteTextures(inputTextureHandles.length, inputTextureHandles, 0);
- for(int i = 0; i < inputTextureHandles.length; i++) {
- inputTextureHandles[i] = -1;
- }
- }
-
- @Override
- public void onInitialized() {
- super.onInitialized();
- setFloat(mGLStrengthLocation, 1.0f);
- runOnDraw(new Runnable(){
- public void run(){
- inputTextureHandles[0] = OpenGLUtils.loadTexture(getContext(), "filter/valenciamap.png");
- inputTextureHandles[1] = OpenGLUtils.loadTexture(getContext(), "filter/valenciagradientmap.png");
- }
- });
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicWaldenFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicWaldenFilter.java
deleted file mode 100644
index f4163d5..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicWaldenFilter.java
+++ /dev/null
@@ -1,66 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-import com.seu.magicfilter.utils.OpenGLUtils;
-
-public class MagicWaldenFilter extends GPUImageFilter {
-
- private int[] inputTextureHandles = {-1,-1};
- private int[] inputTextureUniformLocations = {-1,-1};
- private int mGLStrengthLocation;
-
- public MagicWaldenFilter(){
- super(MagicFilterType.WALDEN, R.raw.walden);
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- GLES20.glDeleteTextures(inputTextureHandles.length, inputTextureHandles, 0);
- for(int i = 0; i < inputTextureHandles.length; i++)
- inputTextureHandles[i] = -1;
- }
-
- @Override
- protected void onDrawArraysAfter(){
- for(int i = 0; i < inputTextureHandles.length
- && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3));
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre(){
- for(int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3) );
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, inputTextureHandles[i]);
- GLES20.glUniform1i(inputTextureUniformLocations[i], (i+3));
- }
- }
-
- @Override
- public void onInit(){
- super.onInit();
- for(int i = 0; i < inputTextureUniformLocations.length; i++)
- inputTextureUniformLocations[i] = GLES20.glGetUniformLocation(getProgram(), "inputImageTexture"+(2+i));
- mGLStrengthLocation = GLES20.glGetUniformLocation(getProgram(), "strength");
- }
-
- @Override
- public void onInitialized(){
- super.onInitialized();
- setFloat(mGLStrengthLocation, 1.0f);
- runOnDraw(new Runnable(){
- public void run(){
- inputTextureHandles[0] = OpenGLUtils.loadTexture(getContext(), "filter/walden_map.png");
- inputTextureHandles[1] = OpenGLUtils.loadTexture(getContext(), "filter/vignette_map.png");
- }
- });
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicWarmFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicWarmFilter.java
deleted file mode 100644
index 9a9544c..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicWarmFilter.java
+++ /dev/null
@@ -1,118 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-
-import java.nio.ByteBuffer;
-
-public class MagicWarmFilter extends GPUImageFilter {
- private int[] mToneCurveTexture = {-1};
- private int mToneCurveTextureUniformLocation;
- private int mMaskGrey1TextureId = -1;
- private int mMaskGrey1UniformLocation;
- private int mMaskGrey2TextureId = -1;
- private int mMaskGrey2UniformLocation;
-
- public MagicWarmFilter(){
- super(MagicFilterType.WARM, R.raw.warm);
- }
-
- @Override
- public void onDestroy(){
- super.onDestroy();
- GLES20.glDeleteTextures(3, new int[]{mToneCurveTexture[0], mMaskGrey1TextureId, mMaskGrey2TextureId}, 0);
- mToneCurveTexture[0] = -1;
- mMaskGrey1TextureId = -1;
- mMaskGrey2TextureId = -1;
- }
-
- @Override
- protected void onDrawArraysAfter(){
- if (mToneCurveTexture[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- if (mMaskGrey1TextureId != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE4);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- if (mMaskGrey2TextureId != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE5);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre(){
- if (mToneCurveTexture[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glUniform1i(mToneCurveTextureUniformLocation, 3);
- }
- if (mMaskGrey1TextureId != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE4);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mMaskGrey1TextureId);
- GLES20.glUniform1i(mMaskGrey1UniformLocation, 4);
- }
- if (mMaskGrey2TextureId != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE5);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mMaskGrey2TextureId);
- GLES20.glUniform1i(mMaskGrey2UniformLocation, 5);
- }
- }
-
- @Override
- protected void onInit(){
- super.onInit();
- mToneCurveTextureUniformLocation = GLES20.glGetUniformLocation(getProgram(), "curve");
- mMaskGrey1UniformLocation = GLES20.glGetUniformLocation(getProgram(), "layerImage");
- mMaskGrey2UniformLocation = GLES20.glGetUniformLocation(getProgram(), "greyFrame");
- }
-
- @Override
- protected void onInitialized(){
- super.onInitialized();
- runOnDraw(new Runnable(){
- public void run(){
- GLES20.glGenTextures(1, mToneCurveTexture, 0);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);
- byte[] arrayOfByte = new byte[2048];
- int[] arrayOfInt1 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6, 9, 12, 14, 17, 20, 23, 25, 28, 31, 33, 35, 38, 40, 42, 44, 46, 48, 50, 52, 53, 55, 57, 58, 60, 61, 63, 64, 65, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 80, 81, 82, 83, 83, 84, 85, 85, 86, 87, 87, 88, 88, 89, 90, 90, 91, 91, 92, 93, 93, 94, 94, 95, 96, 96, 97, 98, 99, 99, 100, 101, 102, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 114, 115, 116, 117, 119, 120, 121, 123, 124, 126, 127, 128, 130, 131, 133, 135, 136, 138, 139, 141, 143, 144, 146, 148, 149, 151, 153, 154, 156, 158, 159, 161, 163, 165, 166, 168, 170, 172, 173, 175, 177, 179, 180, 182, 184, 185, 187, 189, 190, 192, 194, 195, 197, 199, 200, 202, 203, 205, 207, 208, 210, 211, 213, 214, 215, 217, 218, 219, 221, 222, 223, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 238, 239, 240, 241, 241, 242, 243, 243, 244, 244, 245, 245, 246, 246, 247, 247, 248, 248, 249, 249, 249, 250, 250, 250, 251, 251, 251, 251, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 254, 254, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 255 };
- int[] arrayOfInt2 = { 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 87, 88, 89, 90, 91, 92, 93, 94, 95, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 235, 236, 237, 238, 239, 240, 241, 242 };
- int[] arrayOfInt3 = { 9, 10, 11, 11, 12, 13, 14, 15, 16, 16, 17, 18, 19, 20, 21, 21, 22, 23, 24, 25, 26, 26, 27, 28, 29, 30, 31, 31, 32, 33, 34, 35, 36, 36, 37, 38, 39, 40, 40, 41, 42, 43, 44, 45, 45, 46, 47, 48, 49, 50, 50, 51, 52, 53, 54, 55, 55, 56, 57, 58, 59, 60, 60, 61, 62, 63, 64, 65, 66, 66, 67, 68, 69, 70, 71, 71, 72, 73, 74, 75, 76, 76, 77, 78, 79, 80, 81, 81, 82, 83, 84, 85, 86, 87, 87, 88, 89, 90, 91, 92, 93, 93, 94, 95, 96, 97, 98, 98, 99, 100, 101, 102, 103, 104, 104, 105, 106, 107, 108, 109, 110, 110, 111, 112, 113, 114, 115, 116, 116, 117, 118, 119, 120, 121, 122, 123, 123, 124, 125, 126, 127, 128, 129, 130, 130, 131, 132, 133, 134, 135, 136, 137, 137, 138, 139, 140, 141, 142, 143, 144, 144, 145, 146, 147, 148, 149, 150, 151, 152, 152, 153, 154, 155, 156, 157, 158, 159, 160, 160, 161, 162, 163, 164, 165, 166, 167, 168, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 225, 226, 227, 228, 229, 230 };
- int[] arrayOfInt4 = { 0, 0, 1, 1, 2, 2, 3, 3, 4, 5, 5, 6, 6, 7, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 33, 34, 35, 37, 38, 40, 41, 42, 44, 45, 47, 48, 50, 51, 53, 54, 56, 58, 59, 61, 62, 64, 65, 67, 69, 70, 72, 73, 75, 77, 78, 80, 82, 83, 85, 86, 88, 90, 91, 93, 94, 96, 98, 99, 101, 102, 104, 105, 107, 108, 110, 111, 113, 114, 116, 117, 119, 120, 122, 123, 124, 126, 127, 129, 130, 131, 133, 134, 136, 137, 138, 140, 141, 142, 144, 145, 146, 147, 149, 150, 151, 153, 154, 155, 156, 157, 159, 160, 161, 162, 163, 165, 166, 167, 168, 169, 170, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 203, 204, 205, 206, 207, 208, 208, 209, 210, 211, 212, 212, 213, 214, 215, 216, 216, 217, 218, 218, 219, 220, 221, 221, 222, 223, 223, 224, 225, 225, 226, 227, 227, 228, 228, 229, 230, 230, 231, 231, 232, 233, 233, 234, 234, 235, 235, 236, 236, 237, 238, 238, 239, 239, 240, 240, 241, 241, 242, 242, 243, 243, 244, 244, 245, 245, 246, 246, 247, 247, 248, 248, 249, 249, 249, 250, 250, 251, 251, 252, 252, 253, 253, 254, 254, 255, 255 };
- for (int i = 0; i < 256; i++){
- arrayOfByte[(i * 4)] = ((byte)arrayOfInt1[i]);
- arrayOfByte[(1 + i * 4)] = ((byte)arrayOfInt2[i]);
- arrayOfByte[(2 + i * 4)] = ((byte)arrayOfInt3[i]);
- arrayOfByte[(3 + i * 4)] = ((byte)arrayOfInt4[i]);
- }
- int[] arrayOfInt5 = { 0, 1, 1, 2, 3, 4, 4, 5, 6, 6, 7, 8, 8, 9, 10, 11, 11, 11, 12, 13, 13, 14, 15, 15, 16, 17, 18, 18, 19, 20, 21, 21, 22, 23, 24, 24, 25, 26, 27, 28, 28, 28, 29, 30, 31, 31, 32, 33, 34, 35, 36, 36, 37, 38, 39, 39, 40, 41, 41, 42, 43, 44, 45, 46, 47, 47, 48, 49, 50, 51, 52, 53, 54, 55, 55, 56, 57, 58, 59, 60, 61, 62, 63, 63, 64, 65, 66, 68, 69, 70, 71, 71, 72, 73, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 86, 87, 88, 89, 90, 92, 93, 94, 95, 95, 97, 98, 99, 100, 102, 103, 104, 105, 106, 108, 109, 110, 111, 112, 114, 115, 116, 117, 118, 119, 122, 123, 124, 125, 126, 127, 129, 130, 131, 132, 133, 134, 135, 137, 138, 139, 141, 142, 143, 144, 145, 146, 148, 149, 150, 151, 152, 154, 155, 156, 157, 158, 159, 161, 162, 164, 165, 166, 167, 168, 169, 170, 171, 173, 174, 175, 176, 177, 178, 179, 180, 183, 184, 185, 186, 187, 188, 190, 191, 192, 193, 194, 195, 196, 198, 199, 200, 201, 202, 203, 205, 206, 207, 208, 209, 210, 212, 213, 214, 215, 216, 217, 219, 220, 221, 222, 223, 224, 226, 227, 228, 229, 230, 231, 233, 234, 235, 236, 237, 239, 240, 241, 242, 243, 243, 244, 246, 247, 248, 249, 250, 251, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255 };
- int[] arrayOfInt6 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 39, 40, 41, 42, 43, 44, 45, 46, 47, 47, 48, 49, 50, 51, 52, 53, 54, 55, 55, 56, 57, 58, 60, 61, 62, 63, 63, 64, 65, 66, 67, 68, 69, 70, 71, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 80, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 133, 134, 135, 136, 137, 138, 139, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 154, 155, 156, 157, 158, 159, 161, 162, 164, 165, 166, 167, 168, 169, 170, 171, 173, 174, 175, 176, 177, 178, 179, 180, 182, 183, 184, 185, 186, 187, 190, 191, 192, 193, 194, 195, 196, 198, 199, 200, 201, 202, 203, 205, 206, 207, 208, 209, 210, 212, 213, 214, 215, 216, 217, 220, 221, 222, 223, 224, 226, 227, 228, 229, 230, 231, 233, 234, 235, 236, 237, 239, 240, 241, 242, 243, 244, 246, 247, 249, 250, 251, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255 };
- int[] arrayOfInt7 = { 45, 45, 46, 46, 47, 47, 47, 47, 48, 48, 49, 49, 50, 50, 50, 51, 51, 52, 52, 53, 53, 54, 54, 55, 55, 55, 55, 56, 56, 57, 57, 58, 58, 59, 59, 60, 60, 61, 61, 62, 62, 63, 63, 63, 63, 64, 64, 65, 65, 66, 66, 67, 67, 68, 69, 69, 70, 70, 71, 71, 71, 72, 72, 73, 73, 74, 75, 75, 76, 76, 77, 78, 78, 79, 79, 80, 80, 80, 81, 82, 82, 83, 84, 84, 85, 86, 87, 87, 88, 89, 89, 90, 91, 92, 92, 93, 94, 95, 95, 95, 96, 97, 98, 98, 99, 100, 101, 102, 103, 103, 104, 105, 106, 107, 108, 109, 110, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 135, 136, 137, 138, 139, 141, 142, 143, 144, 146, 147, 148, 149, 150, 151, 152, 154, 156, 157, 158, 159, 160, 161, 162, 165, 166, 167, 168, 169, 170, 171, 173, 175, 176, 177, 178, 179, 180, 182, 183, 184, 186, 187, 188, 190, 191, 192, 193, 194, 195, 196, 198, 199, 200, 201, 202, 203, 205, 206, 207, 208, 209, 210, 212, 213, 214, 215, 216, 217, 217, 219, 220, 221, 222, 223, 224, 226, 227, 227, 228, 229, 230, 231, 233, 234, 235, 235, 236, 237, 239, 240, 241, 241, 242, 243, 244, 246, 246, 247, 248, 249, 250, 251, 251, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 };
- int[] arrayOfInt8 = { 0, 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 20, 20, 20, 21, 21, 21, 22, 22, 23, 23, 23, 24, 24, 24, 25, 25, 25, 25, 26, 26, 27, 27, 28, 28, 28, 28, 29, 29, 30, 29, 31, 31, 31, 31, 32, 32, 33, 33, 34, 34, 34, 34, 35, 35, 36, 36, 37, 37, 37, 38, 38, 39, 39, 39, 40, 40, 40, 41, 42, 42, 43, 43, 44, 44, 45, 45, 45, 46, 47, 47, 48, 48, 49, 50, 51, 51, 52, 52, 53, 53, 54, 55, 55, 56, 57, 57, 58, 59, 60, 60, 61, 62, 63, 63, 64, 65, 66, 67, 68, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, 91, 93, 94, 95, 96, 97, 98, 100, 101, 103, 104, 105, 107, 108, 110, 111, 113, 115, 116, 118, 119, 120, 122, 123, 125, 127, 128, 130, 132, 134, 135, 137, 139, 141, 143, 144, 146, 148, 150, 152, 154, 156, 158, 160, 163, 165, 167, 169, 171, 173, 175, 178, 180, 182, 185, 187, 189, 192, 194, 197, 199, 201, 204, 206, 209, 211, 214, 216, 219, 221, 224, 226, 229, 232, 234, 236, 239, 241, 245, 247, 250, 252, 255 };
- for (int j = 0; j < 256; j++){
- arrayOfByte[(1024 + j * 4)] = ((byte)arrayOfInt5[j]);
- arrayOfByte[(1 + (1024 + j * 4))] = ((byte)arrayOfInt6[j]);
- arrayOfByte[(2 + (1024 + j * 4))] = ((byte)arrayOfInt7[j]);
- arrayOfByte[(3 + (1024 + j * 4))] = ((byte)arrayOfInt8[j]);
- }
- GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, 256, 2, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, ByteBuffer.wrap(arrayOfByte));
- }
- });
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicWhiteCatFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicWhiteCatFilter.java
deleted file mode 100644
index 90c4698..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicWhiteCatFilter.java
+++ /dev/null
@@ -1,88 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-
-import java.nio.ByteBuffer;
-
-public class MagicWhiteCatFilter extends GPUImageFilter{
-
- private int[] mToneCurveTexture = {-1};
- private int mToneCurveTextureUniformLocation;
-
- public MagicWhiteCatFilter() {
- super(MagicFilterType.WHITECAT, R.raw.whitecat);
- }
-
- @Override
- public void onDestroy() {
- super.onDestroy();
- GLES20.glDeleteTextures(1, mToneCurveTexture, 0);
- mToneCurveTexture[0] = -1;
- }
-
- @Override
- protected void onDrawArraysAfter() {
- if (mToneCurveTexture[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre() {
- if (mToneCurveTexture[0] != -1){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glUniform1i(mToneCurveTextureUniformLocation, 3);
- }
- }
-
- @Override
- public void onInit() {
- super.onInit();
- mToneCurveTextureUniformLocation = GLES20.glGetUniformLocation(getProgram(), "curve");
- }
-
- @Override
- public void onInitialized() {
- super.onInitialized();
- runOnDraw(new Runnable(){
- public void run(){
- GLES20.glGenTextures(1, mToneCurveTexture, 0);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mToneCurveTexture[0]);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);
- byte[] arrayOfByte = new byte[2048];
- int[] arrayOfInt1 = { 0, 0, 0, 0, 0, 0, 0, 1, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, 54, 55, 56, 57, 58, 59, 61, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73, 74, 75, 77, 78, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 249, 250, 251, 252, 253, 254, 255, 255, 255, 255, 255, 255 };
- int[] arrayOfInt2 = { 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 4, 4, 5, 6, 7, 8, 10, 11, 12, 12, 13, 14, 16, 17, 18, 19, 19, 20, 22, 23, 24, 25, 26, 26, 28, 29, 30, 31, 32, 33, 35, 35, 36, 37, 38, 39, 41, 42, 42, 43, 44, 45, 46, 48, 49, 50, 50, 51, 52, 54, 55, 56, 57, 58, 58, 59, 61, 62, 63, 64, 65, 66, 66, 67, 69, 70, 71, 72, 73, 74, 75, 75, 77, 78, 79, 80, 81, 82, 83, 85, 85, 86, 87, 88, 89, 90, 91, 92, 93, 93, 95, 96, 97, 98, 99, 100, 101, 102, 103, 103, 104, 105, 107, 108, 109, 110, 111, 112, 113, 114, 114, 115, 116, 117, 118, 119, 120, 121, 123, 124, 125, 126, 127, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 182, 183, 184, 185, 186, 187, 188, 189, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 217, 218, 219, 220, 221, 222, 223, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 236, 237, 238, 239, 240, 240 };
- for (int i = 0; i < 256; i++){
- arrayOfByte[(i * 4)] = ((byte)arrayOfInt1[i]);
- arrayOfByte[(1 + i * 4)] = ((byte)arrayOfInt1[i]);
- arrayOfByte[(2 + i * 4)] = ((byte)arrayOfInt2[i]);
- arrayOfByte[(3 + i * 4)] = -1;
- }
- int[] arrayOfInt3 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6, 9, 14, 17, 19, 22, 25, 27, 30, 34, 36, 39, 41, 43, 45, 49, 51, 52, 54, 55, 57, 58, 61, 63, 64, 65, 67, 68, 69, 72, 73, 75, 76, 77, 78, 81, 82, 83, 84, 86, 87, 88, 90, 91, 93, 94, 95, 96, 97, 99, 100, 101, 102, 103, 105, 106, 108, 109, 110, 111, 112, 113, 115, 116, 117, 118, 119, 120, 121, 123, 124, 125, 126, 126, 127, 128, 130, 131, 132, 133, 134, 135, 136, 138, 138, 139, 140, 141, 142, 144, 145, 146, 146, 147, 148, 149, 151, 152, 153, 153, 154, 155, 156, 158, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 168, 170, 171, 172, 172, 173, 174, 175, 176, 177, 178, 179, 180, 180, 181, 183, 183, 184, 185, 186, 186, 188, 189, 190, 190, 191, 192, 193, 194, 195, 196, 196, 197, 198, 199, 200, 201, 201, 202, 203, 204, 204, 206, 207, 207, 208, 209, 209, 211, 212, 212, 213, 214, 214, 215, 217, 217, 218, 219, 219, 220, 221, 222, 223, 224, 224, 225, 226, 227, 228, 228, 229, 230, 230, 231, 233, 233, 234, 235, 235, 236, 237, 238, 239, 239, 240, 241, 241, 242, 243, 244, 245, 245, 246, 247, 248, 249, 249, 250, 250, 251, 252, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 };
- int[] arrayOfInt4 = { 0, 2, 4, 6, 8, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 32, 34, 36, 38, 40, 42, 44, 46, 47, 49, 51, 53, 54, 56, 58, 60, 61, 63, 65, 66, 68, 70, 71, 73, 74, 76, 77, 79, 80, 82, 83, 85, 86, 88, 89, 91, 92, 93, 95, 96, 98, 99, 100, 101, 103, 104, 105, 107, 108, 109, 110, 111, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 124, 125, 126, 127, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 198, 199, 200, 201, 202, 203, 204, 205, 206, 206, 207, 208, 209, 210, 211, 212, 212, 213, 214, 215, 216, 216, 217, 218, 219, 219, 220, 221, 222, 222, 223, 224, 224, 225, 226, 226, 227, 228, 228, 229, 230, 230, 231, 232, 232, 233, 233, 234, 235, 235, 236, 236, 237, 237, 238, 238, 239, 239, 240, 240, 241, 241, 242, 242, 243, 243, 244, 244, 245, 245, 245, 246, 246, 247, 247, 247, 248, 248, 248, 249, 249, 249, 250, 250, 250, 251, 251, 251, 252, 252, 252, 252, 253, 253, 253, 253, 254, 254, 254, 254, 254, 255, 255, 255 };
- int[] arrayOfInt5 = { 0, 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 20, 20, 20, 21, 21, 21, 22, 22, 23, 23, 23, 24, 24, 24, 25, 25, 25, 25, 26, 26, 27, 27, 28, 28, 28, 28, 29, 29, 30, 29, 31, 31, 31, 31, 32, 32, 33, 33, 34, 34, 34, 34, 35, 35, 36, 36, 37, 37, 37, 38, 38, 39, 39, 39, 40, 40, 40, 41, 42, 42, 43, 43, 44, 44, 45, 45, 45, 46, 47, 47, 48, 48, 49, 50, 51, 51, 52, 52, 53, 53, 54, 55, 55, 56, 57, 57, 58, 59, 60, 60, 61, 62, 63, 63, 64, 65, 66, 67, 68, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, 91, 93, 94, 95, 96, 97, 98, 100, 101, 103, 104, 105, 107, 108, 110, 111, 113, 115, 116, 118, 119, 120, 122, 123, 125, 127, 128, 130, 132, 134, 135, 137, 139, 141, 143, 144, 146, 148, 150, 152, 154, 156, 158, 160, 163, 165, 167, 169, 171, 173, 175, 178, 180, 182, 185, 187, 189, 192, 194, 197, 199, 201, 204, 206, 209, 211, 214, 216, 219, 221, 224, 226, 229, 232, 234, 236, 239, 241, 245, 247, 250, 252, 255 };
- for (int j = 0; j < 256; j++){
- arrayOfByte[(1024 + j * 4)] = ((byte)arrayOfInt4[j]);
- arrayOfByte[(1 + (1024 + j * 4))] = ((byte)arrayOfInt3[j]);
- arrayOfByte[(2 + (1024 + j * 4))] = ((byte)arrayOfInt5[j]);
- arrayOfByte[(3 + (1024 + j * 4))] = -1;
- }
- GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, 256, 2, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, ByteBuffer.wrap(arrayOfByte));
- }
- });
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/advanced/MagicXproIIFilter.java b/Live/src/main/java/com/seu/magicfilter/advanced/MagicXproIIFilter.java
deleted file mode 100644
index ef8298f..0000000
--- a/Live/src/main/java/com/seu/magicfilter/advanced/MagicXproIIFilter.java
+++ /dev/null
@@ -1,66 +0,0 @@
-package com.seu.magicfilter.advanced;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-import com.seu.magicfilter.utils.OpenGLUtils;
-
-public class MagicXproIIFilter extends GPUImageFilter{
- private int[] inputTextureHandles = {-1,-1};
- private int[] inputTextureUniformLocations = {-1,-1};
- private int mGLStrengthLocation;
-
- public MagicXproIIFilter(){
- super(MagicFilterType.XPROII, R.raw.xproii_filter_shader);
- }
-
- @Override
- public void onDestroy() {
- super.onDestroy();
- GLES20.glDeleteTextures(inputTextureHandles.length, inputTextureHandles, 0);
- for(int i = 0; i < inputTextureHandles.length; i++)
- inputTextureHandles[i] = -1;
- }
-
- @Override
- protected void onDrawArraysAfter(){
- for(int i = 0; i < inputTextureHandles.length
- && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3));
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- @Override
- protected void onDrawArraysPre(){
- for(int i = 0; i < inputTextureHandles.length
- && inputTextureHandles[i] != OpenGLUtils.NO_TEXTURE; i++){
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3) );
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, inputTextureHandles[i]);
- GLES20.glUniform1i(inputTextureUniformLocations[i], (i + 3));
- }
- }
-
- @Override
- public void onInit(){
- super.onInit();
- for(int i = 0; i < inputTextureUniformLocations.length; i++)
- inputTextureUniformLocations[i] = GLES20.glGetUniformLocation(getProgram(), "inputImageTexture"+(2+i));
- mGLStrengthLocation = GLES20.glGetUniformLocation(getProgram(), "strength");
- }
-
- @Override
- public void onInitialized(){
- super.onInitialized();
- setFloat(mGLStrengthLocation, 1.0f);
- runOnDraw(new Runnable(){
- public void run(){
- inputTextureHandles[0] = OpenGLUtils.loadTexture(getContext(), "filter/xpromap.png");
- inputTextureHandles[1] = OpenGLUtils.loadTexture(getContext(), "filter/vignettemap_new.png");
- }
- });
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/base/MagicBaseGroupFilter.java b/Live/src/main/java/com/seu/magicfilter/base/MagicBaseGroupFilter.java
deleted file mode 100644
index e283052..0000000
--- a/Live/src/main/java/com/seu/magicfilter/base/MagicBaseGroupFilter.java
+++ /dev/null
@@ -1,144 +0,0 @@
-package com.seu.magicfilter.base;
-
-
-import android.content.Context;
-import android.opengl.GLES20;
-
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.OpenGLUtils;
-
-import java.nio.FloatBuffer;
-import java.util.List;
-
-
-public class MagicBaseGroupFilter extends GPUImageFilter {
- private static int[] frameBuffers = null;
- private static int[] frameBufferTextures = null;
- private int frameWidth = -1;
- private int frameHeight = -1;
- protected List filters;
-
- public MagicBaseGroupFilter(List filters) {
- this.filters = filters;
- }
-
- @Override
- public void onDestroy() {
- for (GPUImageFilter filter : filters) {
- filter.destroy();
- }
- destroyFramebuffers();
- }
-
- @Override
- public void init(Context context) {
- for (GPUImageFilter filter : filters) {
- filter.init(context);
- }
- }
-
- @Override
- public void onInputSizeChanged(final int width, final int height) {
- super.onInputSizeChanged(width, height);
- int size = filters.size();
- for (int i = 0; i < size; i++) {
- filters.get(i).onInputSizeChanged(width, height);
- }
- if (frameBuffers != null && (frameWidth != width || frameHeight != height || frameBuffers.length != size - 1)) {
- destroyFramebuffers();
- frameWidth = width;
- frameHeight = height;
- }
- if (frameBuffers == null) {
- frameBuffers = new int[size - 1];
- frameBufferTextures = new int[size - 1];
-
- for (int i = 0; i < size - 1; i++) {
- GLES20.glGenFramebuffers(1, frameBuffers, i);
-
- GLES20.glGenTextures(1, frameBufferTextures, i);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, frameBufferTextures[i]);
- GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, width, height, 0,
- GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, null);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);
-
- GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, frameBuffers[i]);
- GLES20.glFramebufferTexture2D(GLES20.GL_FRAMEBUFFER, GLES20.GL_COLOR_ATTACHMENT0,
- GLES20.GL_TEXTURE_2D, frameBufferTextures[i], 0);
-
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, 0);
- }
- }
- }
-
- @Override
- public int onDrawFrame(final int textureId, final FloatBuffer cubeBuffer,
- final FloatBuffer textureBuffer) {
- if (frameBuffers == null || frameBufferTextures == null) {
- return OpenGLUtils.NOT_INIT;
- }
- int size = filters.size();
- int previousTexture = textureId;
- for (int i = 0; i < size; i++) {
- GPUImageFilter filter = filters.get(i);
- boolean isNotLast = i < size - 1;
- if (isNotLast) {
- GLES20.glViewport(0, 0, mInputWidth, mInputHeight);
- GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, frameBuffers[i]);
- GLES20.glClearColor(0, 0, 0, 0);
- filter.onDrawFrame(previousTexture, mGLCubeBuffer, mGLTextureBuffer);
- GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, 0);
- previousTexture = frameBufferTextures[i];
- } else {
- GLES20.glViewport(0, 0, mOutputWidth, mOutputHeight);
- filter.onDrawFrame(previousTexture, cubeBuffer, textureBuffer);
- }
- }
- return OpenGLUtils.ON_DRAWN;
- }
-
- public int onDrawFrame(int textureId) {
- if (frameBuffers == null || frameBufferTextures == null) {
- return OpenGLUtils.NOT_INIT;
- }
- int size = filters.size();
- int previousTexture = textureId;
- for (int i = 0; i < size; i++) {
- GPUImageFilter filter = filters.get(i);
- boolean isNotLast = i < size - 1;
- if (isNotLast) {
- GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, frameBuffers[i]);
- GLES20.glClearColor(0, 0, 0, 0);
- filter.onDrawFrame(previousTexture, mGLCubeBuffer, mGLTextureBuffer);
- GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, 0);
- previousTexture = frameBufferTextures[i];
- } else {
- filter.onDrawFrame(previousTexture, mGLCubeBuffer, mGLTextureBuffer);
- }
- }
- return OpenGLUtils.ON_DRAWN;
- }
-
- private void destroyFramebuffers() {
- if (frameBufferTextures != null) {
- GLES20.glDeleteTextures(frameBufferTextures.length, frameBufferTextures, 0);
- frameBufferTextures = null;
- }
- if (frameBuffers != null) {
- GLES20.glDeleteFramebuffers(frameBuffers.length, frameBuffers, 0);
- frameBuffers = null;
- }
- }
-
- public int getSize() {
- return filters.size();
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/base/MagicLookupFilter.java b/Live/src/main/java/com/seu/magicfilter/base/MagicLookupFilter.java
deleted file mode 100644
index 6c8253f..0000000
--- a/Live/src/main/java/com/seu/magicfilter/base/MagicLookupFilter.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package com.seu.magicfilter.base;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.utils.MagicFilterType;
-import com.seu.magicfilter.utils.OpenGLUtils;
-
-public class MagicLookupFilter extends GPUImageFilter {
-
- protected String table;
-
- public MagicLookupFilter(String table) {
- super(MagicFilterType.LOCKUP, R.raw.lookup);
- this.table = table;
- }
-
- private int mLookupTextureUniform;
- private int mLookupSourceTexture = OpenGLUtils.NO_TEXTURE;
-
- protected void onInit() {
- super.onInit();
- mLookupTextureUniform = GLES20.glGetUniformLocation(getProgram(), "inputImageTexture2");
- }
-
- protected void onInitialized() {
- super.onInitialized();
- runOnDraw(new Runnable() {
- public void run() {
- mLookupSourceTexture = OpenGLUtils.loadTexture(getContext(), table);
- }
- });
- }
-
- protected void onDestroy() {
- super.onDestroy();
- int[] texture = new int[]{mLookupSourceTexture};
- GLES20.glDeleteTextures(1, texture, 0);
- mLookupSourceTexture = -1;
- }
-
- protected void onDrawArraysAfter() {
- if (mLookupSourceTexture != -1) {
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- }
- }
-
- protected void onDrawArraysPre() {
- if (mLookupSourceTexture != -1) {
- GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mLookupSourceTexture);
- GLES20.glUniform1i(mLookupTextureUniform, 3);
- }
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/base/gpuimage/GPUImageBrightnessFilter.java b/Live/src/main/java/com/seu/magicfilter/base/gpuimage/GPUImageBrightnessFilter.java
deleted file mode 100644
index bc11872..0000000
--- a/Live/src/main/java/com/seu/magicfilter/base/gpuimage/GPUImageBrightnessFilter.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * 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.seu.magicfilter.base.gpuimage;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.utils.MagicFilterType;
-
-/**
- * brightness value ranges from -1.0 to 1.0, with 0.0 as the normal level
- */
-public class GPUImageBrightnessFilter extends GPUImageFilter {
-
- private int mBrightnessLocation;
- private float mBrightness;
-
- public GPUImageBrightnessFilter() {
- this(0.0f);
- }
-
- public GPUImageBrightnessFilter(final float brightness) {
- super(MagicFilterType.BRIGHTNESS, R.raw.brightness);
- mBrightness = brightness;
- }
-
- @Override
- public void onInit() {
- super.onInit();
- mBrightnessLocation = GLES20.glGetUniformLocation(getProgram(), "brightness");
- }
-
- @Override
- public void onInitialized() {
- super.onInitialized();
- setBrightness(mBrightness);
- }
-
- public void setBrightness(final float brightness) {
- mBrightness = brightness;
- setFloat(mBrightnessLocation, mBrightness);
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/base/gpuimage/GPUImageContrastFilter.java b/Live/src/main/java/com/seu/magicfilter/base/gpuimage/GPUImageContrastFilter.java
deleted file mode 100644
index dc0b2c5..0000000
--- a/Live/src/main/java/com/seu/magicfilter/base/gpuimage/GPUImageContrastFilter.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * 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.seu.magicfilter.base.gpuimage;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.utils.MagicFilterType;
-
-
-/**
- * Changes the contrast of the image.
- *
- * contrast value ranges from 0.0 to 4.0, with 1.0 as the normal level
- */
-public class GPUImageContrastFilter extends GPUImageFilter {
-
- private int mContrastLocation;
- private float mContrast;
-
- public GPUImageContrastFilter() {
- this(1.0f);
- }
-
- public GPUImageContrastFilter(float contrast) {
- super(MagicFilterType.CONTRAST, R.raw.constrast);
- mContrast = contrast;
- }
-
- @Override
- public void onInit() {
- super.onInit();
- mContrastLocation = GLES20.glGetUniformLocation(getProgram(), "contrast");
- }
-
- @Override
- public void onInitialized() {
- super.onInitialized();
- setContrast(mContrast);
- }
-
- public void setContrast(final float contrast) {
- mContrast = contrast;
- setFloat(mContrastLocation, mContrast);
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/base/gpuimage/GPUImageExposureFilter.java b/Live/src/main/java/com/seu/magicfilter/base/gpuimage/GPUImageExposureFilter.java
deleted file mode 100644
index 16e9a34..0000000
--- a/Live/src/main/java/com/seu/magicfilter/base/gpuimage/GPUImageExposureFilter.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * 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.seu.magicfilter.base.gpuimage;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.utils.MagicFilterType;
-
-/**
- * exposure: The adjusted exposure (-10.0 - 10.0, with 0.0 as the default)
- */
-public class GPUImageExposureFilter extends GPUImageFilter {
- public static final String EXPOSURE_FRAGMENT_SHADER = "" +
- " varying highp vec2 textureCoordinate;\n" +
- " \n" +
- " uniform sampler2D inputImageTexture;\n" +
- " uniform highp float exposure;\n" +
- " \n" +
- " void main()\n" +
- " {\n" +
- " highp vec4 textureColor = texture2D(inputImageTexture, textureCoordinate);\n" +
- " \n" +
- " gl_FragColor = vec4(textureColor.rgb * pow(2.0, exposure), textureColor.w);\n" +
- " } ";
-
- private int mExposureLocation;
- private float mExposure;
-
- public GPUImageExposureFilter() {
- this(0.0f);
- }
-
- public GPUImageExposureFilter(final float exposure) {
- super(MagicFilterType.EXPOSURE, R.raw.exposure);
- mExposure = exposure;
- }
-
- @Override
- public void onInit() {
- super.onInit();
- mExposureLocation = GLES20.glGetUniformLocation(getProgram(), "exposure");
- }
-
- @Override
- public void onInitialized() {
- super.onInitialized();
- setExposure(mExposure);
- }
-
- public void setExposure(final float exposure) {
- mExposure = exposure;
- setFloat(mExposureLocation, mExposure);
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/base/gpuimage/GPUImageFilter.java b/Live/src/main/java/com/seu/magicfilter/base/gpuimage/GPUImageFilter.java
deleted file mode 100644
index cbabbee..0000000
--- a/Live/src/main/java/com/seu/magicfilter/base/gpuimage/GPUImageFilter.java
+++ /dev/null
@@ -1,404 +0,0 @@
-/*
- * 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.seu.magicfilter.base.gpuimage;
-
-import android.content.Context;
-import android.graphics.PointF;
-import android.opengl.GLES11Ext;
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.utils.MagicFilterType;
-import com.seu.magicfilter.utils.OpenGLUtils;
-import com.seu.magicfilter.utils.Rotation;
-import com.seu.magicfilter.utils.TextureRotationUtil;
-
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-import java.nio.FloatBuffer;
-import java.nio.IntBuffer;
-import java.util.LinkedList;
-
-public class GPUImageFilter {
-
- private boolean mIsInitialized;
- private Context mContext;
- private MagicFilterType mType = MagicFilterType.NONE;
- private final LinkedList mRunOnDraw;
- private final int mVertexShaderId;
- private final int mFragmentShaderId;
-
- private int mGLProgId;
- private int mGLPositionIndex;
- private int mGLInputImageTextureIndex;
- private int mGLTextureCoordinateIndex;
- private int mGLTextureTransformIndex;
-
- protected int mInputWidth;
- protected int mInputHeight;
- protected int mOutputWidth;
- protected int mOutputHeight;
- protected FloatBuffer mGLCubeBuffer;
- protected FloatBuffer mGLTextureBuffer;
-
- private int[] mGLCubeId;
- private int[] mGLTextureCoordinateId;
- private float[] mGLTextureTransformMatrix;
-
- private int[] mGLFboId;
- private int[] mGLFboTexId;
- private IntBuffer mGLFboBuffer;
-
- public GPUImageFilter() {
- this(MagicFilterType.NONE);
- }
-
- public GPUImageFilter(MagicFilterType type) {
- this(type, R.raw.vertex, R.raw.fragment);
- }
-
- public GPUImageFilter(MagicFilterType type, int fragmentShaderId) {
- this(type, R.raw.vertex, fragmentShaderId);
- }
-
- public GPUImageFilter(MagicFilterType type, int vertexShaderId, int fragmentShaderId) {
- mType = type;
- mRunOnDraw = new LinkedList<>();
- mVertexShaderId = vertexShaderId;
- mFragmentShaderId = fragmentShaderId;
-
- mGLCubeBuffer = ByteBuffer.allocateDirect(TextureRotationUtil.CUBE.length * 4)
- .order(ByteOrder.nativeOrder())
- .asFloatBuffer();
- mGLCubeBuffer.put(TextureRotationUtil.CUBE).position(0);
-
- mGLTextureBuffer = ByteBuffer.allocateDirect(TextureRotationUtil.TEXTURE_NO_ROTATION.length * 4)
- .order(ByteOrder.nativeOrder())
- .asFloatBuffer();
- mGLTextureBuffer.put(TextureRotationUtil.getRotation(Rotation.NORMAL, false, true)).position(0);
- }
-
- public void init(Context context) {
- mContext = context;
- onInit();
- onInitialized();
- }
-
- protected void onInit() {
- initVbo();
- loadSamplerShader();
- }
-
- protected void onInitialized() {
- mIsInitialized = true;
- }
-
- public final void destroy() {
- mIsInitialized = false;
- destroyFboTexture();
- destoryVbo();
- GLES20.glDeleteProgram(mGLProgId);
- onDestroy();
- }
-
- protected void onDestroy() {
- }
-
- public void onInputSizeChanged(final int width, final int height) {
- mInputWidth = width;
- mInputHeight = height;
- initFboTexture(width, height);
- }
-
- public void onDisplaySizeChanged(final int width, final int height) {
- mOutputWidth = width;
- mOutputHeight = height;
- }
-
- private void loadSamplerShader() {
- mGLProgId = OpenGLUtils.loadProgram(OpenGLUtils.readShaderFromRawResource(getContext(), mVertexShaderId),
- OpenGLUtils.readShaderFromRawResource(getContext(), mFragmentShaderId));
- mGLPositionIndex = GLES20.glGetAttribLocation(mGLProgId, "position");
- mGLTextureCoordinateIndex = GLES20.glGetAttribLocation(mGLProgId,"inputTextureCoordinate");
- mGLTextureTransformIndex = GLES20.glGetUniformLocation(mGLProgId, "textureTransform");
- mGLInputImageTextureIndex = GLES20.glGetUniformLocation(mGLProgId, "inputImageTexture");
- }
-
- private void initVbo() {
- mGLCubeId = new int[1];
- mGLTextureCoordinateId = new int[1];
-
- GLES20.glGenBuffers(1, mGLCubeId, 0);
- GLES20.glBindBuffer(GLES20.GL_ARRAY_BUFFER, mGLCubeId[0]);
- GLES20.glBufferData(GLES20.GL_ARRAY_BUFFER, mGLCubeBuffer.capacity() * 4, mGLCubeBuffer, GLES20.GL_STATIC_DRAW);
-
- GLES20.glGenBuffers(1, mGLTextureCoordinateId, 0);
- GLES20.glBindBuffer(GLES20.GL_ARRAY_BUFFER, mGLTextureCoordinateId[0]);
- GLES20.glBufferData(GLES20.GL_ARRAY_BUFFER, mGLTextureBuffer.capacity() * 4, mGLTextureBuffer, GLES20.GL_STATIC_DRAW);
- }
-
- private void destoryVbo() {
- if (mGLCubeId != null) {
- GLES20.glDeleteBuffers(1, mGLCubeId, 0);
- mGLCubeId = null;
- }
- if (mGLTextureCoordinateId != null) {
- GLES20.glDeleteBuffers(1, mGLTextureCoordinateId, 0);
- mGLTextureCoordinateId = null;
- }
- }
-
- private void initFboTexture(int width, int height) {
- if (mGLFboId != null && (mInputWidth != width || mInputHeight != height)) {
- destroyFboTexture();
- }
-
- mGLFboId = new int[1];
- mGLFboTexId = new int[1];
- mGLFboBuffer = IntBuffer.allocate(width * height);
-
- GLES20.glGenFramebuffers(1, mGLFboId, 0);
- GLES20.glGenTextures(1, mGLFboTexId, 0);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mGLFboTexId[0]);
- GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, width, height, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, null);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);
- GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, mGLFboId[0]);
- GLES20.glFramebufferTexture2D(GLES20.GL_FRAMEBUFFER, GLES20.GL_COLOR_ATTACHMENT0, GLES20.GL_TEXTURE_2D, mGLFboTexId[0], 0);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
- GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, 0);
- }
-
- private void destroyFboTexture() {
- if (mGLFboTexId != null) {
- GLES20.glDeleteTextures(1, mGLFboTexId, 0);
- mGLFboTexId = null;
- }
- if (mGLFboId != null) {
- GLES20.glDeleteFramebuffers(1, mGLFboId, 0);
- mGLFboId = null;
- }
- }
-
- public int onDrawFrame(final int textureId, final FloatBuffer cubeBuffer, final FloatBuffer textureBuffer) {
- if (!mIsInitialized) {
- return OpenGLUtils.NOT_INIT;
- }
-
- GLES20.glUseProgram(mGLProgId);
- runPendingOnDrawTasks();
-
- GLES20.glEnableVertexAttribArray(mGLPositionIndex);
- GLES20.glVertexAttribPointer(mGLPositionIndex, 2, GLES20.GL_FLOAT, false, 4 * 2, cubeBuffer);
-
- GLES20.glEnableVertexAttribArray(mGLTextureCoordinateIndex);
- GLES20.glVertexAttribPointer(mGLTextureCoordinateIndex, 2, GLES20.GL_FLOAT, false, 4 * 2, textureBuffer);
-
- if (textureId != OpenGLUtils.NO_TEXTURE) {
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, textureId);
- GLES20.glUniform1i(mGLInputImageTextureIndex, 0);
- }
-
- onDrawArraysPre();
- GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4);
- onDrawArraysAfter();
-
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
-
- GLES20.glDisableVertexAttribArray(mGLPositionIndex);
- GLES20.glDisableVertexAttribArray(mGLTextureCoordinateIndex);
-
- return OpenGLUtils.ON_DRAWN;
- }
-
- public int onDrawFrame(int cameraTextureId) {
- if (!mIsInitialized) {
- return OpenGLUtils.NOT_INIT;
- }
-
- if (mGLFboId == null) {
- return OpenGLUtils.NO_TEXTURE;
- }
-
- GLES20.glUseProgram(mGLProgId);
- runPendingOnDrawTasks();
-
- GLES20.glBindBuffer(GLES20.GL_ARRAY_BUFFER, mGLCubeId[0]);
- GLES20.glEnableVertexAttribArray(mGLPositionIndex);
- GLES20.glVertexAttribPointer(mGLPositionIndex, 2, GLES20.GL_FLOAT, false, 4 * 2, 0);
-
- GLES20.glBindBuffer(GLES20.GL_ARRAY_BUFFER, mGLTextureCoordinateId[0]);
- GLES20.glEnableVertexAttribArray(mGLTextureCoordinateIndex);
- GLES20.glVertexAttribPointer(mGLTextureCoordinateIndex, 2, GLES20.GL_FLOAT, false, 4 * 2, 0);
-
- GLES20.glUniformMatrix4fv(mGLTextureTransformIndex, 1, false, mGLTextureTransformMatrix, 0);
-
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
- GLES20.glBindTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, cameraTextureId);
- GLES20.glUniform1i(mGLInputImageTextureIndex, 0);
-
- onDrawArraysPre();
-
- GLES20.glViewport(0, 0, mInputWidth, mInputHeight);
- GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, mGLFboId[0]);
- GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4);
-
- GLES20.glReadPixels(0, 0, mInputWidth, mInputHeight, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, mGLFboBuffer);
- GLES20.glBindFramebuffer(GLES20.GL_FRAMEBUFFER, 0);
- GLES20.glViewport(0, 0, mOutputWidth, mOutputHeight);
-
- GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4);
-
- onDrawArraysAfter();
-
- GLES20.glBindTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, 0);
-
- GLES20.glDisableVertexAttribArray(mGLPositionIndex);
- GLES20.glDisableVertexAttribArray(mGLTextureCoordinateIndex);
-
- GLES20.glBindBuffer(GLES20.GL_ARRAY_BUFFER, 0);
-
- return mGLFboTexId[0];
- }
-
- protected void onDrawArraysPre() {}
-
- protected void onDrawArraysAfter() {}
-
- private void runPendingOnDrawTasks() {
- while (!mRunOnDraw.isEmpty()) {
- mRunOnDraw.removeFirst().run();
- }
- }
-
- public int getProgram() {
- return mGLProgId;
- }
-
- public IntBuffer getGLFboBuffer() {
- return mGLFboBuffer;
- }
-
- protected Context getContext() {
- return mContext;
- }
-
- protected MagicFilterType getFilterType() {
- return mType;
- }
-
- public void setTextureTransformMatrix(float[] mtx){
- mGLTextureTransformMatrix = mtx;
- }
-
- protected void setInteger(final int location, final int intValue) {
- runOnDraw(new Runnable() {
- @Override
- public void run() {
- GLES20.glUniform1i(location, intValue);
- }
- });
- }
-
- protected void setFloat(final int location, final float floatValue) {
- runOnDraw(new Runnable() {
- @Override
- public void run() {
- GLES20.glUniform1f(location, floatValue);
- }
- });
- }
-
- protected void setFloatVec2(final int location, final float[] arrayValue) {
- runOnDraw(new Runnable() {
- @Override
- public void run() {
- GLES20.glUniform2fv(location, 1, FloatBuffer.wrap(arrayValue));
- }
- });
- }
-
- protected void setFloatVec3(final int location, final float[] arrayValue) {
- runOnDraw(new Runnable() {
- @Override
- public void run() {
- GLES20.glUniform3fv(location, 1, FloatBuffer.wrap(arrayValue));
- }
- });
- }
-
- protected void setFloatVec4(final int location, final float[] arrayValue) {
- runOnDraw(new Runnable() {
- @Override
- public void run() {
- GLES20.glUniform4fv(location, 1, FloatBuffer.wrap(arrayValue));
- }
- });
- }
-
- protected void setFloatArray(final int location, final float[] arrayValue) {
- runOnDraw(new Runnable() {
- @Override
- public void run() {
- GLES20.glUniform1fv(location, arrayValue.length, FloatBuffer.wrap(arrayValue));
- }
- });
- }
-
- protected void setPoint(final int location, final PointF point) {
- runOnDraw(new Runnable() {
-
- @Override
- public void run() {
- float[] vec2 = new float[2];
- vec2[0] = point.x;
- vec2[1] = point.y;
- GLES20.glUniform2fv(location, 1, vec2, 0);
- }
- });
- }
-
- protected void setUniformMatrix3f(final int location, final float[] matrix) {
- runOnDraw(new Runnable() {
-
- @Override
- public void run() {
- GLES20.glUniformMatrix3fv(location, 1, false, matrix, 0);
- }
- });
- }
-
- protected void setUniformMatrix4f(final int location, final float[] matrix) {
- runOnDraw(new Runnable() {
-
- @Override
- public void run() {
- GLES20.glUniformMatrix4fv(location, 1, false, matrix, 0);
- }
- });
- }
-
- protected void runOnDraw(final Runnable runnable) {
- synchronized (mRunOnDraw) {
- mRunOnDraw.addLast(runnable);
- }
- }
-}
-
diff --git a/Live/src/main/java/com/seu/magicfilter/base/gpuimage/GPUImageHueFilter.java b/Live/src/main/java/com/seu/magicfilter/base/gpuimage/GPUImageHueFilter.java
deleted file mode 100644
index 0ed2772..0000000
--- a/Live/src/main/java/com/seu/magicfilter/base/gpuimage/GPUImageHueFilter.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * 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.seu.magicfilter.base.gpuimage;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.utils.MagicFilterType;
-
-public class GPUImageHueFilter extends GPUImageFilter {
-
- private float mHue;
- private int mHueLocation;
-
- public GPUImageHueFilter() {
- this(0.0f);
- }
-
- public GPUImageHueFilter(final float hue) {
- super(MagicFilterType.HUE, R.raw.hue);
- mHue = hue;
- }
-
- @Override
- public void onInit() {
- super.onInit();
- mHueLocation = GLES20.glGetUniformLocation(getProgram(), "hueAdjust");
- }
-
- @Override
- public void onInitialized() {
- super.onInitialized();
- setHue(mHue);
- }
-
- public void setHue(final float hue) {
- mHue = hue;
- float hueAdjust = (mHue % 360.0f) * (float) Math.PI / 180.0f;
- setFloat(mHueLocation, hueAdjust);
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/base/gpuimage/GPUImageSaturationFilter.java b/Live/src/main/java/com/seu/magicfilter/base/gpuimage/GPUImageSaturationFilter.java
deleted file mode 100644
index 5ecb7d3..0000000
--- a/Live/src/main/java/com/seu/magicfilter/base/gpuimage/GPUImageSaturationFilter.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * 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.seu.magicfilter.base.gpuimage;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.utils.MagicFilterType;
-
-/**
- * saturation: The degree of saturation or desaturation to apply to the image (0.0 - 2.0, with 1.0 as the default)
- */
-public class GPUImageSaturationFilter extends GPUImageFilter {
-
- private int mSaturationLocation;
- private float mSaturation;
-
- public GPUImageSaturationFilter() {
- this(1.0f);
- }
-
- public GPUImageSaturationFilter(final float saturation) {
- super(MagicFilterType.SATURATION, R.raw.saturation);
- mSaturation = saturation;
- }
-
- @Override
- public void onInit() {
- super.onInit();
- mSaturationLocation = GLES20.glGetUniformLocation(getProgram(), "saturation");
- }
-
- @Override
- public void onInitialized() {
- super.onInitialized();
- setSaturation(mSaturation);
- }
-
- public void setSaturation(final float saturation) {
- mSaturation = saturation;
- setFloat(mSaturationLocation, mSaturation);
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/base/gpuimage/GPUImageSharpenFilter.java b/Live/src/main/java/com/seu/magicfilter/base/gpuimage/GPUImageSharpenFilter.java
deleted file mode 100644
index a9bef39..0000000
--- a/Live/src/main/java/com/seu/magicfilter/base/gpuimage/GPUImageSharpenFilter.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * 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.seu.magicfilter.base.gpuimage;
-
-import android.opengl.GLES20;
-
-import com.frank.live.R;
-import com.seu.magicfilter.utils.MagicFilterType;
-
-/**
- * Sharpens the picture.
- *
- * sharpness: from -4.0 to 4.0, with 0.0 as the normal level
- */
-public class GPUImageSharpenFilter extends GPUImageFilter {
-
- private int mSharpnessLocation;
- private float mSharpness;
- private int mImageWidthFactorLocation;
- private int mImageHeightFactorLocation;
-
- public GPUImageSharpenFilter() {
- this(0.0f);
- }
-
- public GPUImageSharpenFilter(final float sharpness) {
- super(MagicFilterType.SHARPEN, R.raw.vertex_sharpen, R.raw.sharpen);
- mSharpness = sharpness;
- }
-
- @Override
- public void onInit() {
- super.onInit();
- mSharpnessLocation = GLES20.glGetUniformLocation(getProgram(), "sharpness");
- mImageWidthFactorLocation = GLES20.glGetUniformLocation(getProgram(), "imageWidthFactor");
- mImageHeightFactorLocation = GLES20.glGetUniformLocation(getProgram(), "imageHeightFactor");
- setSharpness(mSharpness);
- }
-
- @Override
- public void onInputSizeChanged(final int width, final int height) {
- super.onInputSizeChanged(width, height);
- setFloat(mImageWidthFactorLocation, 1.0f / width);
- setFloat(mImageHeightFactorLocation, 1.0f / height);
- }
-
- public void setSharpness(final float sharpness) {
- mSharpness = sharpness;
- setFloat(mSharpnessLocation, mSharpness);
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/utils/MagicFilterFactory.java b/Live/src/main/java/com/seu/magicfilter/utils/MagicFilterFactory.java
deleted file mode 100644
index ed50e53..0000000
--- a/Live/src/main/java/com/seu/magicfilter/utils/MagicFilterFactory.java
+++ /dev/null
@@ -1,163 +0,0 @@
-package com.seu.magicfilter.utils;
-
-import com.seu.magicfilter.advanced.MagicAmaroFilter;
-import com.seu.magicfilter.advanced.MagicAntiqueFilter;
-import com.seu.magicfilter.advanced.MagicBeautyFilter;
-import com.seu.magicfilter.advanced.MagicBlackCatFilter;
-import com.seu.magicfilter.advanced.MagicBrannanFilter;
-import com.seu.magicfilter.advanced.MagicBrooklynFilter;
-import com.seu.magicfilter.advanced.MagicCalmFilter;
-import com.seu.magicfilter.advanced.MagicCoolFilter;
-import com.seu.magicfilter.advanced.MagicCrayonFilter;
-import com.seu.magicfilter.advanced.MagicEarlyBirdFilter;
-import com.seu.magicfilter.advanced.MagicEmeraldFilter;
-import com.seu.magicfilter.advanced.MagicEvergreenFilter;
-import com.seu.magicfilter.advanced.MagicFreudFilter;
-import com.seu.magicfilter.advanced.MagicHealthyFilter;
-import com.seu.magicfilter.advanced.MagicHefeFilter;
-import com.seu.magicfilter.advanced.MagicHudsonFilter;
-import com.seu.magicfilter.advanced.MagicImageAdjustFilter;
-import com.seu.magicfilter.advanced.MagicInkwellFilter;
-import com.seu.magicfilter.advanced.MagicKevinFilter;
-import com.seu.magicfilter.advanced.MagicLatteFilter;
-import com.seu.magicfilter.advanced.MagicLomoFilter;
-import com.seu.magicfilter.advanced.MagicN1977Filter;
-import com.seu.magicfilter.advanced.MagicNashvilleFilter;
-import com.seu.magicfilter.advanced.MagicNostalgiaFilter;
-import com.seu.magicfilter.advanced.MagicPixelFilter;
-import com.seu.magicfilter.advanced.MagicRiseFilter;
-import com.seu.magicfilter.advanced.MagicRomanceFilter;
-import com.seu.magicfilter.advanced.MagicSakuraFilter;
-import com.seu.magicfilter.advanced.MagicSierraFilter;
-import com.seu.magicfilter.advanced.MagicSketchFilter;
-import com.seu.magicfilter.advanced.MagicSkinWhitenFilter;
-import com.seu.magicfilter.advanced.MagicSunriseFilter;
-import com.seu.magicfilter.advanced.MagicSunsetFilter;
-import com.seu.magicfilter.advanced.MagicSutroFilter;
-import com.seu.magicfilter.advanced.MagicSweetsFilter;
-import com.seu.magicfilter.advanced.MagicTenderFilter;
-import com.seu.magicfilter.advanced.MagicToasterFilter;
-import com.seu.magicfilter.advanced.MagicValenciaFilter;
-import com.seu.magicfilter.advanced.MagicWaldenFilter;
-import com.seu.magicfilter.advanced.MagicWarmFilter;
-import com.seu.magicfilter.advanced.MagicWhiteCatFilter;
-import com.seu.magicfilter.advanced.MagicXproIIFilter;
-import com.seu.magicfilter.base.MagicLookupFilter;
-import com.seu.magicfilter.base.gpuimage.GPUImageBrightnessFilter;
-import com.seu.magicfilter.base.gpuimage.GPUImageContrastFilter;
-import com.seu.magicfilter.base.gpuimage.GPUImageExposureFilter;
-import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
-import com.seu.magicfilter.base.gpuimage.GPUImageHueFilter;
-import com.seu.magicfilter.base.gpuimage.GPUImageSaturationFilter;
-import com.seu.magicfilter.base.gpuimage.GPUImageSharpenFilter;
-
-public class MagicFilterFactory{
-
- public static GPUImageFilter initFilters(MagicFilterType type) {
- switch (type) {
- case NONE:
- return new GPUImageFilter();
- case WHITECAT:
- return new MagicWhiteCatFilter();
- case BLACKCAT:
- return new MagicBlackCatFilter();
- case SKINWHITEN:
- return new MagicSkinWhitenFilter();
- case BEAUTY:
- return new MagicBeautyFilter();
- case ROMANCE:
- return new MagicRomanceFilter();
- case SAKURA:
- return new MagicSakuraFilter();
- case AMARO:
- return new MagicAmaroFilter();
- case WALDEN:
- return new MagicWaldenFilter();
- case ANTIQUE:
- return new MagicAntiqueFilter();
- case CALM:
- return new MagicCalmFilter();
- case BRANNAN:
- return new MagicBrannanFilter();
- case BROOKLYN:
- return new MagicBrooklynFilter();
- case EARLYBIRD:
- return new MagicEarlyBirdFilter();
- case FREUD:
- return new MagicFreudFilter();
- case HEFE:
- return new MagicHefeFilter();
- case HUDSON:
- return new MagicHudsonFilter();
- case INKWELL:
- return new MagicInkwellFilter();
- case KEVIN:
- return new MagicKevinFilter();
- case LOCKUP:
- return new MagicLookupFilter("");
- case LOMO:
- return new MagicLomoFilter();
- case N1977:
- return new MagicN1977Filter();
- case NASHVILLE:
- return new MagicNashvilleFilter();
- case PIXAR:
- return new MagicPixelFilter();
- case RISE:
- return new MagicRiseFilter();
- case SIERRA:
- return new MagicSierraFilter();
- case SUTRO:
- return new MagicSutroFilter();
- case TOASTER2:
- return new MagicToasterFilter();
- case VALENCIA:
- return new MagicValenciaFilter();
- case XPROII:
- return new MagicXproIIFilter();
- case EVERGREEN:
- return new MagicEvergreenFilter();
- case HEALTHY:
- return new MagicHealthyFilter();
- case COOL:
- return new MagicCoolFilter();
- case EMERALD:
- return new MagicEmeraldFilter();
- case LATTE:
- return new MagicLatteFilter();
- case WARM:
- return new MagicWarmFilter();
- case TENDER:
- return new MagicTenderFilter();
- case SWEETS:
- return new MagicSweetsFilter();
- case NOSTALGIA:
- return new MagicNostalgiaFilter();
- case SUNRISE:
- return new MagicSunriseFilter();
- case SUNSET:
- return new MagicSunsetFilter();
- case CRAYON:
- return new MagicCrayonFilter();
- case SKETCH:
- return new MagicSketchFilter();
- //image adjust
- case BRIGHTNESS:
- return new GPUImageBrightnessFilter();
- case CONTRAST:
- return new GPUImageContrastFilter();
- case EXPOSURE:
- return new GPUImageExposureFilter();
- case HUE:
- return new GPUImageHueFilter();
- case SATURATION:
- return new GPUImageSaturationFilter();
- case SHARPEN:
- return new GPUImageSharpenFilter();
- case IMAGE_ADJUST:
- return new MagicImageAdjustFilter();
- default:
- return null;
- }
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/utils/MagicFilterType.java b/Live/src/main/java/com/seu/magicfilter/utils/MagicFilterType.java
deleted file mode 100644
index 419c716..0000000
--- a/Live/src/main/java/com/seu/magicfilter/utils/MagicFilterType.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.seu.magicfilter.utils;
-
-/**
- * Created by why8222 on 2016/2/25.
- */
-public enum MagicFilterType {
- NONE,
- FAIRYTALE,
- SUNRISE,
- SUNSET,
- WHITECAT,
- BLACKCAT,
- SKINWHITEN,
- BEAUTY,
- HEALTHY,
- SWEETS,
- ROMANCE,
- SAKURA,
- WARM,
- ANTIQUE,
- NOSTALGIA,
- CALM,
- LATTE,
- TENDER,
- COOL,
- EMERALD,
- EVERGREEN,
- CRAYON,
- SKETCH,
- AMARO,
- BRANNAN,
- BROOKLYN,
- EARLYBIRD,
- FREUD,
- HEFE,
- HUDSON,
- INKWELL,
- KEVIN,
- LOCKUP,
- LOMO,
- N1977,
- NASHVILLE,
- PIXAR,
- RISE,
- SIERRA,
- SUTRO,
- TOASTER2,
- VALENCIA,
- WALDEN,
- XPROII,
- //image adjust
- CONTRAST,
- BRIGHTNESS,
- EXPOSURE,
- HUE,
- SATURATION,
- SHARPEN,
- IMAGE_ADJUST
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/utils/OpenGLUtils.java b/Live/src/main/java/com/seu/magicfilter/utils/OpenGLUtils.java
deleted file mode 100644
index 6de6bee..0000000
--- a/Live/src/main/java/com/seu/magicfilter/utils/OpenGLUtils.java
+++ /dev/null
@@ -1,230 +0,0 @@
-package com.seu.magicfilter.utils;
-
-import android.content.Context;
-import android.content.res.AssetManager;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.opengl.GLES11Ext;
-import android.opengl.GLES20;
-import android.opengl.GLUtils;
-import android.util.Log;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.nio.Buffer;
-
-import javax.microedition.khronos.opengles.GL10;
-
-public class OpenGLUtils {
- public static final int NO_TEXTURE = -1;
- public static final int NOT_INIT = -1;
- public static final int ON_DRAWN = 1;
-
- public static int loadTexture(Bitmap img, int usedTexId) {
- return loadTexture(img, usedTexId, false);
- }
-
- public static int loadTexture(Bitmap img, int usedTexId, boolean recyled) {
- if(img == null)
- return NO_TEXTURE;
- int textures[] = new int[1];
- if (usedTexId == NO_TEXTURE) {
- GLES20.glGenTextures(1, textures, 0);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, textures[0]);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);
-
- GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, 0, img, 0);
- } else {
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, usedTexId);
- GLUtils.texSubImage2D(GLES20.GL_TEXTURE_2D, 0, 0, 0, img);
- textures[0] = usedTexId;
- }
- if(recyled)
- img.recycle();
- return textures[0];
- }
-
- public static int loadTexture(Buffer data, int width, int height, int usedTexId) {
- if(data == null)
- return NO_TEXTURE;
- int textures[] = new int[1];
- if (usedTexId == NO_TEXTURE) {
- GLES20.glGenTextures(1, textures, 0);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, textures[0]);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);
- GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, width, height,
- 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, data);
- } else {
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, usedTexId);
- GLES20.glTexSubImage2D(GLES20.GL_TEXTURE_2D, 0, 0, 0, width,
- height, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, data);
- textures[0] = usedTexId;
- }
- return textures[0];
- }
-
- public static int loadTexture(Buffer data, int width, int height, int usedTexId, int type) {
- if(data == null)
- return NO_TEXTURE;
- int textures[] = new int[1];
- if (usedTexId == NO_TEXTURE) {
- GLES20.glGenTextures(1, textures, 0);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, textures[0]);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
- GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,
- GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);
- GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, width, height,
- 0, GLES20.GL_RGBA, type, data);
- } else {
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, usedTexId);
- GLES20.glTexSubImage2D(GLES20.GL_TEXTURE_2D, 0, 0, 0, width,
- height, GLES20.GL_RGBA, type, data);
- textures[0] = usedTexId;
- }
- return textures[0];
- }
-
- public static int loadTexture(final Context context, final String name){
- final int[] textureHandle = new int[1];
-
- GLES20.glGenTextures(1, textureHandle, 0);
-
- if (textureHandle[0] != 0){
-
- // Read in the resource
- final Bitmap bitmap = getImageFromAssetsFile(context,name);
-
- // Bind to the texture in OpenGL
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, textureHandle[0]);
-
- // Set filtering
- GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR);
- GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
- GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);
- // Load the bitmap into the bound texture.
- GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, 0, bitmap, 0);
-
- // Recycle the bitmap, since its data has been loaded into OpenGL.
- bitmap.recycle();
- }
-
- if (textureHandle[0] == 0){
- throw new RuntimeException("Error loading texture.");
- }
-
- return textureHandle[0];
- }
-
- private static Bitmap getImageFromAssetsFile(Context context, String fileName){
- Bitmap image = null;
- AssetManager am = context.getResources().getAssets();
- try{
- InputStream is = am.open(fileName);
- image = BitmapFactory.decodeStream(is);
- is.close();
- }catch (IOException e){
- e.printStackTrace();
- }
- return image;
- }
-
- public static int loadProgram(String strVSource, String strFSource) {
- int iVShader;
- int iFShader;
- int iProgId;
- int[] link = new int[1];
- iVShader = loadShader(strVSource, GLES20.GL_VERTEX_SHADER);
- if (iVShader == 0) {
- Log.d("Load Program", "Vertex Shader Failed");
- return 0;
- }
- iFShader = loadShader(strFSource, GLES20.GL_FRAGMENT_SHADER);
- if (iFShader == 0) {
- Log.d("Load Program", "Fragment Shader Failed");
- return 0;
- }
-
- iProgId = GLES20.glCreateProgram();
- GLES20.glAttachShader(iProgId, iVShader);
- GLES20.glAttachShader(iProgId, iFShader);
- GLES20.glLinkProgram(iProgId);
- GLES20.glGetProgramiv(iProgId, GLES20.GL_LINK_STATUS, link, 0);
- if (link[0] <= 0) {
- Log.d("Load Program", "Linking Failed");
- return 0;
- }
- GLES20.glDeleteShader(iVShader);
- GLES20.glDeleteShader(iFShader);
- return iProgId;
- }
-
- private static int loadShader(String strSource, int iType) {
- int[] compiled = new int[1];
- int iShader = GLES20.glCreateShader(iType);
- GLES20.glShaderSource(iShader, strSource);
- GLES20.glCompileShader(iShader);
- GLES20.glGetShaderiv(iShader, GLES20.GL_COMPILE_STATUS, compiled, 0);
- if (compiled[0] == 0) {
- Log.e("Load Shader Failed", "Compilation\n" + GLES20.glGetShaderInfoLog(iShader));
- return 0;
- }
- return iShader;
- }
-
- public static int getExternalOESTextureID(){
- int[] texture = new int[1];
- GLES20.glGenTextures(1, texture, 0);
- GLES20.glBindTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, texture[0]);
- GLES20.glTexParameterf(GLES11Ext.GL_TEXTURE_EXTERNAL_OES,
- GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR);
- GLES20.glTexParameterf(GLES11Ext.GL_TEXTURE_EXTERNAL_OES,
- GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR);
- GLES20.glTexParameteri(GLES11Ext.GL_TEXTURE_EXTERNAL_OES,
- GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE);
- GLES20.glTexParameteri(GLES11Ext.GL_TEXTURE_EXTERNAL_OES,
- GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE);
- return texture[0];
- }
-
- public static String readShaderFromRawResource(Context context, int resourceId){
- final InputStream inputStream = context.getResources().openRawResource(resourceId);
- final InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
- final BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
-
- String nextLine;
- final StringBuilder body = new StringBuilder();
-
- try{
- while ((nextLine = bufferedReader.readLine()) != null){
- body.append(nextLine);
- body.append('\n');
- }
- }
- catch (IOException e){
- return null;
- }
- return body.toString();
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/utils/Rotation.java b/Live/src/main/java/com/seu/magicfilter/utils/Rotation.java
deleted file mode 100644
index 105cc78..0000000
--- a/Live/src/main/java/com/seu/magicfilter/utils/Rotation.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * 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.seu.magicfilter.utils;
-
-public enum Rotation {
- NORMAL, ROTATION_90, ROTATION_180, ROTATION_270;
-
- /**
- * Retrieves the int representation of the Rotation.
- *
- * @return 0, 90, 180 or 270
- */
- public int asInt() {
- switch (this) {
- case NORMAL: return 0;
- case ROTATION_90: return 90;
- case ROTATION_180: return 180;
- case ROTATION_270: return 270;
- default: throw new IllegalStateException("Unknown Rotation!");
- }
- }
-
- /**
- * Create a Rotation from an integer. Needs to be either 0, 90, 180 or 270.
- *
- * @param rotation 0, 90, 180 or 270
- * @return Rotation object
- */
- public static Rotation fromInt(int rotation) {
- switch (rotation) {
- case 0: return NORMAL;
- case 90: return ROTATION_90;
- case 180: return ROTATION_180;
- case 270: return ROTATION_270;
- case 360: return NORMAL;
- default: throw new IllegalStateException(
- rotation + " is an unknown rotation. Needs to be either 0, 90, 180 or 270!");
- }
- }
-}
diff --git a/Live/src/main/java/com/seu/magicfilter/utils/TextureRotationUtil.java b/Live/src/main/java/com/seu/magicfilter/utils/TextureRotationUtil.java
deleted file mode 100644
index f236305..0000000
--- a/Live/src/main/java/com/seu/magicfilter/utils/TextureRotationUtil.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * 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.seu.magicfilter.utils;
-
-public class TextureRotationUtil {
-
- public static final float TEXTURE_NO_ROTATION[] = {
- 0.0f, 1.0f,
- 1.0f, 1.0f,
- 0.0f, 0.0f,
- 1.0f, 0.0f,
- };
-
- public static final float TEXTURE_ROTATED_90[] = {
- 1.0f, 1.0f,
- 1.0f, 0.0f,
- 0.0f, 1.0f,
- 0.0f, 0.0f,
- };
- public static final float TEXTURE_ROTATED_180[] = {
- 1.0f, 0.0f,
- 0.0f, 0.0f,
- 1.0f, 1.0f,
- 0.0f, 1.0f,
- };
- public static final float TEXTURE_ROTATED_270[] = {
- 0.0f, 0.0f,
- 0.0f, 1.0f,
- 1.0f, 0.0f,
- 1.0f, 1.0f,
- };
-
- public static final float CUBE[] = {
- -1.0f, -1.0f,
- 1.0f, -1.0f,
- -1.0f, 1.0f,
- 1.0f, 1.0f,
- };
-
- private TextureRotationUtil() {}
-
- public static float[] getRotation(final Rotation rotation, final boolean flipHorizontal,
- final boolean flipVertical) {
- float[] rotatedTex;
- switch (rotation) {
- case ROTATION_90:
- rotatedTex = TEXTURE_ROTATED_90;
- break;
- case ROTATION_180:
- rotatedTex = TEXTURE_ROTATED_180;
- break;
- case ROTATION_270:
- rotatedTex = TEXTURE_ROTATED_270;
- break;
- case NORMAL:
- default:
- rotatedTex = TEXTURE_NO_ROTATION;
- break;
- }
- if (flipHorizontal) {
- rotatedTex = new float[]{
- flip(rotatedTex[0]), rotatedTex[1],
- flip(rotatedTex[2]), rotatedTex[3],
- flip(rotatedTex[4]), rotatedTex[5],
- flip(rotatedTex[6]), rotatedTex[7],
- };
- }
- if (flipVertical) {
- rotatedTex = new float[]{
- rotatedTex[0], flip(rotatedTex[1]),
- rotatedTex[2], flip(rotatedTex[3]),
- rotatedTex[4], flip(rotatedTex[5]),
- rotatedTex[6], flip(rotatedTex[7]),
- };
- }
- return rotatedTex;
- }
-
- private static float flip(final float i) {
- return i == 0.0f ? 1.0f : 0.0f;
- }
-}
diff --git a/Live/src/main/res/layout/activity_push.xml b/Live/src/main/res/layout/activity_push.xml
deleted file mode 100644
index 968fff8..0000000
--- a/Live/src/main/res/layout/activity_push.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Live/src/main/res/layout/activity_rtmp_live.xml b/Live/src/main/res/layout/activity_rtmp_live.xml
deleted file mode 100644
index 15d3d15..0000000
--- a/Live/src/main/res/layout/activity_rtmp_live.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/Live/src/main/res/raw/amaro.glsl b/Live/src/main/res/raw/amaro.glsl
deleted file mode 100644
index b510316..0000000
--- a/Live/src/main/res/raw/amaro.glsl
+++ /dev/null
@@ -1,32 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision mediump float;
-
-varying mediump vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D inputImageTexture2; //blowout;
-uniform sampler2D inputImageTexture3; //overlay;
-uniform sampler2D inputImageTexture4; //map
-
-uniform float strength;
-
-void main()
-{
- vec4 originColor = texture2D(inputImageTexture, textureCoordinate);
- vec4 texel = texture2D(inputImageTexture, textureCoordinate);
- vec3 bbTexel = texture2D(inputImageTexture2, textureCoordinate).rgb;
-
- texel.r = texture2D(inputImageTexture3, vec2(bbTexel.r, texel.r)).r;
- texel.g = texture2D(inputImageTexture3, vec2(bbTexel.g, texel.g)).g;
- texel.b = texture2D(inputImageTexture3, vec2(bbTexel.b, texel.b)).b;
-
- vec4 mapped;
- mapped.r = texture2D(inputImageTexture4, vec2(texel.r, .16666)).r;
- mapped.g = texture2D(inputImageTexture4, vec2(texel.g, .5)).g;
- mapped.b = texture2D(inputImageTexture4, vec2(texel.b, .83333)).b;
- mapped.a = 1.0;
-
- mapped.rgb = mix(originColor.rgb, mapped.rgb, strength);
- gl_FragColor = mapped;
-}
diff --git a/Live/src/main/res/raw/antique.glsl b/Live/src/main/res/raw/antique.glsl
deleted file mode 100644
index 3a05170..0000000
--- a/Live/src/main/res/raw/antique.glsl
+++ /dev/null
@@ -1,53 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision highp float;
-
-varying highp vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D curve;
-
-void main()
-{
- highp vec4 textureColor;
- highp vec4 textureColorRes;
- highp float satVal = 65.0 / 100.0;
-
- float xCoordinate = textureCoordinate.x;
- float yCoordinate = textureCoordinate.y;
-
- highp float redCurveValue;
- highp float greenCurveValue;
- highp float blueCurveValue;
-
- textureColor = texture2D( inputImageTexture, vec2(xCoordinate, yCoordinate));
- textureColorRes = textureColor;
-
- redCurveValue = texture2D(curve, vec2(textureColor.r, 0.0)).r;
- greenCurveValue = texture2D(curve, vec2(textureColor.g, 0.0)).g;
- blueCurveValue = texture2D(curve, vec2(textureColor.b, 0.0)).b;
-
- highp float G = (redCurveValue + greenCurveValue + blueCurveValue);
- G = G / 3.0;
-
- redCurveValue = ((1.0 - satVal) * G + satVal * redCurveValue);
- greenCurveValue = ((1.0 - satVal) * G + satVal * greenCurveValue);
- blueCurveValue = ((1.0 - satVal) * G + satVal * blueCurveValue);
- redCurveValue = (((redCurveValue) > (1.0)) ? (1.0) : (((redCurveValue) < (0.0)) ? (0.0) : (redCurveValue)));
- greenCurveValue = (((greenCurveValue) > (1.0)) ? (1.0) : (((greenCurveValue) < (0.0)) ? (0.0) : (greenCurveValue)));
- blueCurveValue = (((blueCurveValue) > (1.0)) ? (1.0) : (((blueCurveValue) < (0.0)) ? (0.0) : (blueCurveValue)));
-
- redCurveValue = texture2D(curve, vec2(redCurveValue, 0.0)).a;
- greenCurveValue = texture2D(curve, vec2(greenCurveValue, 0.0)).a;
- blueCurveValue = texture2D(curve, vec2(blueCurveValue, 0.0)).a;
-
- highp vec4 base = vec4(redCurveValue, greenCurveValue, blueCurveValue, 1.0);
- highp vec4 overlayer = vec4(250.0/255.0, 227.0/255.0, 193.0/255.0, 1.0);
-
- textureColor = overlayer * base;
- base = (textureColor - base) * 0.850980 + base;
- textureColor = base;
-
- gl_FragColor = vec4(textureColor.r, textureColor.g, textureColor.b, 1.0);
-}
-
\ No newline at end of file
diff --git a/Live/src/main/res/raw/beauty.glsl b/Live/src/main/res/raw/beauty.glsl
deleted file mode 100644
index 1a32a63..0000000
--- a/Live/src/main/res/raw/beauty.glsl
+++ /dev/null
@@ -1,111 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision highp float;
-
-uniform samplerExternalOES inputImageTexture;
-uniform vec2 singleStepOffset;
-
-varying vec2 textureCoordinate;
-
-const vec4 params = vec4(0.748, 0.874, 0.241, 0.241);
-const vec3 W = vec3(0.299,0.587,0.114);
-const mat3 saturateMatrix = mat3(
- 1.1102,-0.0598,-0.061,
- -0.0774,1.0826,-0.1186,
- -0.0228,-0.0228,1.1772);
-
-vec2 blurCoordinates[24];
-
-float hardLight(float color) {
- if(color <= 0.5) {
- color = color * color * 2.0;
- } else {
- color = 1.0 - ((1.0 - color)*(1.0 - color) * 2.0);
- }
- return color;
-}
-
-void main() {
- vec3 centralColor = texture2D(inputImageTexture, textureCoordinate).rgb;
-
- blurCoordinates[0] = textureCoordinate.xy + singleStepOffset * vec2(0.0, -10.0);
- blurCoordinates[1] = textureCoordinate.xy + singleStepOffset * vec2(0.0, 10.0);
- blurCoordinates[2] = textureCoordinate.xy + singleStepOffset * vec2(-10.0, 0.0);
- blurCoordinates[3] = textureCoordinate.xy + singleStepOffset * vec2(10.0, 0.0);
- blurCoordinates[4] = textureCoordinate.xy + singleStepOffset * vec2(5.0, -8.0);
- blurCoordinates[5] = textureCoordinate.xy + singleStepOffset * vec2(5.0, 8.0);
- blurCoordinates[6] = textureCoordinate.xy + singleStepOffset * vec2(-5.0, 8.0);
- blurCoordinates[7] = textureCoordinate.xy + singleStepOffset * vec2(-5.0, -8.0);
- blurCoordinates[8] = textureCoordinate.xy + singleStepOffset * vec2(8.0, -5.0);
- blurCoordinates[9] = textureCoordinate.xy + singleStepOffset * vec2(8.0, 5.0);
- blurCoordinates[10] = textureCoordinate.xy + singleStepOffset * vec2(-8.0, 5.0);
- blurCoordinates[11] = textureCoordinate.xy + singleStepOffset * vec2(-8.0, -5.0);
- blurCoordinates[12] = textureCoordinate.xy + singleStepOffset * vec2(0.0, -6.0);
- blurCoordinates[13] = textureCoordinate.xy + singleStepOffset * vec2(0.0, 6.0);
- blurCoordinates[14] = textureCoordinate.xy + singleStepOffset * vec2(6.0, 0.0);
- blurCoordinates[15] = textureCoordinate.xy + singleStepOffset * vec2(-6.0, 0.0);
- blurCoordinates[16] = textureCoordinate.xy + singleStepOffset * vec2(-4.0, -4.0);
- blurCoordinates[17] = textureCoordinate.xy + singleStepOffset * vec2(-4.0, 4.0);
- blurCoordinates[18] = textureCoordinate.xy + singleStepOffset * vec2(4.0, -4.0);
- blurCoordinates[19] = textureCoordinate.xy + singleStepOffset * vec2(4.0, 4.0);
- blurCoordinates[20] = textureCoordinate.xy + singleStepOffset * vec2(-2.0, -2.0);
- blurCoordinates[21] = textureCoordinate.xy + singleStepOffset * vec2(-2.0, 2.0);
- blurCoordinates[22] = textureCoordinate.xy + singleStepOffset * vec2(2.0, -2.0);
- blurCoordinates[23] = textureCoordinate.xy + singleStepOffset * vec2(2.0, 2.0);
-
- float sampleColor = centralColor.g * 22.0;
- sampleColor += texture2D(inputImageTexture, blurCoordinates[0]).g;
- sampleColor += texture2D(inputImageTexture, blurCoordinates[1]).g;
- sampleColor += texture2D(inputImageTexture, blurCoordinates[2]).g;
- sampleColor += texture2D(inputImageTexture, blurCoordinates[3]).g;
- sampleColor += texture2D(inputImageTexture, blurCoordinates[4]).g;
- sampleColor += texture2D(inputImageTexture, blurCoordinates[5]).g;
- sampleColor += texture2D(inputImageTexture, blurCoordinates[6]).g;
- sampleColor += texture2D(inputImageTexture, blurCoordinates[7]).g;
- sampleColor += texture2D(inputImageTexture, blurCoordinates[8]).g;
- sampleColor += texture2D(inputImageTexture, blurCoordinates[9]).g;
- sampleColor += texture2D(inputImageTexture, blurCoordinates[10]).g;
- sampleColor += texture2D(inputImageTexture, blurCoordinates[11]).g;
- sampleColor += texture2D(inputImageTexture, blurCoordinates[12]).g * 2.0;
- sampleColor += texture2D(inputImageTexture, blurCoordinates[13]).g * 2.0;
- sampleColor += texture2D(inputImageTexture, blurCoordinates[14]).g * 2.0;
- sampleColor += texture2D(inputImageTexture, blurCoordinates[15]).g * 2.0;
- sampleColor += texture2D(inputImageTexture, blurCoordinates[16]).g * 2.0;
- sampleColor += texture2D(inputImageTexture, blurCoordinates[17]).g * 2.0;
- sampleColor += texture2D(inputImageTexture, blurCoordinates[18]).g * 2.0;
- sampleColor += texture2D(inputImageTexture, blurCoordinates[19]).g * 2.0;
- sampleColor += texture2D(inputImageTexture, blurCoordinates[20]).g * 3.0;
- sampleColor += texture2D(inputImageTexture, blurCoordinates[21]).g * 3.0;
- sampleColor += texture2D(inputImageTexture, blurCoordinates[22]).g * 3.0;
- sampleColor += texture2D(inputImageTexture, blurCoordinates[23]).g * 3.0;
- sampleColor = sampleColor / 62.0;
-
- float highPass = centralColor.g - sampleColor + 0.5;
-
- for(int i = 0; i < 5;i++)
- {
- highPass = hardLight(highPass);
- }
- float luminance = dot(centralColor, W);
- float alpha = pow(luminance, params.r);
-
- vec3 smoothColor = centralColor + (centralColor-vec3(highPass))*alpha*0.1;
-
- smoothColor.r = clamp(pow(smoothColor.r, params.g),0.0,1.0);
- smoothColor.g = clamp(pow(smoothColor.g, params.g),0.0,1.0);
- smoothColor.b = clamp(pow(smoothColor.b, params.g),0.0,1.0);
-
- vec3 screen = vec3(1.0) - (vec3(1.0)-smoothColor) * (vec3(1.0)-centralColor);
- vec3 lighten = max(smoothColor, centralColor);
- vec3 softLight = 2.0 * centralColor*smoothColor + centralColor*centralColor
- - 2.0 * centralColor*centralColor * smoothColor;
-
- gl_FragColor = vec4(mix(centralColor, screen, alpha), 1.0);
- gl_FragColor.rgb = mix(gl_FragColor.rgb, lighten, alpha);
- gl_FragColor.rgb = mix(gl_FragColor.rgb, softLight, params.b);
-
- vec3 satColor = gl_FragColor.rgb * saturateMatrix;
- gl_FragColor.rgb = mix(gl_FragColor.rgb, satColor, params.a);
-
- gl_FragColor.rgb = vec3(gl_FragColor.rgb + vec3(-0.096));
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/blackcat.glsl b/Live/src/main/res/raw/blackcat.glsl
deleted file mode 100644
index 36697e4..0000000
--- a/Live/src/main/res/raw/blackcat.glsl
+++ /dev/null
@@ -1,92 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision highp float;
-
-varying highp vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D curve;
-
-vec3 rgb2hsv(vec3 c)
-{
- vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
- vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));
- vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));
-
- float d = q.x - min(q.w, q.y);
- float e = 1.0e-10;
- return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
-}
-
-vec3 hsv2rgb(vec3 c) {
- vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
- vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
- return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
-}
-
-void main() {
- float GreyVal;
- lowp vec4 textureColor;
- lowp vec4 textureColorOri;
- float xCoordinate = textureCoordinate.x;
- float yCoordinate = textureCoordinate.y;
-
- highp float redCurveValue;
- highp float greenCurveValue;
- highp float blueCurveValue;
- textureColor = texture2D( inputImageTexture, vec2(xCoordinate, yCoordinate));
- // step1 curve
- redCurveValue = texture2D(curve, vec2(textureColor.r, 0.0)).r;
- greenCurveValue = texture2D(curve, vec2(textureColor.g, 0.0)).g;
- blueCurveValue = texture2D(curve, vec2(textureColor.b, 0.0)).b;
-
-
- //textureColor = vec4(redCurveValue, greenCurveValue, blueCurveValue, 1.0);
- vec3 tColor = vec3(redCurveValue, greenCurveValue, blueCurveValue);
- tColor = rgb2hsv(tColor);
-
- tColor.g = tColor.g * 1.2;
-
- float dStrength = 1.0;
- float dSatStrength = 0.3;
-
- float dGap = 0.0;
-
- if( tColor.r >= 0.0 && tColor.r < 0.417)
- {
- tColor.g = tColor.g + (tColor.g * dSatStrength);
- }
- else if( tColor.r > 0.958 && tColor.r <= 1.0)
- {
- tColor.g = tColor.g + (tColor.g * dSatStrength);
- }
- else if( tColor.r >= 0.875 && tColor.r <= 0.958)
- {
- dGap = abs(tColor.r - 0.875);
- dStrength = (dGap / 0.0833);
-
- tColor.g = tColor.g + (tColor.g * dSatStrength * dStrength);
- }
- else if( tColor.r >= 0.0417 && tColor.r <= 0.125)
- {
- dGap = abs(tColor.r - 0.125);
- dStrength = (dGap / 0.0833);
-
- tColor.g = tColor.g + (tColor.g * dSatStrength * dStrength);
- }
-
- tColor = hsv2rgb(tColor);
- tColor = clamp(tColor, 0.0, 1.0);
-
- redCurveValue = texture2D(curve, vec2(tColor.r, 1.0)).r;
- greenCurveValue = texture2D(curve, vec2(tColor.g, 1.0)).r;
- blueCurveValue = texture2D(curve, vec2(tColor.b, 1.0)).r;
-
- redCurveValue = texture2D(curve, vec2(redCurveValue, 1.0)).g;
- greenCurveValue = texture2D(curve, vec2(greenCurveValue, 1.0)).g;
- blueCurveValue = texture2D(curve, vec2(blueCurveValue, 1.0)).g;
-
- textureColor = vec4(redCurveValue, greenCurveValue, blueCurveValue, 1.0);
-
- gl_FragColor = vec4(textureColor.r, textureColor.g, textureColor.b, 1.0);
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/brannan.glsl b/Live/src/main/res/raw/brannan.glsl
deleted file mode 100644
index 87c1328..0000000
--- a/Live/src/main/res/raw/brannan.glsl
+++ /dev/null
@@ -1,73 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision mediump float;
-
-varying mediump vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D inputImageTexture2; //process
-uniform sampler2D inputImageTexture3; //blowout
-uniform sampler2D inputImageTexture4; //contrast
-uniform sampler2D inputImageTexture5; //luma
-uniform sampler2D inputImageTexture6; //screen
-
-mat3 saturateMatrix = mat3(
- 1.105150, -0.044850,-0.046000,
- -0.088050,1.061950,-0.089200,
- -0.017100,-0.017100,1.132900);
-
-vec3 luma = vec3(.3, .59, .11);
-
-uniform float strength;
-
-void main()
-{
- vec4 originColor = texture2D(inputImageTexture, textureCoordinate);
- vec3 texel = texture2D(inputImageTexture, textureCoordinate).rgb;
-
- vec2 lookup;
- lookup.y = 0.5;
- lookup.x = texel.r;
- texel.r = texture2D(inputImageTexture2, lookup).r;
- lookup.x = texel.g;
- texel.g = texture2D(inputImageTexture2, lookup).g;
- lookup.x = texel.b;
- texel.b = texture2D(inputImageTexture2, lookup).b;
-
- texel = saturateMatrix * texel;
-
- vec2 tc = (2.0 * textureCoordinate) - 1.0;
- float d = dot(tc, tc);
- vec3 sampled;
- lookup.y = 0.5;
- lookup.x = texel.r;
- sampled.r = texture2D(inputImageTexture3, lookup).r;
- lookup.x = texel.g;
- sampled.g = texture2D(inputImageTexture3, lookup).g;
- lookup.x = texel.b;
- sampled.b = texture2D(inputImageTexture3, lookup).b;
- float value = smoothstep(0.0, 1.0, d);
- texel = mix(sampled, texel, value);
-
- lookup.x = texel.r;
- texel.r = texture2D(inputImageTexture4, lookup).r;
- lookup.x = texel.g;
- texel.g = texture2D(inputImageTexture4, lookup).g;
- lookup.x = texel.b;
- texel.b = texture2D(inputImageTexture4, lookup).b;
-
-
- lookup.x = dot(texel, luma);
- texel = mix(texture2D(inputImageTexture5, lookup).rgb, texel, .5);
-
- lookup.x = texel.r;
- texel.r = texture2D(inputImageTexture6, lookup).r;
- lookup.x = texel.g;
- texel.g = texture2D(inputImageTexture6, lookup).g;
- lookup.x = texel.b;
- texel.b = texture2D(inputImageTexture6, lookup).b;
-
- texel = mix(originColor.rgb, texel.rgb, strength);
-
- gl_FragColor = vec4(texel, 1.0);
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/brightness.glsl b/Live/src/main/res/raw/brightness.glsl
deleted file mode 100644
index 633683f..0000000
--- a/Live/src/main/res/raw/brightness.glsl
+++ /dev/null
@@ -1,9 +0,0 @@
-varying highp vec2 textureCoordinate;
-
-uniform sampler2D inputImageTexture;
-uniform lowp float brightness;
-
-void main() {
- lowp vec4 textureColor = texture2D(inputImageTexture, textureCoordinate);
- gl_FragColor = vec4((textureColor.rgb + vec3(brightness)), textureColor.w);
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/brooklyn.glsl b/Live/src/main/res/raw/brooklyn.glsl
deleted file mode 100644
index 44951e4..0000000
--- a/Live/src/main/res/raw/brooklyn.glsl
+++ /dev/null
@@ -1,148 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision mediump float;
-
-varying mediump vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D inputImageTexture2;
-uniform sampler2D inputImageTexture3;
-uniform sampler2D inputImageTexture4;
-
-uniform float strength;
- // gray
-float NCGray(vec4 color)
-{
- float gray = 0.2125 * color.r + 0.7154 * color.g + 0.0721 * color.b;
- return gray;
-}
-
-// tone mapping
-vec4 NCTonemapping(vec4 color)
-{
- vec4 mapped;
- mapped.r = texture2D(inputImageTexture2, vec2(color.r, 0.0)).r;
- mapped.g = texture2D(inputImageTexture2, vec2(color.g, 0.0)).g;
- mapped.b = texture2D(inputImageTexture2, vec2(color.b, 0.0)).b;
- mapped.a = color.a;
-
- return mapped;
-}
-
-// color control
-vec4 NCColorControl(vec4 color, float saturation, float brightness, float contrast)
-{
- float gray = NCGray(color);
-
- color.rgb = vec3(saturation) * color.rgb + vec3(1.0-saturation) * vec3(gray);
- color.r = clamp(color.r, 0.0, 1.0);
- color.g = clamp(color.g, 0.0, 1.0);
- color.b = clamp(color.b, 0.0, 1.0);
-
- color.rgb = vec3(contrast) * (color.rgb - vec3(0.5)) + vec3(0.5);
- color.r = clamp(color.r, 0.0, 1.0);
- color.g = clamp(color.g, 0.0, 1.0);
- color.b = clamp(color.b, 0.0, 1.0);
-
- color.rgb = color.rgb + vec3(brightness);
- color.r = clamp(color.r, 0.0, 1.0);
- color.g = clamp(color.g, 0.0, 1.0);
- color.b = clamp(color.b, 0.0, 1.0);
-
- return color;
-}
-
-// hue adjust
-vec4 NCHueAdjust(vec4 color, float hueAdjust)
-{
- vec3 kRGBToYPrime = vec3(0.299, 0.587, 0.114);
- vec3 kRGBToI = vec3(0.595716, -0.274453, -0.321263);
- vec3 kRGBToQ = vec3(0.211456, -0.522591, 0.31135);
-
- vec3 kYIQToR = vec3(1.0, 0.9563, 0.6210);
- vec3 kYIQToG = vec3(1.0, -0.2721, -0.6474);
- vec3 kYIQToB = vec3(1.0, -1.1070, 1.7046);
-
- float yPrime = dot(color.rgb, kRGBToYPrime);
- float I = dot(color.rgb, kRGBToI);
- float Q = dot(color.rgb, kRGBToQ);
-
- float hue = atan(Q, I);
- float chroma = sqrt (I * I + Q * Q);
-
- hue -= hueAdjust;
-
- Q = chroma * sin (hue);
- I = chroma * cos (hue);
-
- color.r = dot(vec3(yPrime, I, Q), kYIQToR);
- color.g = dot(vec3(yPrime, I, Q), kYIQToG);
- color.b = dot(vec3(yPrime, I, Q), kYIQToB);
-
- return color;
-}
-
-// colorMatrix
-vec4 NCColorMatrix(vec4 color, float red, float green, float blue, float alpha, vec4 bias)
-{
- color = color * vec4(red, green, blue, alpha) + bias;
- return color;
-}
-
-// multiply blend
-vec4 NCMultiplyBlend(vec4 overlay, vec4 base)
-{
- vec4 outputColor;
-
- float a = overlay.a + base.a * (1.0 - overlay.a);
-
- // // normal blend
- // outputColor.r = (base.r * base.a + overlay.r * overlay.a * (1.0 - base.a))/a;
- // outputColor.g = (base.g * base.a + overlay.g * overlay.a * (1.0 - base.a))/a;
- // outputColor.b = (base.b * base.a + overlay.b * overlay.a * (1.0 - base.a))/a;
-
-
- // multiply blend
- outputColor.rgb = ((1.0-base.a) * overlay.rgb * overlay.a + (1.0-overlay.a) * base.rgb * base.a + overlay.a * base.a * overlay.rgb * base.rgb) / a;
-
-
- outputColor.a = a;
-
- return outputColor;
-}
-
-void main()
-{
- vec4 originColor = texture2D(inputImageTexture, textureCoordinate);
- vec4 color = texture2D(inputImageTexture, textureCoordinate);
-
- color.a = 1.0;
-
- // tone mapping
- color.r = texture2D(inputImageTexture2, vec2(color.r, 0.0)).r;
- color.g = texture2D(inputImageTexture2, vec2(color.g, 0.0)).g;
- color.b = texture2D(inputImageTexture2, vec2(color.b, 0.0)).b;
-
- // color control
- color = NCColorControl(color, 0.88, 0.03, 0.85);
-
- // hue adjust
- color = NCHueAdjust(color, -0.0444);
-
- // normal blend
- vec4 bg = vec4(0.5647, 0.1961, 0.0157, 0.14);
- color = NCMultiplyBlend(bg, color);
-
- // normal blend
- vec4 bg2 = texture2D(inputImageTexture3, textureCoordinate);
- bg2.a *= 0.9;
- color = NCMultiplyBlend(bg2, color);
-
- // tone mapping
- color.r = texture2D(inputImageTexture4, vec2(color.r, 0.0)).r;
- color.g = texture2D(inputImageTexture4, vec2(color.g, 0.0)).g;
- color.b = texture2D(inputImageTexture4, vec2(color.b, 0.0)).b;
-
- color.rgb = mix(originColor.rgb, color.rgb, strength);
- gl_FragColor = color;
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/calm.glsl b/Live/src/main/res/raw/calm.glsl
deleted file mode 100644
index 5704684..0000000
--- a/Live/src/main/res/raw/calm.glsl
+++ /dev/null
@@ -1,72 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision highp float;
-
-varying highp vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D grey1Frame;
-uniform sampler2D grey2Frame;
-uniform sampler2D curve;
-
-const mediump vec3 luminanceWeighting = vec3(0.2125, 0.7154, 0.0721);
-
-void main()
-{
- lowp float satura = 0.5;
- float GreyVal;
- lowp vec4 textureColor;
- lowp vec4 textureColorRes;
-
- highp float redCurveValue;
- highp float greenCurveValue;
- highp float blueCurveValue;
-
- vec4 grey1Color;
- vec4 grey2Color;
-
- float xCoordinate = textureCoordinate.x;
- float yCoordinate = textureCoordinate.y;
-
- textureColor = texture2D( inputImageTexture, vec2(xCoordinate, yCoordinate));
- textureColorRes = textureColor;
-
- grey1Color = texture2D(grey1Frame, vec2(xCoordinate, yCoordinate));
- grey2Color = texture2D(grey2Frame, vec2(xCoordinate, yCoordinate));
-
- // step 1. saturation
- lowp float luminance = dot(textureColor.rgb, luminanceWeighting);
- lowp vec3 greyScaleColor = vec3(luminance);
-
- textureColor = vec4(mix(greyScaleColor, textureColor.rgb, satura), textureColor.w);
-
- // step 2. level, blur curve, rgb curve
- redCurveValue = texture2D(curve, vec2(textureColor.r, 0.0)).r;
- redCurveValue = texture2D(curve, vec2(redCurveValue, 1.0/2.0)).r;
-
- greenCurveValue = texture2D(curve, vec2(textureColor.g, 0.0)).g;
- greenCurveValue = texture2D(curve, vec2(greenCurveValue, 1.0/2.0)).g;
-
- blueCurveValue = texture2D(curve, vec2(textureColor.b, 0.0)).b;
- blueCurveValue = texture2D(curve, vec2(blueCurveValue, 1.0/2.0)).b;
- blueCurveValue = texture2D(curve, vec2(blueCurveValue, 1.0/2.0)).g;
-
- lowp vec4 base = vec4(redCurveValue, greenCurveValue, blueCurveValue, 1.0);
-
- redCurveValue = texture2D(curve, vec2(redCurveValue, 1.0)).r;
- greenCurveValue = texture2D(curve, vec2(greenCurveValue, 1.0)).r;
- blueCurveValue = texture2D(curve, vec2(blueCurveValue, 1.0)).r;
- lowp vec4 overlayer = vec4(redCurveValue, greenCurveValue, blueCurveValue, 1.0);
- //gl_FragColor = base * (1.0 - grey1Color.r) + overlayer * grey1Color.r;
- base = (base - overlayer) * (1.0 - grey1Color.r) + overlayer;
-
- redCurveValue = texture2D(curve, vec2(base.r, 1.0)).g;
- greenCurveValue = texture2D(curve, vec2(base.g, 1.0)).g;
- blueCurveValue = texture2D(curve, vec2(base.b, 1.0)).g;
- overlayer = vec4(redCurveValue, greenCurveValue, blueCurveValue, 1.0);
-
- textureColor = (base - overlayer) * (1.0 - grey2Color.r) + overlayer;
- //base * (grey2Color.r) + overlayer * (1.0 - grey2Color.r);
-
- gl_FragColor = vec4(textureColor.r, textureColor.g, textureColor.b, 1.0);
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/constrast.glsl b/Live/src/main/res/raw/constrast.glsl
deleted file mode 100644
index eee2d2d..0000000
--- a/Live/src/main/res/raw/constrast.glsl
+++ /dev/null
@@ -1,9 +0,0 @@
-varying highp vec2 textureCoordinate;
-
-uniform sampler2D inputImageTexture;
-uniform lowp float contrast;
-
-void main() {
- lowp vec4 textureColor = texture2D(inputImageTexture, textureCoordinate);
- gl_FragColor = vec4(((textureColor.rgb - vec3(0.5)) * contrast + vec3(0.5)), textureColor.w);
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/cool.glsl b/Live/src/main/res/raw/cool.glsl
deleted file mode 100644
index 8a31bcd..0000000
--- a/Live/src/main/res/raw/cool.glsl
+++ /dev/null
@@ -1,44 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision highp float;
-
-varying highp vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D curve;
-
-void main() {
- lowp vec4 textureColor;
- lowp vec4 textureColorOri;
-
- float xCoordinate = textureCoordinate.x;
- float yCoordinate = textureCoordinate.y;
-
- highp float redCurveValue;
- highp float greenCurveValue;
- highp float blueCurveValue;
-
- textureColor = texture2D( inputImageTexture, vec2(xCoordinate, yCoordinate));
- textureColorOri = textureColor;
- // step1 curve
- redCurveValue = texture2D(curve, vec2(textureColor.r, 0.0)).r;
- greenCurveValue = texture2D(curve, vec2(textureColor.g, 0.0)).g;
- blueCurveValue = texture2D(curve, vec2(textureColor.b, 0.0)).b;
- // step2 level
- redCurveValue = texture2D(curve, vec2(redCurveValue, 0.0)).a;
- greenCurveValue = texture2D(curve, vec2(greenCurveValue, 0.0)).a;
- blueCurveValue = texture2D(curve, vec2(blueCurveValue, 0.0)).a;
- // step3 brightness/constrast adjust
- redCurveValue = redCurveValue * 1.25 - 0.12549;
- greenCurveValue = greenCurveValue * 1.25 - 0.12549;
- blueCurveValue = blueCurveValue * 1.25 - 0.12549;
- //redCurveValue = (((redCurveValue) > (1.0)) ? (1.0) : (((redCurveValue) < (0.0)) ? (0.0) : (redCurveValue)));
- //greenCurveValue = (((greenCurveValue) > (1.0)) ? (1.0) : (((greenCurveValue) < (0.0)) ? (0.0) : (greenCurveValue)));
- //blueCurveValue = (((blueCurveValue) > (1.0)) ? (1.0) : (((blueCurveValue) < (0.0)) ? (0.0) : (blueCurveValue)));
- // step4 normal blending with original
- textureColor = vec4(redCurveValue, greenCurveValue, blueCurveValue, 1.0);
- textureColor = (textureColorOri - textureColor) * 0.549 + textureColor;
-
- gl_FragColor = vec4(textureColor.r, textureColor.g, textureColor.b, 1.0);
-}
-
\ No newline at end of file
diff --git a/Live/src/main/res/raw/crayon.glsl b/Live/src/main/res/raw/crayon.glsl
deleted file mode 100644
index b9564b2..0000000
--- a/Live/src/main/res/raw/crayon.glsl
+++ /dev/null
@@ -1,56 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision mediump float;
-
-varying highp vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform vec2 singleStepOffset;
-uniform float strength;
-
-const highp vec3 W = vec3(0.299,0.587,0.114);
-
-const mat3 rgb2yiqMatrix = mat3(
- 0.299, 0.587, 0.114,
- 0.596,-0.275,-0.321,
- 0.212,-0.523, 0.311);
-
-const mat3 yiq2rgbMatrix = mat3(
- 1.0, 0.956, 0.621,
- 1.0,-0.272,-1.703,
- 1.0,-1.106, 0.0);
-
-
-void main()
-{
- vec4 oralColor = texture2D(inputImageTexture, textureCoordinate);
-
- vec3 maxValue = vec3(0.,0.,0.);
-
- for(int i = -2; i<=2; i++)
- {
- for(int j = -2; j<=2; j++)
- {
- vec4 tempColor = texture2D(inputImageTexture, textureCoordinate+singleStepOffset*vec2(i,j));
- maxValue.r = max(maxValue.r,tempColor.r);
- maxValue.g = max(maxValue.g,tempColor.g);
- maxValue.b = max(maxValue.b,tempColor.b);
- }
- }
-
- vec3 textureColor = oralColor.rgb / maxValue;
-
- float gray = dot(textureColor, W);
- float k = 0.223529;
- float alpha = min(gray,k)/k;
-
- textureColor = textureColor * alpha + (1.-alpha)*oralColor.rgb;
-
- vec3 yiqColor = textureColor * rgb2yiqMatrix;
-
- yiqColor.r = max(0.0,min(1.0,pow(gray,strength)));
-
- textureColor = yiqColor * yiq2rgbMatrix;
-
- gl_FragColor = vec4(textureColor, oralColor.w);
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/earlybird.glsl b/Live/src/main/res/raw/earlybird.glsl
deleted file mode 100644
index 9162d6b..0000000
--- a/Live/src/main/res/raw/earlybird.glsl
+++ /dev/null
@@ -1,102 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision mediump float;
-
-varying mediump vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D inputImageTexture2; //earlyBirdCurves
-uniform sampler2D inputImageTexture3; //earlyBirdOverlay
-uniform sampler2D inputImageTexture4; //vig
-uniform sampler2D inputImageTexture5; //earlyBirdBlowout
-uniform sampler2D inputImageTexture6; //earlyBirdMap
-
-const mat3 saturate = mat3(
- 1.210300,
- -0.089700,
- -0.091000,
- -0.176100,
- 1.123900,
- -0.177400,
- -0.034200,
- -0.034200,
- 1.265800);
-const vec3 rgbPrime = vec3(0.25098, 0.14640522, 0.0);
-const vec3 desaturate = vec3(.3, .59, .11);
-
-void main()
-{
- vec3 texel = texture2D(inputImageTexture, textureCoordinate).rgb;
-
- vec2 lookup;
- lookup.y = 0.5;
-
- lookup.x = texel.r;
- texel.r = texture2D(inputImageTexture2, lookup).r;
-
- lookup.x = texel.g;
- texel.g = texture2D(inputImageTexture2, lookup).g;
-
- lookup.x = texel.b;
- texel.b = texture2D(inputImageTexture2, lookup).b;
-
- float desaturatedColor;
- vec3 result;
- desaturatedColor = dot(desaturate, texel);
-
- lookup.x = desaturatedColor;
- result.r = texture2D(inputImageTexture3, lookup).r;
- lookup.x = desaturatedColor;
- result.g = texture2D(inputImageTexture3, lookup).g;
- lookup.x = desaturatedColor;
- result.b = texture2D(inputImageTexture3, lookup).b;
-
- texel = saturate * mix(texel, result, .5);
-
- vec2 tc = (2.0 * textureCoordinate) - 1.0;
- float d = dot(tc, tc);
-
- vec3 sampled;
- lookup.y = .5;
-
- /*
- lookup.x = texel.r;
- sampled.r = texture2D(inputImageTexture4, lookup).r;
-
- lookup.x = texel.g;
- sampled.g = texture2D(inputImageTexture4, lookup).g;
-
- lookup.x = texel.b;
- sampled.b = texture2D(inputImageTexture4, lookup).b;
-
- float value = smoothstep(0.0, 1.25, pow(d, 1.35)/1.65);
- texel = mix(texel, sampled, value);
- */
-
- //---
- lookup = vec2(d, texel.r);
- texel.r = texture2D(inputImageTexture4, lookup).r;
- lookup.y = texel.g;
- texel.g = texture2D(inputImageTexture4, lookup).g;
- lookup.y = texel.b;
- texel.b = texture2D(inputImageTexture4, lookup).b;
- float value = smoothstep(0.0, 1.25, pow(d, 1.35)/1.65);
-
- //---
- lookup.x = texel.r;
- sampled.r = texture2D(inputImageTexture5, lookup).r;
- lookup.x = texel.g;
- sampled.g = texture2D(inputImageTexture5, lookup).g;
- lookup.x = texel.b;
- sampled.b = texture2D(inputImageTexture5, lookup).b;
- texel = mix(sampled, texel, value);
-
- lookup.x = texel.r;
- texel.r = texture2D(inputImageTexture6, lookup).r;
- lookup.x = texel.g;
- texel.g = texture2D(inputImageTexture6, lookup).g;
- lookup.x = texel.b;
- texel.b = texture2D(inputImageTexture6, lookup).b;
-
- gl_FragColor = vec4(texel, 1.0);
-}
diff --git a/Live/src/main/res/raw/emerald.glsl b/Live/src/main/res/raw/emerald.glsl
deleted file mode 100644
index 8f54c08..0000000
--- a/Live/src/main/res/raw/emerald.glsl
+++ /dev/null
@@ -1,89 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision highp float;
-
-varying highp vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D curve;
-
-vec3 RGBtoHSL(vec3 c) {
- vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
- vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));
- vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));
-
- float d = q.x - min(q.w, q.y);
- float e = 1.0e-10;
- return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
-}
-
-vec3 HSLtoRGB(vec3 c) {
- vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
- vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
- return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
-}
-
-void main() {
- float GreyVal;
- highp vec4 textureColor;
- float xCoordinate = textureCoordinate.x;
- float yCoordinate = textureCoordinate.y;
-
- highp float redCurveValue;
- highp float greenCurveValue;
- highp float blueCurveValue;
-
- textureColor = texture2D( inputImageTexture, vec2(xCoordinate, yCoordinate));
-
- // step1 curve
- redCurveValue = texture2D(curve, vec2(textureColor.r, 0.0)).r;
- greenCurveValue = texture2D(curve, vec2(textureColor.g, 0.0)).g;
- blueCurveValue = texture2D(curve, vec2(textureColor.b, 0.0)).b;
- vec3 tColor = vec3(redCurveValue, greenCurveValue, blueCurveValue);
- tColor = RGBtoHSL(tColor);
- tColor = clamp(tColor, 0.0, 1.0);
-
- tColor.g = tColor.g * 1.5;
-
- float dStrength = 1.0;
- float dSatStrength = 0.15;
- float dHueStrength = 0.08;
-
- float dGap = 0.0;
-
- if( tColor.r >= 0.625 && tColor.r <= 0.708)
- {
- tColor.r = tColor.r - (tColor.r * dHueStrength);
- tColor.g = tColor.g + (tColor.g * dSatStrength);
- }
- else if( tColor.r >= 0.542 && tColor.r < 0.625)
- {
- dGap = abs(tColor.r - 0.542);
- dStrength = (dGap / 0.0833);
-
- tColor.r = tColor.r + (tColor.r * dHueStrength * dStrength);
- tColor.g = tColor.g + (tColor.g * dSatStrength * dStrength);
- }
- else if( tColor.r > 0.708 && tColor.r <= 0.792)
- {
- dGap = abs(tColor.r - 0.792);
- dStrength = (dGap / 0.0833);
-
- tColor.r = tColor.r + (tColor.r * dHueStrength * dStrength);
- tColor.g = tColor.g + (tColor.g * dSatStrength * dStrength);
- }
-
- tColor = HSLtoRGB(tColor);
- tColor = clamp(tColor, 0.0, 1.0);
-
- redCurveValue = texture2D(curve, vec2(tColor.r, 1.0)).r;
- greenCurveValue = texture2D(curve, vec2(tColor.g, 1.0)).r;
- blueCurveValue = texture2D(curve, vec2(tColor.b, 1.0)).r;
-
- redCurveValue = texture2D(curve, vec2(redCurveValue, 1.0)).g;
- greenCurveValue = texture2D(curve, vec2(greenCurveValue, 1.0)).g;
- blueCurveValue = texture2D(curve, vec2(blueCurveValue, 1.0)).g;
-
- textureColor = vec4(redCurveValue, greenCurveValue, blueCurveValue, 1.0);
- gl_FragColor = vec4(textureColor.r, textureColor.g, textureColor.b, 1.0);
-}
diff --git a/Live/src/main/res/raw/evergreen.glsl b/Live/src/main/res/raw/evergreen.glsl
deleted file mode 100644
index 02f3046..0000000
--- a/Live/src/main/res/raw/evergreen.glsl
+++ /dev/null
@@ -1,84 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision highp float;
-
-varying highp vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D curve;
-
-vec3 RGBtoHSL(vec3 c)
-{
- vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
- vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));
- vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));
-
- float d = q.x - min(q.w, q.y);
- float e = 1.0e-10;
- return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
-}
-
-vec3 HSLtoRGB(vec3 c)
-{
- vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
- vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
- return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
-}
-
-void main()
-{
- float GreyVal;
- lowp vec4 textureColor;
- float xCoordinate = textureCoordinate.x;
- float yCoordinate = textureCoordinate.y;
-
- highp float redCurveValue;
- highp float greenCurveValue;
- highp float blueCurveValue;
-
- textureColor = texture2D( inputImageTexture, vec2(xCoordinate, yCoordinate));
-
- vec3 tColor = vec3(textureColor.r, textureColor.g, textureColor.b);
-
- tColor = RGBtoHSL(tColor);
- tColor = clamp(tColor, 0.0, 1.0);
-
-
- tColor.g = tColor.g * 1.3;
-
- float dStrength = 1.0;
- float dSatStrength = 0.5;
- float dGap = 0.0;
-
-
- if( tColor.r >= 0.292 && tColor.r <= 0.375)
- {
- tColor.g = tColor.g + (tColor.g * dSatStrength);
- }
- else if( tColor.r >= 0.208 && tColor.r < 0.292)
- {
- dGap = abs(tColor.r - 0.208);
- dStrength = (dGap / 0.0833);
-
- tColor.g = tColor.g + (tColor.g * dSatStrength * dStrength);
- }
- else if( tColor.r > 0.375 && tColor.r <= 0.458)
- {
- dGap = abs(tColor.r - 0.458);
- dStrength = (dGap / 0.0833);
-
- tColor.g = tColor.g + (tColor.g * dSatStrength * dStrength);
- }
- tColor = HSLtoRGB(tColor);
- tColor = clamp(tColor, 0.0, 1.0);
-
- redCurveValue = texture2D(curve, vec2(tColor.r, 0.0)).b;
- greenCurveValue = texture2D(curve, vec2(tColor.g, 0.0)).b;
- blueCurveValue = texture2D(curve, vec2(tColor.b, 0.0)).b;
- redCurveValue = texture2D(curve, vec2(redCurveValue, 0.0)).r;
- blueCurveValue = texture2D(curve, vec2(blueCurveValue, 0.0)).g;
-
- textureColor = vec4(redCurveValue, greenCurveValue, blueCurveValue, 1.0);
-
- gl_FragColor = vec4(textureColor.r, textureColor.g, textureColor.b, 1.0);
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/exposure.glsl b/Live/src/main/res/raw/exposure.glsl
deleted file mode 100644
index 88cebd5..0000000
--- a/Live/src/main/res/raw/exposure.glsl
+++ /dev/null
@@ -1,9 +0,0 @@
-varying highp vec2 textureCoordinate;
-
-uniform sampler2D inputImageTexture;
-uniform highp float exposure;
-
-void main() {
- highp vec4 textureColor = texture2D(inputImageTexture, textureCoordinate);
- gl_FragColor = vec4(textureColor.rgb * pow(2.0, exposure), textureColor.w);
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/fragment.glsl b/Live/src/main/res/raw/fragment.glsl
deleted file mode 100644
index 2c6ed48..0000000
--- a/Live/src/main/res/raw/fragment.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision mediump float;
-
-varying mediump vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-
-void main() {
- gl_FragColor = texture2D(inputImageTexture, textureCoordinate);
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/freud.glsl b/Live/src/main/res/raw/freud.glsl
deleted file mode 100644
index bebf10c..0000000
--- a/Live/src/main/res/raw/freud.glsl
+++ /dev/null
@@ -1,172 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision highp float;
-varying mediump vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D inputImageTexture2;
-
-uniform float inputImageTextureHeight;
-uniform float inputImageTextureWidth;
-
-float texture2Size = 1024.0;
-
-uniform float strength;
-
-// gray
-float NCGray(vec4 color)
-{
- float gray = 0.2125 * color.r + 0.7154 * color.g + 0.0721 * color.b;
- return gray;
-}
-
-// tone mapping
-vec4 NCTonemapping(vec4 color)
-{
- vec4 mapped;
- mapped.r = texture2D(inputImageTexture2, vec2(color.r, 0.0)).r;
- mapped.g = texture2D(inputImageTexture2, vec2(color.g, 0.0)).g;
- mapped.b = texture2D(inputImageTexture2, vec2(color.b, 0.0)).b;
- mapped.a = color.a;
- return mapped;
-}
-
-// color control
-vec4 NCColorControl(vec4 color, float saturation, float brightness, float contrast)
-{
- float gray = NCGray(color);
-
- color.rgb = vec3(saturation) * color.rgb + vec3(1.0-saturation) * vec3(gray);
- color.r = clamp(color.r, 0.0, 1.0);
- color.g = clamp(color.g, 0.0, 1.0);
- color.b = clamp(color.b, 0.0, 1.0);
-
- color.rgb = vec3(contrast) * (color.rgb - vec3(0.5)) + vec3(0.5);
- color.r = clamp(color.r, 0.0, 1.0);
- color.g = clamp(color.g, 0.0, 1.0);
- color.b = clamp(color.b, 0.0, 1.0);
-
- color.rgb = color.rgb + vec3(brightness);
- color.r = clamp(color.r, 0.0, 1.0);
- color.g = clamp(color.g, 0.0, 1.0);
- color.b = clamp(color.b, 0.0, 1.0);
-
- return color;
-}
-
-// hue adjust
-vec4 NCHueAdjust(vec4 color, float hueAdjust)
-{
- vec3 kRGBToYPrime = vec3(0.299, 0.587, 0.114);
- vec3 kRGBToI = vec3(0.595716, -0.274453, -0.321263);
- vec3 kRGBToQ = vec3(0.211456, -0.522591, 0.31135);
-
- vec3 kYIQToR = vec3(1.0, 0.9563, 0.6210);
- vec3 kYIQToG = vec3(1.0, -0.2721, -0.6474);
- vec3 kYIQToB = vec3(1.0, -1.1070, 1.7046);
-
- float yPrime = dot(color.rgb, kRGBToYPrime);
- float I = dot(color.rgb, kRGBToI);
- float Q = dot(color.rgb, kRGBToQ);
-
- float hue = atan(Q, I);
- float chroma = sqrt (I * I + Q * Q);
-
- hue -= hueAdjust;
-
- Q = chroma * sin (hue);
- I = chroma * cos (hue);
-
- color.r = dot(vec3(yPrime, I, Q), kYIQToR);
- color.g = dot(vec3(yPrime, I, Q), kYIQToG);
- color.b = dot(vec3(yPrime, I, Q), kYIQToB);
-
- return color;
-}
-
-// colorMatrix
-vec4 NCColorMatrix(vec4 color, float red, float green, float blue, float alpha, vec4 bias)
-{
- color = color * vec4(red, green, blue, alpha) + bias;
-
- return color;
-}
-
-// multiply blend
-vec4 NCMultiplyBlend(vec4 overlay, vec4 base)
-{
- vec4 outputColor;
-
- float a = overlay.a + base.a * (1.0 - overlay.a);
-
- // // normal blend
- // outputColor.r = (base.r * base.a + overlay.r * overlay.a * (1.0 - base.a))/a;
- // outputColor.g = (base.g * base.a + overlay.g * overlay.a * (1.0 - base.a))/a;
- // outputColor.b = (base.b * base.a + overlay.b * overlay.a * (1.0 - base.a))/a;
-
-
- // multiply blend
- outputColor.rgb = ((1.0-base.a) * overlay.rgb * overlay.a + (1.0-overlay.a) * base.rgb * base.a + overlay.a * base.a * overlay.rgb * base.rgb) / a;
-
-
- outputColor.a = a;
-
- return outputColor;
-}
-
-// xy should be a integer position (e.g. pixel position on the screen)
-// similar to a texture lookup but is only ALU
-float PseudoRandom(vec2 co)
-{
- // return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);
- mediump float a = 12.9898;
- mediump float b = 78.233;
- mediump float c = 43758.5453;
- mediump float dt= dot(co.xy ,vec2(a,b));
- mediump float sn= mod(dt,3.14);
- return fract(sin(sn) * c);
-}
-
-void main()
-{
- vec4 originColor = texture2D(inputImageTexture, textureCoordinate);
- vec4 color = texture2D(inputImageTexture, textureCoordinate);
-
- color.a = 1.0;
-
- // color control
-// color = NCColorControl(color, 0.6, -0.06, 0.75);
- color = NCColorControl(color, 0.5, 0.1, 0.9);
-
- // rand
- float x = textureCoordinate.x*inputImageTextureWidth/texture2Size;
- float y = textureCoordinate.y*inputImageTextureHeight/texture2Size;
-
- vec4 rd = texture2D(inputImageTexture2, vec2( fract(x), fract(y)));
-// vec4 rd = texture2D(inputImageTexture2, textureCoordinate);
-// float rand_number1 = PseudoRandom(textureCoordinate.xy);
-// float rand_number2 = PseudoRandom(textureCoordinate.yx);
-// float rand_number3 = PseudoRandom(vec2(rand_number1, rand_number2));
-// float rand_number4 = PseudoRandom(vec2(rand_number2, rand_number1));
-// float rand_number5 = PseudoRandom(vec2(rand_number3, rand_number4));
-
-// vec4 rd = vec4(rand_number1, rand_number3, rand_number5, 1.0);
-
-// if(rand_number4>0.2)
-// rd = vec4(1.0);
-
- // rand color control
-// rd = NCColorControl(rd, 0.65, 0.1, 0.7);
- rd = NCColorControl(rd, 1.0, 0.4, 1.2);
-
- // normal blend
-// rd.a *= 1.0;
- color = NCMultiplyBlend(rd, color);
-
- // color matrix
-// color = NCColorMatrix(color, 1.0, 1.0, 1.0, 1.0, vec4(-0.1, -0.1, -0.1, 0));
- color = NCColorMatrix(color, 1.0, 1.0, 1.0, 1.0, vec4(-0.15, -0.15, -0.15, 0));
-
- color.rgb = mix(originColor.rgb, color.rgb, strength);
- gl_FragColor = color;
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/healthy.glsl b/Live/src/main/res/raw/healthy.glsl
deleted file mode 100644
index 47b89fb..0000000
--- a/Live/src/main/res/raw/healthy.glsl
+++ /dev/null
@@ -1,141 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision mediump float;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D curve;
-uniform sampler2D mask;
-
-uniform float texelWidthOffset ;
-
-uniform float texelHeightOffset;
-
-varying mediump vec2 textureCoordinate;
-
-vec4 level0c(vec4 color, sampler2D sampler)
-{
- color.r = texture2D(sampler, vec2(color.r, 0.)).r;
- color.g = texture2D(sampler, vec2(color.g, 0.)).r;
- color.b = texture2D(sampler, vec2(color.b, 0.)).r;
- return color;
-}
-
-vec4 level1c(vec4 color, sampler2D sampler)
-{
- color.r = texture2D(sampler, vec2(color.r, 0.)).g;
- color.g = texture2D(sampler, vec2(color.g, 0.)).g;
- color.b = texture2D(sampler, vec2(color.b, 0.)).g;
- return color;
-}
-
-vec4 level2c(vec4 color, sampler2D sampler)
-{
- color.r = texture2D(sampler, vec2(color.r,0.)).b;
- color.g = texture2D(sampler, vec2(color.g,0.)).b;
- color.b = texture2D(sampler, vec2(color.b,0.)).b;
- return color;
-}
-
-vec3 rgb2hsv(vec3 c)
-{
- vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
- vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));
- vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));
-
- float d = q.x - min(q.w, q.y);
- float e = 1.0e-10;
- return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
-}
-
-vec3 hsv2rgb(vec3 c)
-{
- vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
- vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
- return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
-}
-
-vec4 normal(vec4 c1, vec4 c2, float alpha)
-{
- return (c2-c1) * alpha + c1;
-}
-
-vec4 multiply(vec4 c1, vec4 c2)
-{
- return c1 * c2 * 1.01;
-}
-
-vec4 overlay(vec4 c1, vec4 c2)
-{
- vec4 color = vec4(0.,0.,0.,1.);
-
- color.r = c1.r < 0.5 ? 2.0*c1.r*c2.r : 1.0 - 2.0*(1.0-c1.r)*(1.0-c2.r);
- color.g = c1.g < 0.5 ? 2.0*c1.g*c2.g : 1.0 - 2.0*(1.0-c1.g)*(1.0-c2.g);
- color.b = c1.b < 0.5 ? 2.0*c1.b*c2.b : 1.0 - 2.0*(1.0-c1.b)*(1.0-c2.b);
-
- return color;
-}
-
-vec4 screen(vec4 c1, vec4 c2)
-{
- return vec4(1.) - ((vec4(1.) - c1) * (vec4(1.) - c2));
-}
-
-void main()
-{
- // iOS ImageLiveFilter adjustment
- // begin
-
- vec4 textureColor;
-
- vec4 t0 = texture2D(mask, vec2(textureCoordinate.x, textureCoordinate.y));
-
- // naver skin
- vec4 c2 = texture2D(inputImageTexture, textureCoordinate);
- vec4 c5 = c2;
-
- // healthy
- vec3 hsv = rgb2hsv(c5.rgb);
- lowp float h = hsv.x;
- lowp float s = hsv.y;
- lowp float v = hsv.z;
-
- lowp float cF = 0.;
- // color strength
- lowp float cG = 0.;
- // color gap;
- lowp float sF = 0.06;
- // saturation strength;
-
- if(h >= 0.125 && h <= 0.208)
- {
- // 45 to 75
- s = s - (s * sF);
- }
- else if (h >= 0.208 && h < 0.292)
- {
- // 75 to 105
- cG = abs(h - 0.208);
- cF = (cG / 0.0833);
- s = s - (s * sF * cF);
- }
- else if (h > 0.042 && h <= 0.125)
- {
- // 15 to 45
- cG = abs(h - 0.125);
- cF = (cG / 0.0833);
- s = s - (s * sF * cF);
- }
- hsv.y = s;
-
- vec4 c6 = vec4(hsv2rgb(hsv),1.);
-
- c6 = normal(c6, screen (c6, c6), 0.275); // screen 70./255.
- c6 = normal(c6, overlay (c6, vec4(1., 0.61176, 0.25098, 1.)), 0.04); // overlay 10./255.
-
- c6 = normal(c6, multiply(c6, t0), 0.262); // multiply 67./255.
-
- c6 = level1c(level0c(c6,curve),curve);
-
- gl_FragColor = c6;
- // end
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/hefe.glsl b/Live/src/main/res/raw/hefe.glsl
deleted file mode 100644
index 77983ef..0000000
--- a/Live/src/main/res/raw/hefe.glsl
+++ /dev/null
@@ -1,46 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision mediump float;
-
-varying mediump vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D inputImageTexture2; //edgeBurn
-uniform sampler2D inputImageTexture3; //hefeMap
-uniform sampler2D inputImageTexture4; //hefeGradientMap
-uniform sampler2D inputImageTexture5; //hefeSoftLight
-uniform sampler2D inputImageTexture6; //hefeMetal
-
-uniform float strength;
-
-void main()
-{
- vec4 originColor = texture2D(inputImageTexture, textureCoordinate);
- vec3 texel = texture2D(inputImageTexture, textureCoordinate).rgb;
- vec3 edge = texture2D(inputImageTexture2, textureCoordinate).rgb;
- texel = texel * edge;
-
- texel = vec3(
- texture2D(inputImageTexture3, vec2(texel.r, .16666)).r,
- texture2D(inputImageTexture3, vec2(texel.g, .5)).g,
- texture2D(inputImageTexture3, vec2(texel.b, .83333)).b);
-
- vec3 luma = vec3(.30, .59, .11);
- vec3 gradSample = texture2D(inputImageTexture4, vec2(dot(luma, texel), .5)).rgb;
- vec3 final = vec3(
- texture2D(inputImageTexture5, vec2(gradSample.r, texel.r)).r,
- texture2D(inputImageTexture5, vec2(gradSample.g, texel.g)).g,
- texture2D(inputImageTexture5, vec2(gradSample.b, texel.b)).b
- );
-
- vec3 metal = texture2D(inputImageTexture6, textureCoordinate).rgb;
- vec3 metaled = vec3(
- texture2D(inputImageTexture5, vec2(metal.r, texel.r)).r,
- texture2D(inputImageTexture5, vec2(metal.g, texel.g)).g,
- texture2D(inputImageTexture5, vec2(metal.b, texel.b)).b
- );
-
- metaled.rgb = mix(originColor.rgb, metaled.rgb, strength);
-
- gl_FragColor = vec4(metaled, 1.0);
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/hudson.glsl b/Live/src/main/res/raw/hudson.glsl
deleted file mode 100644
index 76f5d79..0000000
--- a/Live/src/main/res/raw/hudson.glsl
+++ /dev/null
@@ -1,35 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision mediump float;
-
-varying mediump vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D inputImageTexture2; //blowout;
-uniform sampler2D inputImageTexture3; //overlay;
-uniform sampler2D inputImageTexture4; //map
-
-uniform float strength;
-
-void main()
-{
- vec4 originColor = texture2D(inputImageTexture, textureCoordinate);
-
- vec4 texel = texture2D(inputImageTexture, textureCoordinate);
-
- vec3 bbTexel = texture2D(inputImageTexture2, textureCoordinate).rgb;
-
- texel.r = texture2D(inputImageTexture3, vec2(bbTexel.r, texel.r)).r;
- texel.g = texture2D(inputImageTexture3, vec2(bbTexel.g, texel.g)).g;
- texel.b = texture2D(inputImageTexture3, vec2(bbTexel.b, texel.b)).b;
-
- vec4 mapped;
- mapped.r = texture2D(inputImageTexture4, vec2(texel.r, .16666)).r;
- mapped.g = texture2D(inputImageTexture4, vec2(texel.g, .5)).g;
- mapped.b = texture2D(inputImageTexture4, vec2(texel.b, .83333)).b;
- mapped.a = 1.0;
-
- mapped.rgb = mix(originColor.rgb, mapped.rgb, strength);
-
- gl_FragColor = mapped;
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/hue.glsl b/Live/src/main/res/raw/hue.glsl
deleted file mode 100644
index 894ae0f..0000000
--- a/Live/src/main/res/raw/hue.glsl
+++ /dev/null
@@ -1,43 +0,0 @@
-precision highp float;
-
-varying highp vec2 textureCoordinate;
-
-uniform sampler2D inputImageTexture;
-uniform mediump float hueAdjust;
-const highp vec4 kRGBToYPrime = vec4 (0.299, 0.587, 0.114, 0.0);
-const highp vec4 kRGBToI = vec4 (0.595716, -0.274453, -0.321263, 0.0);
-const highp vec4 kRGBToQ = vec4 (0.211456, -0.522591, 0.31135, 0.0);
-
-const highp vec4 kYIQToR = vec4 (1.0, 0.9563, 0.6210, 0.0);
-const highp vec4 kYIQToG = vec4 (1.0, -0.2721, -0.6474, 0.0);
-const highp vec4 kYIQToB = vec4 (1.0, -1.1070, 1.7046, 0.0);
-
-void main () {
- // Sample the input pixel
- highp vec4 color = texture2D(inputImageTexture, textureCoordinate);
-
- // Convert to YIQ
- highp float YPrime = dot (color, kRGBToYPrime);
- highp float I = dot (color, kRGBToI);
- highp float Q = dot (color, kRGBToQ);
-
- // Calculate the hue and chroma
- highp float hue = atan (Q, I);
- highp float chroma = sqrt (I * I + Q * Q);
-
- // Make the user's adjustments
- hue += (-hueAdjust); //why negative rotation?
-
- // Convert back to YIQ
- Q = chroma * sin (hue);
- I = chroma * cos (hue);
-
- // Convert back to RGB
- highp vec4 yIQ = vec4 (YPrime, I, Q, 0.0);
- color.r = dot (yIQ, kYIQToR);
- color.g = dot (yIQ, kYIQToG);
- color.b = dot (yIQ, kYIQToB);
-
- // Save the result
- gl_FragColor = color;
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/inkwell.glsl b/Live/src/main/res/raw/inkwell.glsl
deleted file mode 100644
index d1aef96..0000000
--- a/Live/src/main/res/raw/inkwell.glsl
+++ /dev/null
@@ -1,16 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision mediump float;
-
-varying mediump vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D inputImageTexture2;
-
-void main()
-{
- vec3 texel = texture2D(inputImageTexture, textureCoordinate).rgb;
- texel = vec3(dot(vec3(0.3, 0.6, 0.1), texel));
- texel = vec3(texture2D(inputImageTexture2, vec2(texel.r, .16666)).r);
- gl_FragColor = vec4(texel, 1.0);
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/kevin_new.glsl b/Live/src/main/res/raw/kevin_new.glsl
deleted file mode 100644
index bfcd7f0..0000000
--- a/Live/src/main/res/raw/kevin_new.glsl
+++ /dev/null
@@ -1,26 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision mediump float;
-
-varying mediump vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D inputImageTexture2;
-
-void main()
-{
- vec3 texel = texture2D(inputImageTexture, textureCoordinate).rgb;
- vec2 lookup;
- lookup.y = .5;
-
- lookup.x = texel.r;
- texel.r = texture2D(inputImageTexture2, lookup).r;
-
- lookup.x = texel.g;
- texel.g = texture2D(inputImageTexture2, lookup).g;
-
- lookup.x = texel.b;
- texel.b = texture2D(inputImageTexture2, lookup).b;
-
- gl_FragColor = vec4(texel, 1.0);
-}
diff --git a/Live/src/main/res/raw/latte.glsl b/Live/src/main/res/raw/latte.glsl
deleted file mode 100644
index e1f335e..0000000
--- a/Live/src/main/res/raw/latte.glsl
+++ /dev/null
@@ -1,163 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision highp float;
-
-varying highp vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D curve;
-
-vec3 rgb2hsv(vec3 c)
-{
- vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
- vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));
- vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));
-
- float d = q.x - min(q.w, q.y);
- float e = 1.0e-10;
- return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
-}
-
-vec3 hsv2rgb(vec3 c)
-{
- vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
- vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
- return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
-}
-
-void main()
-{
- float GreyVal;
- lowp vec4 textureColor;
- lowp vec4 textureColorOri;
- float xCoordinate = textureCoordinate.x;
- float yCoordinate = textureCoordinate.y;
-
- highp float redCurveValue;
- highp float greenCurveValue;
- highp float blueCurveValue;
-
- textureColor = texture2D( inputImageTexture, vec2(xCoordinate, yCoordinate));
- mediump vec4 base = textureColor;
- mediump vec4 overlay = vec4(0.792, 0.58, 0.372, 1.0);
-
- // step1 overlay blending
- mediump float ra;
- if (base.r < 0.5)
- {
- ra = overlay.r * base.r * 2.0;
- }
- else
- {
- ra = 1.0 - ((1.0 - base.r) * (1.0 - overlay.r) * 2.0);
- }
-
- mediump float ga;
- if (base.g < 0.5)
- {
- ga = overlay.g * base.g * 2.0;
- }
- else
- {
- ga = 1.0 - ((1.0 - base.g) * (1.0 - overlay.g) * 2.0);
- }
-
- mediump float ba;
- if (base.b < 0.5)
- {
- ba = overlay.b * base.b * 2.0;
- }
- else
- {
- ba = 1.0 - ((1.0 - base.b) * (1.0 - overlay.b) * 2.0);
- }
-
- textureColor = vec4(ra, ga, ba, 1.0);
- textureColor = (textureColor - base) * 0.3 + base;
-
- redCurveValue = texture2D(curve, vec2(textureColor.r, 0.0)).r;
- greenCurveValue = texture2D(curve, vec2(textureColor.g, 0.0)).g;
- blueCurveValue = texture2D(curve, vec2(textureColor.b, 0.0)).b;
-
- redCurveValue = texture2D(curve, vec2(redCurveValue, 1.0)).g;
- greenCurveValue = texture2D(curve, vec2(greenCurveValue, 1.0)).g;
- blueCurveValue = texture2D(curve, vec2(blueCurveValue, 1.0)).g;
-
-
- vec3 tColor = vec3(redCurveValue, greenCurveValue, blueCurveValue);
- tColor = rgb2hsv(tColor);
-
- tColor.g = tColor.g * 0.6;
-
- float dStrength = 1.0;
- float dSatStrength = 0.2;
-
- float dGap = 0.0;
-
- if( tColor.r >= 0.0 && tColor.r < 0.417)
- {
- tColor.g = tColor.g + (tColor.g * dSatStrength);
- }
- else if( tColor.r > 0.958 && tColor.r <= 1.0)
- {
- tColor.g = tColor.g + (tColor.g * dSatStrength);
- }
- else if( tColor.r >= 0.875 && tColor.r <= 0.958)
- {
- dGap = abs(tColor.r - 0.875);
- dStrength = (dGap / 0.0833);
-
- tColor.g = tColor.g + (tColor.g * dSatStrength * dStrength);
- }
- else if( tColor.r >= 0.0417 && tColor.r <= 0.125)
- {
- dGap = abs(tColor.r - 0.125);
- dStrength = (dGap / 0.0833);
-
- tColor.g = tColor.g + (tColor.g * dSatStrength * dStrength);
- }
-
-
- tColor = hsv2rgb(tColor);
- tColor = clamp(tColor, 0.0, 1.0);
-
- redCurveValue = texture2D(curve, vec2(tColor.r, 1.0)).r;
- greenCurveValue = texture2D(curve, vec2(tColor.g, 1.0)).r;
- blueCurveValue = texture2D(curve, vec2(tColor.b, 1.0)).r;
-
- base = vec4(redCurveValue, greenCurveValue, blueCurveValue, 1.0);
- overlay = vec4(0.792, 0.494, 0.372, 1.0);
-
- // step5 overlay blending
- if (base.r < 0.5)
- {
- ra = overlay.r * base.r * 2.0;
- }
- else
- {
- ra = 1.0 - ((1.0 - base.r) * (1.0 - overlay.r) * 2.0);
- }
-
- if (base.g < 0.5)
- {
- ga = overlay.g * base.g * 2.0;
- }
- else
- {
- ga = 1.0 - ((1.0 - base.g) * (1.0 - overlay.g) * 2.0);
- }
-
- if (base.b < 0.5)
- {
- ba = overlay.b * base.b * 2.0;
- }
- else
- {
- ba = 1.0 - ((1.0 - base.b) * (1.0 - overlay.b) * 2.0);
- }
-
- textureColor = vec4(ra, ga, ba, 1.0);
- textureColor = (textureColor - base) * 0.15 + base;
-
- gl_FragColor = vec4(textureColor.r, textureColor.g, textureColor.b, 1.0);
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/lomo.glsl b/Live/src/main/res/raw/lomo.glsl
deleted file mode 100644
index 1069724..0000000
--- a/Live/src/main/res/raw/lomo.glsl
+++ /dev/null
@@ -1,29 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision mediump float;
-
-varying mediump vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D inputImageTexture2;
-uniform sampler2D inputImageTexture3;
-
-uniform float strength;
-
-void main()
-{
- vec4 originColor = vec4(0.2,0.6,0.9,1.0);
- vec3 texel;
- vec2 tc = (2.0 * textureCoordinate) - 1.0;
- float d = dot(tc, tc);
- vec2 lookup = vec2(d, originColor.r);
- texel.r = texture2D(inputImageTexture3, lookup).r;
- lookup.y = originColor.g;
- texel.g = texture2D(inputImageTexture3, lookup).g;
- lookup.y = originColor.b;
- texel.b = texture2D(inputImageTexture3, lookup).b;
-
- texel.rgb = mix(originColor.rgb, texel.rgb, strength);
-
- gl_FragColor = vec4(texel,1.0);
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/lookup.glsl b/Live/src/main/res/raw/lookup.glsl
deleted file mode 100644
index e70e446..0000000
--- a/Live/src/main/res/raw/lookup.glsl
+++ /dev/null
@@ -1,33 +0,0 @@
-varying highp vec2 textureCoordinate;
-
-uniform sampler2D inputImageTexture;
-uniform sampler2D inputImageTexture2; // lookup texture\n" +
-
-void main() {
-
- lowp vec4 textureColor = texture2D(inputImageTexture, textureCoordinate);\n" +
-
- mediump float blueColor = textureColor.b * 63.0;
-
- mediump vec2 quad1;
- quad1.y = floor(floor(blueColor) / 8.0);
- quad1.x = floor(blueColor) - (quad1.y * 8.0);
-
- mediump vec2 quad2;\n" +
- quad2.y = floor(ceil(blueColor) / 8.0);\n" +
- quad2.x = ceil(blueColor) - (quad2.y * 8.0);\n" +
-
- highp vec2 texPos1;
- texPos1.x = (quad1.x * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.r);
- texPos1.y = (quad1.y * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.g);
-
- highp vec2 texPos2;\n" +
- texPos2.x = (quad2.x * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.r);
- texPos2.y = (quad2.y * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.g);
-
- lowp vec4 newColor1 = texture2D(inputImageTexture2, texPos1);
- lowp vec4 newColor2 = texture2D(inputImageTexture2, texPos2);
-
- lowp vec4 newColor = mix(newColor1, newColor2, fract(blueColor));
- gl_FragColor = vec4(newColor.rgb, textureColor.w);
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/n1977.glsl b/Live/src/main/res/raw/n1977.glsl
deleted file mode 100644
index 2b38a15..0000000
--- a/Live/src/main/res/raw/n1977.glsl
+++ /dev/null
@@ -1,19 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision mediump float;
-
-varying mediump vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D inputImageTexture2;
-
-void main()
-{
- vec3 texel = texture2D(inputImageTexture, textureCoordinate).rgb;
- texel = vec3(
- texture2D(inputImageTexture2, vec2(texel.r, .16666)).r,
- texture2D(inputImageTexture2, vec2(texel.g, .5)).g,
- texture2D(inputImageTexture2, vec2(texel.b, .83333)).b);
-
- gl_FragColor = vec4(texel, 1.0);
-}
diff --git a/Live/src/main/res/raw/nashville.glsl b/Live/src/main/res/raw/nashville.glsl
deleted file mode 100644
index c4dc45e..0000000
--- a/Live/src/main/res/raw/nashville.glsl
+++ /dev/null
@@ -1,18 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision mediump float;
-
-varying mediump vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D inputImageTexture2;
-
-void main()
-{
- vec3 texel = texture2D(inputImageTexture, textureCoordinate).rgb;
- texel = vec3(
- texture2D(inputImageTexture2, vec2(texel.r, .16666)).r,
- texture2D(inputImageTexture2, vec2(texel.g, .5)).g,
- texture2D(inputImageTexture2, vec2(texel.b, .83333)).b);
- gl_FragColor = vec4(texel, 1.0);
-}
diff --git a/Live/src/main/res/raw/nostalgia.glsl b/Live/src/main/res/raw/nostalgia.glsl
deleted file mode 100644
index 1c5a327..0000000
--- a/Live/src/main/res/raw/nostalgia.glsl
+++ /dev/null
@@ -1,108 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision highp float;
-
-varying highp vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D curve;
-uniform sampler2D curve2;
-uniform highp float texelWidthOffset;
-uniform highp float texelHeightOffset;
-uniform highp float blurSize;
-
-vec4 OverlayBlendingVec4(vec4 down, vec4 up, float fAlpha)
-{
- if ( down.r < 0.5 )
- {
- up.r = up.r * down.r * 2.0;
- }
- else
- {
- up.r = 1.0 - ( ( 1.0 - down.r) * ( 1.0 - up.r ) * 2.0 );
- }
- if ( down.g < 0.5 )
- {
- up.g = up.g * down.g * 2.0;
- }
- else
- {
- up.g = 1.0 - ( ( 1.0 - down.g) * ( 1.0 - up.g ) * 2.0 );
- }
-
- if ( down.b < 0.5 )
- {
- up.b = up.b * down.b * 2.0;
- }
- else
- {
- up.b = 1.0 - ( ( 1.0 - down.b) * ( 1.0 - up.b ) * 2.0 );
- }
-
- down = ( up - down ) * fAlpha + down;
-
- return down;
-}
-
-void main()
-{
- float xCoordinate = textureCoordinate.x;
- float yCoordinate = textureCoordinate.y;
-
- vec4 textureColor = texture2D( inputImageTexture, vec2(xCoordinate, yCoordinate));
- highp vec2 firstOffset = vec2(1.3846153846 * texelWidthOffset, 1.3846153846 * texelHeightOffset) * blurSize;
- highp vec2 secondOffset = vec2(3.2307692308 * texelWidthOffset, 3.2307692308 * texelHeightOffset) * blurSize;
-
- highp vec2 centerTextureCoordinate = vec2(xCoordinate, yCoordinate);
- highp vec2 oneStepLeftTextureCoordinate = vec2(xCoordinate, yCoordinate) - firstOffset;
- highp vec2 twoStepsLeftTextureCoordinate = vec2(xCoordinate, yCoordinate) - secondOffset;
- highp vec2 oneStepRightTextureCoordinate = vec2(xCoordinate, yCoordinate) + firstOffset;
- highp vec2 twoStepsRightTextureCoordinate = vec2(xCoordinate, yCoordinate) + secondOffset;
-
- lowp vec4 fragmentColor = texture2D(inputImageTexture, vec2(centerTextureCoordinate.x, centerTextureCoordinate.y)) * 0.2270270270;
- fragmentColor += texture2D(inputImageTexture, vec2(oneStepLeftTextureCoordinate.x, oneStepLeftTextureCoordinate.y)) * 0.3162162162;
- fragmentColor += texture2D(inputImageTexture, vec2(oneStepRightTextureCoordinate.x, oneStepRightTextureCoordinate.y)) * 0.3162162162;
- fragmentColor += texture2D(inputImageTexture, vec2(twoStepsLeftTextureCoordinate.x, twoStepsLeftTextureCoordinate.y)) * 0.0702702703;
- fragmentColor += texture2D(inputImageTexture, vec2(twoStepsRightTextureCoordinate.x, twoStepsRightTextureCoordinate.y)) * 0.0702702703;
-
- lowp vec4 blurColor = fragmentColor;
-
- // step1 ScreenBlending
- blurColor = 1.0 - ((1.0 - textureColor) * (1.0 - blurColor));
- blurColor = clamp(blurColor, 0.0, 1.0);
- textureColor = (blurColor - textureColor) * 0.7 + textureColor;
- textureColor = clamp(textureColor, 0.0, 1.0);
-
- // step2 OverlayBlending
- textureColor = OverlayBlendingVec4(textureColor, vec4(0.0, 0.0, 0.0, 1.0), 0.3);
- textureColor = clamp(textureColor, vec4(0.0, 0.0, 0.0, 1.0), vec4(1.0, 1.0, 1.0, 1.0));
-
- // step3 curve
- highp float redCurveValue = texture2D(curve, vec2(textureColor.r, 0.0)).r;
- highp float greenCurveValue = texture2D(curve, vec2(textureColor.g, 0.0)).g;
- highp float blueCurveValue = texture2D(curve, vec2(textureColor.b, 0.0)).b;
-
- // step4 curve
- redCurveValue = texture2D(curve, vec2(redCurveValue, 1.0)).r;
- greenCurveValue = texture2D(curve, vec2(greenCurveValue, 1.0)).r;
- blueCurveValue = texture2D(curve, vec2(blueCurveValue, 1.0)).r;
-
- // step5 level
- redCurveValue = texture2D(curve, vec2(redCurveValue, 1.0)).g;
- greenCurveValue = texture2D(curve, vec2(greenCurveValue, 1.0)).g;
- blueCurveValue = texture2D(curve, vec2(blueCurveValue, 1.0)).g;
-
- // step6 curve
- redCurveValue = texture2D(curve2, vec2(redCurveValue, 1.0)).r;
- greenCurveValue = texture2D(curve2, vec2(greenCurveValue, 1.0)).g;
- blueCurveValue = texture2D(curve2, vec2(blueCurveValue, 1.0)).b;
-
- // step7 curve
- redCurveValue = texture2D(curve, vec2(redCurveValue, 1.0)).b;
- greenCurveValue = texture2D(curve, vec2(greenCurveValue, 1.0)).b;
-
- blueCurveValue = texture2D(curve, vec2(blueCurveValue, 1.0)).b;
-
- lowp vec4 BCSColor = vec4(redCurveValue, greenCurveValue, blueCurveValue, 1.0);
- gl_FragColor = vec4(BCSColor.r,BCSColor.g,BCSColor.b,1.0);
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/pixar.glsl b/Live/src/main/res/raw/pixar.glsl
deleted file mode 100644
index 9a91be4..0000000
--- a/Live/src/main/res/raw/pixar.glsl
+++ /dev/null
@@ -1,137 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision mediump float;
-
-varying mediump vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D inputImageTexture2;
-
-uniform float strength;
-
-// gray
-float NCGray(vec4 color)
-{
- float gray = 0.2125 * color.r + 0.7154 * color.g + 0.0721 * color.b;
- return gray;
-}
-
-// tone mapping
-vec4 NCTonemapping(vec4 color)
-{
- vec4 mapped;
- mapped.r = texture2D(inputImageTexture2, vec2(color.r, 0.0)).r;
- mapped.g = texture2D(inputImageTexture2, vec2(color.g, 0.0)).g;
- mapped.b = texture2D(inputImageTexture2, vec2(color.b, 0.0)).b;
- mapped.a = color.a;
- return mapped;
-}
-
-// color control
-vec4 NCColorControl(vec4 color, float saturation, float brightness, float contrast)
-{
- float gray = NCGray(color);
-
- color.rgb = vec3(saturation) * color.rgb + vec3(1.0-saturation) * vec3(gray);
- color.r = clamp(color.r, 0.0, 1.0);
- color.g = clamp(color.g, 0.0, 1.0);
- color.b = clamp(color.b, 0.0, 1.0);
-
- color.rgb = vec3(contrast) * (color.rgb - vec3(0.5)) + vec3(0.5);
- color.r = clamp(color.r, 0.0, 1.0);
- color.g = clamp(color.g, 0.0, 1.0);
- color.b = clamp(color.b, 0.0, 1.0);
-
- color.rgb = color.rgb + vec3(brightness);
- color.r = clamp(color.r, 0.0, 1.0);
- color.g = clamp(color.g, 0.0, 1.0);
- color.b = clamp(color.b, 0.0, 1.0);
-
- return color;
-}
-
-// hue adjust
-vec4 NCHueAdjust(vec4 color, float hueAdjust)
-{
- vec3 kRGBToYPrime = vec3(0.299, 0.587, 0.114);
- vec3 kRGBToI = vec3(0.595716, -0.274453, -0.321263);
- vec3 kRGBToQ = vec3(0.211456, -0.522591, 0.31135);
-
- vec3 kYIQToR = vec3(1.0, 0.9563, 0.6210);
- vec3 kYIQToG = vec3(1.0, -0.2721, -0.6474);
- vec3 kYIQToB = vec3(1.0, -1.1070, 1.7046);
-
- float yPrime = dot(color.rgb, kRGBToYPrime);
- float I = dot(color.rgb, kRGBToI);
- float Q = dot(color.rgb, kRGBToQ);
-
- float hue = atan(Q, I);
- float chroma = sqrt (I * I + Q * Q);
-
- hue -= hueAdjust;
-
- Q = chroma * sin (hue);
- I = chroma * cos (hue);
-
- color.r = dot(vec3(yPrime, I, Q), kYIQToR);
- color.g = dot(vec3(yPrime, I, Q), kYIQToG);
- color.b = dot(vec3(yPrime, I, Q), kYIQToB);
-
- return color;
-}
-
-// colorMatrix
-vec4 NCColorMatrix(vec4 color, float red, float green, float blue, float alpha, vec4 bias)
-{
- color = color * vec4(red, green, blue, alpha) + bias;
-
- return color;
-}
-
-// multiply blend
-vec4 NCMultiplyBlend(vec4 overlay, vec4 base)
-{
- vec4 outputColor;
-
- float a = overlay.a + base.a * (1.0 - overlay.a);
-
- // // normal blend
- // outputColor.r = (base.r * base.a + overlay.r * overlay.a * (1.0 - base.a))/a;
- // outputColor.g = (base.g * base.a + overlay.g * overlay.a * (1.0 - base.a))/a;
- // outputColor.b = (base.b * base.a + overlay.b * overlay.a * (1.0 - base.a))/a;
-
-
- // multiply blend
- outputColor.rgb = ((1.0-base.a) * overlay.rgb * overlay.a + (1.0-overlay.a) * base.rgb * base.a + overlay.a * base.a * overlay.rgb * base.rgb) / a;
-
-
- outputColor.a = a;
-
- return outputColor;
-}
-
-void main()
-{
- vec4 originColor = texture2D(inputImageTexture, textureCoordinate);
- vec4 color = texture2D(inputImageTexture, textureCoordinate);
-
- color.a = 1.0;
-
- // tone mapping
- color.r = texture2D(inputImageTexture2, vec2(color.r, 0.0)).r;
- color.g = texture2D(inputImageTexture2, vec2(color.g, 0.0)).g;
- color.b = texture2D(inputImageTexture2, vec2(color.b, 0.0)).b;
-
- // color control
- color = NCColorControl(color, 1.0, 0.08, 1.0);
-
- // hue adjust
- color = NCHueAdjust(color, 0.0556);
-
- // color matrix
- color = NCColorMatrix(color, 1.0, 1.0, 1.0, 1.0, vec4(0.02, 0.02, 0.06, 0));
-
- color.rgb = mix(originColor.rgb, color.rgb, strength);
-
- gl_FragColor = color;
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/rise.glsl b/Live/src/main/res/raw/rise.glsl
deleted file mode 100644
index 946279c..0000000
--- a/Live/src/main/res/raw/rise.glsl
+++ /dev/null
@@ -1,33 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision mediump float;
-
-varying mediump vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D inputImageTexture2; //blowout;
-uniform sampler2D inputImageTexture3; //overlay;
-uniform sampler2D inputImageTexture4; //map
-
-uniform float strength;
-
-void main()
-{
- vec4 originColor = texture2D(inputImageTexture, textureCoordinate);
- vec4 texel = texture2D(inputImageTexture, textureCoordinate);
- vec3 bbTexel = texture2D(inputImageTexture2, textureCoordinate).rgb;
-
- texel.r = texture2D(inputImageTexture3, vec2(bbTexel.r, texel.r)).r;
- texel.g = texture2D(inputImageTexture3, vec2(bbTexel.g, texel.g)).g;
- texel.b = texture2D(inputImageTexture3, vec2(bbTexel.b, texel.b)).b;
-
- vec4 mapped;
- mapped.r = texture2D(inputImageTexture4, vec2(texel.r, .16666)).r;
- mapped.g = texture2D(inputImageTexture4, vec2(texel.g, .5)).g;
- mapped.b = texture2D(inputImageTexture4, vec2(texel.b, .83333)).b;
- mapped.a = 1.0;
-
- mapped.rgb = mix(originColor.rgb, mapped.rgb, strength);
-
- gl_FragColor = mapped;
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/romance.glsl b/Live/src/main/res/raw/romance.glsl
deleted file mode 100644
index 6ebe86e..0000000
--- a/Live/src/main/res/raw/romance.glsl
+++ /dev/null
@@ -1,50 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision highp float;
-
-varying highp vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D curve;
-
-void main()
-{
- lowp vec4 textureColor;
- lowp vec4 textureColorRes;
- lowp vec4 textureColorOri;
- vec4 grey1Color;
- vec4 layerColor;
- mediump float satVal = 115.0 / 100.0;
-
- float xCoordinate = textureCoordinate.x;
- float yCoordinate = textureCoordinate.y;
-
- highp float redCurveValue;
- highp float greenCurveValue;
- highp float blueCurveValue;
-
- textureColor = texture2D( inputImageTexture, vec2(xCoordinate, yCoordinate));
- textureColorRes = textureColor;
- textureColorOri = textureColor;
-
- // step1. screen blending
- textureColor = 1.0 - ((1.0 - textureColorOri) * (1.0 - textureColorOri));
- textureColor = (textureColor - textureColorOri) + textureColorOri;
-
- // step2. curve
- redCurveValue = texture2D(curve, vec2(textureColor.r, 0.0)).r;
- greenCurveValue = texture2D(curve, vec2(textureColor.g, 0.0)).g;
- blueCurveValue = texture2D(curve, vec2(textureColor.b, 0.0)).b;
-
- // step3. saturation
- highp float G = (redCurveValue + greenCurveValue + blueCurveValue);
- G = G / 3.0;
-
- redCurveValue = ((1.0 - satVal) * G + satVal * redCurveValue);
- greenCurveValue = ((1.0 - satVal) * G + satVal * greenCurveValue);
- blueCurveValue = ((1.0 - satVal) * G + satVal * blueCurveValue);
-
- textureColor = vec4(redCurveValue, greenCurveValue, blueCurveValue, 1.0);
-
- gl_FragColor = vec4(textureColor.r, textureColor.g, textureColor.b, 1.0);
-}
diff --git a/Live/src/main/res/raw/sakura.glsl b/Live/src/main/res/raw/sakura.glsl
deleted file mode 100644
index d34ec22..0000000
--- a/Live/src/main/res/raw/sakura.glsl
+++ /dev/null
@@ -1,71 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision mediump float;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D curve;
-uniform float texelWidthOffset;
-uniform float texelHeightOffset;
-
-varying mediump vec2 textureCoordinate;
-
-vec4 gaussianBlur(sampler2D sampler) {
- lowp float strength = 1.;
- vec4 color = vec4(0.);
- vec2 step = vec2(0.);
-
- color += texture2D(sampler,textureCoordinate)* 0.25449 ;
-
- step.x = 1.37754 * texelWidthOffset * strength;
- step.y = 1.37754 * texelHeightOffset * strength;
- color += texture2D(sampler,textureCoordinate+step) * 0.24797;
- color += texture2D(sampler,textureCoordinate-step) * 0.24797;
-
- step.x = 3.37754 * texelWidthOffset * strength;
- step.y = 3.37754 * texelHeightOffset * strength;
- color += texture2D(sampler,textureCoordinate+step) * 0.09122;
- color += texture2D(sampler,textureCoordinate-step) * 0.09122;
-
- step.x = 5.37754 * texelWidthOffset * strength;
- step.y = 5.37754 * texelHeightOffset * strength;
- color += texture2D(sampler,textureCoordinate+step) * 0.03356;
- color += texture2D(sampler,textureCoordinate-step) * 0.03356;
-
- return color;
-}
-
-vec4 overlay(vec4 c1, vec4 c2){
- vec4 r1 = vec4(0.,0.,0.,1.);
-
- r1.r = c1.r < 0.5 ? 2.0*c1.r*c2.r : 1.0 - 2.0*(1.0-c1.r)*(1.0-c2.r);
- r1.g = c1.g < 0.5 ? 2.0*c1.g*c2.g : 1.0 - 2.0*(1.0-c1.g)*(1.0-c2.g);
- r1.b = c1.b < 0.5 ? 2.0*c1.b*c2.b : 1.0 - 2.0*(1.0-c1.b)*(1.0-c2.b);
-
- return r1;
-}
-
-vec4 level0c(vec4 color, sampler2D sampler) {
- color.r = texture2D(sampler, vec2(color.r, 0.)).r;
- color.g = texture2D(sampler, vec2(color.g, 0.)).r;
- color.b = texture2D(sampler, vec2(color.b, 0.)).r;
- return color;
-}
-
-vec4 normal(vec4 c1, vec4 c2, float alpha) {
- return (c2-c1) * alpha + c1;
-}
-
-vec4 screen(vec4 c1, vec4 c2) {
- vec4 r1 = vec4(1.) - ((vec4(1.) - c1) * (vec4(1.) - c2));
- return r1;
-}
-
-void main() {
- // naver skin
- lowp vec4 c0 = texture2D(inputImageTexture, textureCoordinate);
- lowp vec4 c1 = gaussianBlur(inputImageTexture);
- lowp vec4 c2 = overlay(c0, level0c(c1, curve));
- lowp vec4 c3 = normal(c0,c2,0.15);
-
- gl_FragColor = c3;
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/saturation.glsl b/Live/src/main/res/raw/saturation.glsl
deleted file mode 100644
index 501e2ad..0000000
--- a/Live/src/main/res/raw/saturation.glsl
+++ /dev/null
@@ -1,15 +0,0 @@
-varying highp vec2 textureCoordinate;
-
-uniform sampler2D inputImageTexture;
-uniform lowp float saturation;
-
-// Values from \"Graphics Shaders: Theory and Practice\" by Bailey and Cunningham
-const mediump vec3 luminanceWeighting = vec3(0.2125, 0.7154, 0.0721);
-
-void main() {
- lowp vec4 textureColor = texture2D(inputImageTexture, textureCoordinate);
- lowp float luminance = dot(textureColor.rgb, luminanceWeighting);
- lowp vec3 greyScaleColor = vec3(luminance);
-
- gl_FragColor = vec4(mix(greyScaleColor, textureColor.rgb, saturation), textureColor.w);
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/sharpen.glsl b/Live/src/main/res/raw/sharpen.glsl
deleted file mode 100644
index 4a5921b..0000000
--- a/Live/src/main/res/raw/sharpen.glsl
+++ /dev/null
@@ -1,22 +0,0 @@
-precision highp float;
-
-varying highp vec2 textureCoordinate;
-varying highp vec2 leftTextureCoordinate;
-varying highp vec2 rightTextureCoordinate;
-varying highp vec2 topTextureCoordinate;
-varying highp vec2 bottomTextureCoordinate;
-
-varying highp float centerMultiplier;
-varying highp float edgeMultiplier;
-
-uniform sampler2D inputImageTexture;
-
-void main() {
- mediump vec3 textureColor = texture2D(inputImageTexture, textureCoordinate).rgb;
- mediump vec3 leftTextureColor = texture2D(inputImageTexture, leftTextureCoordinate).rgb;
- mediump vec3 rightTextureColor = texture2D(inputImageTexture, rightTextureCoordinate).rgb;
- mediump vec3 topTextureColor = texture2D(inputImageTexture, topTextureCoordinate).rgb;
- mediump vec3 bottomTextureColor = texture2D(inputImageTexture, bottomTextureCoordinate).rgb;
-
- gl_FragColor = vec4((textureColor * centerMultiplier - (leftTextureColor * edgeMultiplier + rightTextureColor * edgeMultiplier + topTextureColor * edgeMultiplier + bottomTextureColor * edgeMultiplier)), texture2D(inputImageTexture, bottomTextureCoordinate).w);
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/sierra.glsl b/Live/src/main/res/raw/sierra.glsl
deleted file mode 100644
index ce30bbc..0000000
--- a/Live/src/main/res/raw/sierra.glsl
+++ /dev/null
@@ -1,32 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision mediump float;
-
-varying mediump vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D inputImageTexture2; //blowout;
-uniform sampler2D inputImageTexture3; //overlay;
-uniform sampler2D inputImageTexture4; //map
-
-uniform float strength;
-
-void main()
-{
- vec4 originColor = texture2D(inputImageTexture, textureCoordinate);
- vec4 texel = texture2D(inputImageTexture, textureCoordinate);
- vec3 bbTexel = texture2D(inputImageTexture2, textureCoordinate).rgb;
-
- texel.r = texture2D(inputImageTexture3, vec2(bbTexel.r, texel.r)).r;
- texel.g = texture2D(inputImageTexture3, vec2(bbTexel.g, texel.g)).g;
- texel.b = texture2D(inputImageTexture3, vec2(bbTexel.b, texel.b)).b;
-
- vec4 mapped;
- mapped.r = texture2D(inputImageTexture4, vec2(texel.r, .16666)).r;
- mapped.g = texture2D(inputImageTexture4, vec2(texel.g, .5)).g;
- mapped.b = texture2D(inputImageTexture4, vec2(texel.b, .83333)).b;
- mapped.a = 1.0;
-
- mapped.rgb = mix(originColor.rgb, mapped.rgb, strength);
- gl_FragColor = mapped;
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/sketch.glsl b/Live/src/main/res/raw/sketch.glsl
deleted file mode 100644
index 71cd794..0000000
--- a/Live/src/main/res/raw/sketch.glsl
+++ /dev/null
@@ -1,49 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision mediump float;
-
-varying highp vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform vec2 singleStepOffset;
-uniform float strength;
-
-const highp vec3 W = vec3(0.299,0.587,0.114);
-
-
-void main()
-{
- float threshold = 0.0;
- //pic1
- vec4 oralColor = texture2D(inputImageTexture, textureCoordinate);
-
- //pic2
- vec3 maxValue = vec3(0.,0.,0.);
-
- for(int i = -2; i<=2; i++)
- {
- for(int j = -2; j<=2; j++)
- {
- vec4 tempColor = texture2D(inputImageTexture, textureCoordinate+singleStepOffset*vec2(i,j));
- maxValue.r = max(maxValue.r,tempColor.r);
- maxValue.g = max(maxValue.g,tempColor.g);
- maxValue.b = max(maxValue.b,tempColor.b);
- threshold += dot(tempColor.rgb, W);
- }
- }
- //pic3
- float gray1 = dot(oralColor.rgb, W);
-
- //pic4
- float gray2 = dot(maxValue, W);
-
- //pic5
- float contour = gray1 / gray2;
-
- threshold = threshold / 25.;
- float alpha = max(1.0,gray1>threshold?1.0:(gray1/threshold));
-
- float result = contour * alpha + (1.0-alpha)*gray1;
-
- gl_FragColor = vec4(vec3(result,result,result), oralColor.w);
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/skinwhiten.glsl b/Live/src/main/res/raw/skinwhiten.glsl
deleted file mode 100644
index d4a2aac..0000000
--- a/Live/src/main/res/raw/skinwhiten.glsl
+++ /dev/null
@@ -1,98 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision highp float;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D curve;
-
-uniform float texelWidthOffset;
-uniform float texelHeightOffset;
-
-varying mediump vec2 textureCoordinate;
-
-const mediump vec3 luminanceWeighting = vec3(0.2125, 0.7154, 0.0721);
-
-vec4 gaussianBlur(sampler2D sampler) {
- lowp float strength = 1.;
- vec4 color = vec4(0.);
- vec2 step = vec2(0.);
-
- color += texture2D(sampler,textureCoordinate)* 0.25449 ;
-
- step.x = 1.37754 * texelWidthOffset * strength;
- step.y = 1.37754 * texelHeightOffset * strength;
- color += texture2D(sampler,textureCoordinate+step) * 0.24797;
- color += texture2D(sampler,textureCoordinate-step) * 0.24797;
-
- step.x = 3.37754 * texelWidthOffset * strength;
- step.y = 3.37754 * texelHeightOffset * strength;
- color += texture2D(sampler,textureCoordinate+step) * 0.09122;
- color += texture2D(sampler,textureCoordinate-step) * 0.09122;
-
- step.x = 5.37754 * texelWidthOffset * strength;
- step.y = 5.37754 * texelHeightOffset * strength;
-
- color += texture2D(sampler,textureCoordinate+step) * 0.03356;
- color += texture2D(sampler,textureCoordinate-step) * 0.03356;
-
- return color;
-}
-
-void main() {
- vec4 blurColor;
- lowp vec4 textureColor;
- lowp float strength = -1.0 / 510.0;
-
- float xCoordinate = textureCoordinate.x;
- float yCoordinate = textureCoordinate.y;
-
- lowp float satura = 0.7;
- // naver skin
- textureColor = texture2D(inputImageTexture, textureCoordinate);
- blurColor = gaussianBlur(inputImageTexture);
-
- //saturation
- lowp float luminance = dot(blurColor.rgb, luminanceWeighting);
- lowp vec3 greyScaleColor = vec3(luminance);
-
- blurColor = vec4(mix(greyScaleColor, blurColor.rgb, satura), blurColor.w);
-
- lowp float redCurveValue = texture2D(curve, vec2(textureColor.r, 0.0)).r;
- lowp float greenCurveValue = texture2D(curve, vec2(textureColor.g, 0.0)).r;
- lowp float blueCurveValue = texture2D(curve, vec2(textureColor.b, 0.0)).r;
-
- redCurveValue = min(1.0, redCurveValue + strength);
- greenCurveValue = min(1.0, greenCurveValue + strength);
- blueCurveValue = min(1.0, blueCurveValue + strength);
-
- mediump vec4 overlay = blurColor;
-
- mediump vec4 base = vec4(redCurveValue, greenCurveValue, blueCurveValue, 1.0);
- //gl_FragColor = overlay;
-
- // step4 overlay blending
- mediump float ra;
- if (base.r < 0.5) {
- ra = overlay.r * base.r * 2.0;
- } else {
- ra = 1.0 - ((1.0 - base.r) * (1.0 - overlay.r) * 2.0);
- }
-
- mediump float ga;
- if (base.g < 0.5) {
- ga = overlay.g * base.g * 2.0;
- } else {
- ga = 1.0 - ((1.0 - base.g) * (1.0 - overlay.g) * 2.0);
- }
-
- mediump float ba;
- if (base.b < 0.5) {
- ba = overlay.b * base.b * 2.0;
- } else {
- ba = 1.0 - ((1.0 - base.b) * (1.0 - overlay.b) * 2.0);
- }
-
- textureColor = vec4(ra, ga, ba, 1.0);
-
- gl_FragColor = vec4(textureColor.r, textureColor.g, textureColor.b, 1.0);
-}
diff --git a/Live/src/main/res/raw/suger_tablets.glsl b/Live/src/main/res/raw/suger_tablets.glsl
deleted file mode 100644
index 1b73425..0000000
--- a/Live/src/main/res/raw/suger_tablets.glsl
+++ /dev/null
@@ -1,41 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-varying mediump vec2 textureCoordinate;
-varying mediump vec2 textureCoordinate2; // TODO: This is not used
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D inputImageTexture2; // lookup texture
-uniform mediump float strength;
-
-void main()
-{
- mediump vec4 originColor = texture2D(inputImageTexture, textureCoordinate);
- mediump vec4 textureColor = texture2D(inputImageTexture, textureCoordinate);
-
- mediump float blueColor = textureColor.b * 63.0;
-
- mediump vec2 quad1;
- quad1.y = floor(floor(blueColor) / 8.0);
- quad1.x = floor(blueColor) - (quad1.y * 8.0);
-
- mediump vec2 quad2;
- quad2.y = floor(ceil(blueColor) / 8.0);
- quad2.x = ceil(blueColor) - (quad2.y * 8.0);
-
- mediump vec2 texPos1;
- texPos1.x = (quad1.x * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.r);
- texPos1.y = (quad1.y * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.g);
-
- mediump vec2 texPos2;
- texPos2.x = (quad2.x * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.r);
- texPos2.y = (quad2.y * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.g);
-
- mediump vec4 newColor1 = texture2D(inputImageTexture2, texPos1);
- mediump vec4 newColor2 = texture2D(inputImageTexture2, texPos2);
-
- mediump vec4 newColor = mix(newColor1, newColor2, fract(blueColor));
-
- newColor.rgb = mix(originColor.rgb, newColor.rgb, strength);
-
- gl_FragColor = vec4(newColor.rgb, textureColor.w);
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/sunrise.glsl b/Live/src/main/res/raw/sunrise.glsl
deleted file mode 100644
index c09952d..0000000
--- a/Live/src/main/res/raw/sunrise.glsl
+++ /dev/null
@@ -1,150 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision highp float;
-
-varying highp vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D curve;
-
-uniform sampler2D grey1Frame;
-uniform sampler2D grey2Frame;
-uniform sampler2D grey3Frame;
-
-void main()
-{
- float GreyVal;
- lowp vec4 textureColor;
- lowp vec4 textureColorOri;
- float xCoordinate = textureCoordinate.x;
- float yCoordinate = textureCoordinate.y;
-
- highp float redCurveValue;
- highp float greenCurveValue;
- highp float blueCurveValue;
-
- vec4 grey1Color;
- vec4 grey2Color;
- vec4 grey3Color;
-
- textureColor = texture2D( inputImageTexture, vec2(xCoordinate, yCoordinate));
-
- grey1Color = texture2D(grey1Frame, vec2(xCoordinate, yCoordinate));
- grey2Color = texture2D(grey2Frame, vec2(xCoordinate, yCoordinate));
- grey3Color = texture2D(grey3Frame, vec2(xCoordinate, yCoordinate));
-
- mediump vec4 overlay = vec4(0, 0, 0, 1.0);
- mediump vec4 base = textureColor;
-
- // overlay blending
- mediump float ra;
- if (base.r < 0.5)
- {
- ra = overlay.r * base.r * 2.0;
- }
- else
- {
- ra = 1.0 - ((1.0 - base.r) * (1.0 - overlay.r) * 2.0);
- }
-
- mediump float ga;
- if (base.g < 0.5)
- {
- ga = overlay.g * base.g * 2.0;
- }
- else
- {
- ga = 1.0 - ((1.0 - base.g) * (1.0 - overlay.g) * 2.0);
- }
-
- mediump float ba;
- if (base.b < 0.5)
- {
- ba = overlay.b * base.b * 2.0;
- }
- else
- {
- ba = 1.0 - ((1.0 - base.b) * (1.0 - overlay.b) * 2.0);
- }
-
- textureColor = vec4(ra, ga, ba, 1.0);
- base = (textureColor - base) * (grey1Color.r*0.1019) + base;
-
-
- // step2 60% opacity ExclusionBlending
- textureColor = vec4(base.r, base.g, base.b, 1.0);
- mediump vec4 textureColor2 = vec4(0.098, 0.0, 0.1843, 1.0);
- textureColor2 = textureColor + textureColor2 - (2.0 * textureColor2 * textureColor);
-
- textureColor = (textureColor2 - textureColor) * 0.6 + textureColor;
-
- // step3 normal blending with original
- redCurveValue = texture2D(curve, vec2(textureColor.r, 0.0)).r;
- greenCurveValue = texture2D(curve, vec2(textureColor.g, 0.0)).g;
- blueCurveValue = texture2D(curve, vec2(textureColor.b, 0.0)).b;
-
- textureColorOri = vec4(redCurveValue, greenCurveValue, blueCurveValue, 1.0);
- textureColor = (textureColorOri - textureColor) * grey2Color.r + textureColor;
-
- // step4 normal blending with original
- redCurveValue = texture2D(curve, vec2(textureColor.r, 1.0)).r;
- greenCurveValue = texture2D(curve, vec2(textureColor.g, 1.0)).g;
- blueCurveValue = texture2D(curve, vec2(textureColor.b, 1.0)).b;
-
- textureColorOri = vec4(redCurveValue, greenCurveValue, blueCurveValue, 1.0);
- textureColor = (textureColorOri - textureColor) * (grey3Color.r) * 1.0 + textureColor;
-
-
- overlay = vec4(0.6117, 0.6117, 0.6117, 1.0);
- base = textureColor;
- // overlay blending
- if (base.r < 0.5)
- {
- ra = overlay.r * base.r * 2.0;
- }
- else
- {
- ra = 1.0 - ((1.0 - base.r) * (1.0 - overlay.r) * 2.0);
- }
-
- if (base.g < 0.5)
- {
- ga = overlay.g * base.g * 2.0;
- }
- else
- {
- ga = 1.0 - ((1.0 - base.g) * (1.0 - overlay.g) * 2.0);
- }
-
- if (base.b < 0.5)
- {
- ba = overlay.b * base.b * 2.0;
- }
- else
- {
- ba = 1.0 - ((1.0 - base.b) * (1.0 - overlay.b) * 2.0);
- }
-
- textureColor = vec4(ra, ga, ba, 1.0);
- base = (textureColor - base) + base;
-
- // step5-2 30% opacity ExclusionBlending
- textureColor = vec4(base.r, base.g, base.b, 1.0);
- textureColor2 = vec4(0.113725, 0.0039, 0.0, 1.0);
- textureColor2 = textureColor + textureColor2 - (2.0 * textureColor2 * textureColor);
-
- base = (textureColor2 - textureColor) * 0.3 + textureColor;
- redCurveValue = texture2D(curve, vec2(base.r, 1.0)).a;
- greenCurveValue = texture2D(curve, vec2(base.g, 1.0)).a;
- blueCurveValue = texture2D(curve, vec2(base.b, 1.0)).a;
-
- // step6 screen with 60%
- base = vec4(redCurveValue, greenCurveValue, blueCurveValue, 1.0);
- overlay = vec4(1.0, 1.0, 1.0, 1.0);
-
- // screen blending
- textureColor = 1.0 - ((1.0 - base) * (1.0 - overlay));
- textureColor = (textureColor - base) * 0.05098 + base;
-
- gl_FragColor = vec4(textureColor.r, textureColor.g, textureColor.b, 1.0);
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/sunset.glsl b/Live/src/main/res/raw/sunset.glsl
deleted file mode 100644
index e44363b..0000000
--- a/Live/src/main/res/raw/sunset.glsl
+++ /dev/null
@@ -1,108 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision highp float;
-
-varying highp vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D curve;
-
-uniform sampler2D grey1Frame;
-uniform sampler2D grey2Frame;
-
-void main()
-{
- float GreyVal;
- lowp vec4 textureColor;
- lowp vec4 textureColorOri;
- float xCoordinate = textureCoordinate.x;
- float yCoordinate = textureCoordinate.y;
-
- highp float redCurveValue;
- highp float greenCurveValue;
- highp float blueCurveValue;
-
- vec4 grey1Color;
- vec4 grey2Color;
-
- textureColor = texture2D( inputImageTexture, vec2(xCoordinate, yCoordinate));
- grey1Color = texture2D(grey2Frame, vec2(xCoordinate, yCoordinate));
- grey2Color = texture2D(grey1Frame, vec2(xCoordinate, yCoordinate));
-
- // step1 normal blending with original
- redCurveValue = texture2D(curve, vec2(textureColor.r, 0.0)).r;
- greenCurveValue = texture2D(curve, vec2(textureColor.g, 0.0)).g;
- blueCurveValue = texture2D(curve, vec2(textureColor.b, 0.0)).b;
-
- textureColorOri = vec4(redCurveValue, greenCurveValue, blueCurveValue, 1.0);
- textureColor = (textureColorOri - textureColor) * grey1Color.r + textureColor;
-
- redCurveValue = texture2D(curve, vec2(textureColor.r, 0.0)).a;
- greenCurveValue = texture2D(curve, vec2(textureColor.g, 0.0)).a;
- blueCurveValue = texture2D(curve, vec2(textureColor.b, 0.0)).a;
-
- //textureColor = vec4(redCurveValue, greenCurveValue, blueCurveValue, 1.0);
-
- // step3 60% opacity ExclusionBlending
- textureColor = vec4(redCurveValue, greenCurveValue, blueCurveValue, 1.0);
- mediump vec4 textureColor2 = vec4(0.08627, 0.03529, 0.15294, 1.0);
- textureColor2 = textureColor + textureColor2 - (2.0 * textureColor2 * textureColor);
-
- textureColor = (textureColor2 - textureColor) * 0.6784 + textureColor;
-
-
- mediump vec4 overlay = vec4(0.6431, 0.5882, 0.5803, 1.0);
- mediump vec4 base = textureColor;
-
- // overlay blending
- mediump float ra;
- if (base.r < 0.5) {
- ra = overlay.r * base.r * 2.0;
- } else {
- ra = 1.0 - ((1.0 - base.r) * (1.0 - overlay.r) * 2.0);
- }
-
- mediump float ga;
- if (base.g < 0.5) {
- ga = overlay.g * base.g * 2.0;
- } else {
- ga = 1.0 - ((1.0 - base.g) * (1.0 - overlay.g) * 2.0);
- }
-
- mediump float ba;
- if (base.b < 0.5) {
- ba = overlay.b * base.b * 2.0;
- } else {
- ba = 1.0 - ((1.0 - base.b) * (1.0 - overlay.b) * 2.0);
- }
-
- textureColor = vec4(ra, ga, ba, 1.0);
- base = (textureColor - base) + base;
-
- // again overlay blending
- overlay = vec4(0.0, 0.0, 0.0, 1.0);
-
- // overlay blending
- if (base.r < 0.5) {
- ra = overlay.r * base.r * 2.0;
- } else {
- ra = 1.0 - ((1.0 - base.r) * (1.0 - overlay.r) * 2.0);
- }
-
- if (base.g < 0.5) {
- ga = overlay.g * base.g * 2.0;
- } else {
- ga = 1.0 - ((1.0 - base.g) * (1.0 - overlay.g) * 2.0);
- }
-
- if (base.b < 0.5) {
- ba = overlay.b * base.b * 2.0;
- } else {
- ba = 1.0 - ((1.0 - base.b) * (1.0 - overlay.b) * 2.0);
- }
-
- textureColor = vec4(ra, ga, ba, 1.0);
- textureColor = (textureColor - base) * (grey2Color * 0.549) + base;
-
- gl_FragColor = vec4(textureColor.r, textureColor.g, textureColor.b, 1.0);
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/sutro.glsl b/Live/src/main/res/raw/sutro.glsl
deleted file mode 100644
index 832585d..0000000
--- a/Live/src/main/res/raw/sutro.glsl
+++ /dev/null
@@ -1,48 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision mediump float;
-
-varying mediump vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D inputImageTexture2; //sutroMap;
-uniform sampler2D inputImageTexture3; //sutroMetal;
-uniform sampler2D inputImageTexture4; //softLight
-uniform sampler2D inputImageTexture5; //sutroEdgeburn
-uniform sampler2D inputImageTexture6; //sutroCurves
-
-uniform float strength;
-
-void main()
-{
- vec4 originColor = texture2D(inputImageTexture, textureCoordinate);
- vec3 texel = texture2D(inputImageTexture, textureCoordinate).rgb;
-
- vec2 tc = (2.0 * textureCoordinate) - 1.0;
- float d = dot(tc, tc);
- vec2 lookup = vec2(d, texel.r);
- texel.r = texture2D(inputImageTexture2, lookup).r;
- lookup.y = texel.g;
- texel.g = texture2D(inputImageTexture2, lookup).g;
- lookup.y = texel.b;
- texel.b = texture2D(inputImageTexture2, lookup).b;
-
- vec3 rgbPrime = vec3(0.1019, 0.0, 0.0);
- float m = dot(vec3(.3, .59, .11), texel.rgb) - 0.03058;
- texel = mix(texel, rgbPrime + m, 0.32);
-
- vec3 metal = texture2D(inputImageTexture3, textureCoordinate).rgb;
- texel.r = texture2D(inputImageTexture4, vec2(metal.r, texel.r)).r;
- texel.g = texture2D(inputImageTexture4, vec2(metal.g, texel.g)).g;
- texel.b = texture2D(inputImageTexture4, vec2(metal.b, texel.b)).b;
-
- texel = texel * texture2D(inputImageTexture5, textureCoordinate).rgb;
-
- texel.r = texture2D(inputImageTexture6, vec2(texel.r, .16666)).r;
- texel.g = texture2D(inputImageTexture6, vec2(texel.g, .5)).g;
- texel.b = texture2D(inputImageTexture6, vec2(texel.b, .83333)).b;
-
- texel.rgb = mix(originColor.rgb, texel.rgb, strength);
-
- gl_FragColor = vec4(texel, 1.0);
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/sweets.glsl b/Live/src/main/res/raw/sweets.glsl
deleted file mode 100644
index bced1c3..0000000
--- a/Live/src/main/res/raw/sweets.glsl
+++ /dev/null
@@ -1,156 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision mediump float;
-
-uniform lowp samplerExternalOES inputImageTexture;
-uniform lowp sampler2D curve;
-uniform lowp sampler2D samplerMask;
-uniform lowp int lowPerformance;
-
-uniform float texelWidthOffset ;
-uniform float texelHeightOffset;
-
-varying mediump vec2 textureCoordinate;
-
-vec4 sharpen(sampler2D sampler)
-{
- vec4 color = texture2D(sampler, textureCoordinate) * 2.;
-
- color -= texture2D(sampler, textureCoordinate-vec2(texelWidthOffset, 0. )) * 0.25;
- color -= texture2D(sampler, textureCoordinate+vec2(texelWidthOffset, 0. )) * 0.25;
- color -= texture2D(sampler, textureCoordinate-vec2(0., texelHeightOffset)) * 0.25;
- color -= texture2D(sampler, textureCoordinate+vec2(0., texelHeightOffset)) * 0.25;
-
- return color;
-}
-
-vec4 gaussianBlur(sampler2D sampler)
-{
- lowp float strength = 1.;
-
- vec4 color = vec4(0.);
- vec2 step = vec2(0.);
-
- color += texture2D(sampler,textureCoordinate)* 0.0443 ;
-
- step.x = 1.49583 * texelWidthOffset * strength;
- step.y = 1.49583 * texelHeightOffset * strength;
- color += texture2D(sampler,textureCoordinate+vec2(step.x, 0.)) * 0.04321;
- color += texture2D(sampler,textureCoordinate-vec2(step.x, 0.)) * 0.04321;
- color += texture2D(sampler,textureCoordinate+vec2(0., step.y)) * 0.04321;
- color += texture2D(sampler,textureCoordinate-vec2(0., step.y)) * 0.04321;
-
- step.x = 2.4719250988753685 * texelWidthOffset * strength;
- step.y = 2.4719250988753685 * texelHeightOffset * strength;
- color += texture2D(sampler,textureCoordinate+step) * 0.041795;
- color += texture2D(sampler,textureCoordinate-step) * 0.041795;
- color += texture2D(sampler,textureCoordinate+vec2(-step.x, step.y)) * 0.041795;
- color += texture2D(sampler,textureCoordinate+vec2( step.x,-step.y)) * 0.041795;
-
- step.x = 5.49583 * texelWidthOffset * strength;
- step.y = 5.49583 * texelHeightOffset * strength;
- color += texture2D(sampler,textureCoordinate+vec2(step.x, 0.)) * 0.040425;
- color += texture2D(sampler,textureCoordinate-vec2(step.x, 0.)) * 0.040425;
- color += texture2D(sampler,textureCoordinate+vec2(0., step.y)) * 0.040425;
- color += texture2D(sampler,textureCoordinate-vec2(0., step.y)) * 0.040425;
-
- step.x = 5.300352223621558 * texelWidthOffset * strength;
- step.y = 5.300352223621558 * texelHeightOffset * strength;
- color += texture2D(sampler,textureCoordinate+step) * 0.0391;
- color += texture2D(sampler,textureCoordinate-step) * 0.0391;
- color += texture2D(sampler,textureCoordinate+vec2(-step.x, step.y)) * 0.0391;
- color += texture2D(sampler,textureCoordinate+vec2( step.x,-step.y)) * 0.0391;
-
- step.x = 9.49583 * texelWidthOffset * strength;
- step.y = 9.49583 * texelHeightOffset * strength;
- color += texture2D(sampler,textureCoordinate+vec2(step.x, 0.)) * 0.037815;
- color += texture2D(sampler,textureCoordinate-vec2(step.x, 0.)) * 0.037815;
- color += texture2D(sampler,textureCoordinate+vec2(0., step.y)) * 0.037815;
- color += texture2D(sampler,textureCoordinate-vec2(0., step.y)) * 0.037815;
-
- step.x = 8.128779348367749 * texelWidthOffset * strength;
- step.y = 8.128779348367749 * texelHeightOffset * strength;
- color += texture2D(sampler,textureCoordinate+step) * 0.03658;
- color += texture2D(sampler,textureCoordinate-step) * 0.03658;
- color += texture2D(sampler,textureCoordinate+vec2(-step.x, step.y)) * 0.03658;
- color += texture2D(sampler,textureCoordinate+vec2( step.x,-step.y)) * 0.03658;
-
- return color;
-}
-
-vec4 level(vec4 color, sampler2D sampler)
-{
- color.r = texture2D(sampler, vec2(color.r, 0.)).r;
- color.g = texture2D(sampler, vec2(color.g, 0.)).g;
- color.b = texture2D(sampler, vec2(color.b, 0.)).b;
-
- return color;
-}
-
-vec4 normal(vec4 c1, vec4 c2, float alpha)
-{
- return (c2-c1) * alpha + c1;
-}
-
-vec4 lighten(vec4 c1, vec4 c2)
-{
- return max(c1,c2);
-}
-
-vec4 overlay(vec4 c1, vec4 c2)
-{
- vec4 r1 = vec4(0.,0.,0.,1.);
- r1.r = c1.r < 0.5 ? 2.0*c1.r*c2.r : 1.0 - 2.0*(1.0-c1.r)*(1.0-c2.r);
- r1.g = c1.g < 0.5 ? 2.0*c1.g*c2.g : 1.0 - 2.0*(1.0-c1.g)*(1.0-c2.g);
- r1.b = c1.b < 0.5 ? 2.0*c1.b*c2.b : 1.0 - 2.0*(1.0-c1.b)*(1.0-c2.b);
-
- return r1;
-}
-
-vec3 lerp (vec3 x, vec3 y, float s)
-{
- return x+s*(y-x);
-}
-
-vec4 adjust (vec4 color, float brightness, float contrast, float saturation)
-{
- vec3 averageLuminance = vec3(0.5);
- vec3 brightedColor = color.rgb * (brightness+1.);
- vec3 intensity = vec3(dot(brightedColor, vec3(0.299, 0.587, 0.114)));
- vec3 saturatedColor = lerp(intensity, brightedColor, saturation+1.);
- vec3 contrastedColor = lerp(averageLuminance, saturatedColor, contrast+1.);
-
- return vec4(contrastedColor,1.);
-}
-
-vec4 vibrance(vec4 color, float strength)
-{
- float luminance = (color.r+color.g+color.b)/3.;
- //dot(color.rgb, vec3(0.299,0.587,0.114));
- float maximum = max(color.r, max(color.g, color.b));
- float amount = (maximum-luminance)*-strength;
-
- return vec4(color.rgb * (1.-amount) + maximum*amount, 1.);
-}
-
-void main()
-{
- vec4 c1;
- vec4 c2;
- if (lowPerformance == 1)
- {
- c1 = texture2D(inputImageTexture, textureCoordinate);
- c2 = texture2D(inputImageTexture, textureCoordinate);
- }
- else
- {
- c1 = sharpen(inputImageTexture);
- c2 = normal(c1, gaussianBlur(inputImageTexture), 0.8); // radius = 13. sharpen?? gaussian blur? ???? ??, ?? blending?? ??
- }
- vec4 c3 = normal(c1, lighten(c1,c2), 0.6); // lighten (0.6)
- c3 = adjust(c3, 0.12, 0., 0.05); // brightness = 12, saturation = 0.5;
- c3 = vibrance(level(c3, curve), 0.5); // vibrance = 0.5;
- c3 = normal(c3, overlay(c3, vec4(0.)), 1.-texture2D(samplerMask, textureCoordinate).r); // vignetting
-
- gl_FragColor = c3;
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/tender.glsl b/Live/src/main/res/raw/tender.glsl
deleted file mode 100644
index 0247379..0000000
--- a/Live/src/main/res/raw/tender.glsl
+++ /dev/null
@@ -1,92 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision highp float;
-
-varying highp vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D curve;
-uniform sampler2D grey1Frame;
-
-void main()
-{
- mediump vec4 textureColor;
- mediump vec4 textureColorRes;
- vec4 grey1Color;
- mediump float satVal = 65.0 / 100.0;
- mediump float mask1R = 29.0 / 255.0;
- mediump float mask1G = 43.0 / 255.0;
- mediump float mask1B = 95.0 / 255.0;
-
- highp float xCoordinate = textureCoordinate.x;
- highp float yCoordinate = textureCoordinate.y;
-
- highp float redCurveValue;
- highp float greenCurveValue;
- highp float blueCurveValue;
-
- textureColor = texture2D( inputImageTexture, vec2(xCoordinate, yCoordinate));
- textureColorRes = textureColor;
-
- grey1Color = texture2D(grey1Frame, vec2(xCoordinate, yCoordinate));
-
- // step1. saturation
- highp float G = (textureColor.r + textureColor.g + textureColor.b);
- G = G / 3.0;
-
- redCurveValue = ((1.0 - satVal) * G + satVal * textureColor.r);
- greenCurveValue = ((1.0 - satVal) * G + satVal * textureColor.g);
- blueCurveValue = ((1.0 - satVal) * G + satVal * textureColor.b);
-
- // step2 curve
- redCurveValue = texture2D(curve, vec2(textureColor.r, 0.0)).r;
- greenCurveValue = texture2D(curve, vec2(textureColor.g, 0.0)).g;
- blueCurveValue = texture2D(curve, vec2(textureColor.b, 0.0)).b;
-
- // step3 30% opacity ExclusionBlending
- textureColor = vec4(redCurveValue, greenCurveValue, blueCurveValue, 1.0);
- mediump vec4 textureColor2 = vec4(mask1R, mask1G, mask1B, 1.0);
- textureColor2 = textureColor + textureColor2 - (2.0 * textureColor2 * textureColor);
-
- textureColor = (textureColor2 - textureColor) * 0.3 + textureColor;
-
- mediump vec4 overlay = vec4(0, 0, 0, 1.0);
- mediump vec4 base = vec4(textureColor.r, textureColor.g, textureColor.b, 1.0);
-
- // step4 overlay blending
- mediump float ra;
- if (base.r < 0.5)
- {
- ra = overlay.r * base.r * 2.0;
- }
- else
- {
- ra = 1.0 - ((1.0 - base.r) * (1.0 - overlay.r) * 2.0);
- }
-
- mediump float ga;
- if (base.g < 0.5)
- {
- ga = overlay.g * base.g * 2.0;
- }
- else
- {
- ga = 1.0 - ((1.0 - base.g) * (1.0 - overlay.g) * 2.0);
- }
-
- mediump float ba;
- if (base.b < 0.5)
- {
- ba = overlay.b * base.b * 2.0;
- }
- else
- {
- ba = 1.0 - ((1.0 - base.b) * (1.0 - overlay.b) * 2.0);
- }
-
- textureColor = vec4(ra, ga, ba, 1.0);
- base = (textureColor - base) * (grey1Color.r/2.0) + base;
-
- gl_FragColor = vec4(base.r, base.g, base.b, 1.0);
-}
-
\ No newline at end of file
diff --git a/Live/src/main/res/raw/toaster2_filter_shader.glsl b/Live/src/main/res/raw/toaster2_filter_shader.glsl
deleted file mode 100644
index a16f2a9..0000000
--- a/Live/src/main/res/raw/toaster2_filter_shader.glsl
+++ /dev/null
@@ -1,68 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision mediump float;
-
-varying mediump vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D inputImageTexture2; //toaster_metal
-uniform sampler2D inputImageTexture3; //toaster_soft_light
-uniform sampler2D inputImageTexture4; //toaster_curves
-uniform sampler2D inputImageTexture5; //toaster_overlay_map_warm
-uniform sampler2D inputImageTexture6; //toaster_color_shift
-
-void main()
-{
- mediump vec3 texel;
- mediump vec2 lookup;
- vec2 blue;
- vec2 green;
- vec2 red;
- mediump vec4 tmpvar_1;
- tmpvar_1 = texture2D (inputImageTexture, textureCoordinate);
- texel = tmpvar_1.xyz;
- mediump vec4 tmpvar_2;
- tmpvar_2 = texture2D (inputImageTexture2, textureCoordinate);
- mediump vec2 tmpvar_3;
- tmpvar_3.x = tmpvar_2.x;
- tmpvar_3.y = tmpvar_1.x;
- texel.x = texture2D (inputImageTexture3, tmpvar_3).x;
- mediump vec2 tmpvar_4;
- tmpvar_4.x = tmpvar_2.y;
- tmpvar_4.y = tmpvar_1.y;
- texel.y = texture2D (inputImageTexture3, tmpvar_4).y;
- mediump vec2 tmpvar_5;
- tmpvar_5.x = tmpvar_2.z;
- tmpvar_5.y = tmpvar_1.z;
- texel.z = texture2D (inputImageTexture3, tmpvar_5).z;
- red.x = texel.x;
- red.y = 0.16666;
- green.x = texel.y;
- green.y = 0.5;
- blue.x = texel.z;
- blue.y = 0.833333;
- texel.x = texture2D (inputImageTexture4, red).x;
- texel.y = texture2D (inputImageTexture4, green).y;
- texel.z = texture2D (inputImageTexture4, blue).z;
- mediump vec2 tmpvar_6;
- tmpvar_6 = ((2.0 * textureCoordinate) - 1.0);
- mediump vec2 tmpvar_7;
- tmpvar_7.x = dot (tmpvar_6, tmpvar_6);
- tmpvar_7.y = texel.x;
- lookup = tmpvar_7;
- texel.x = texture2D (inputImageTexture5, tmpvar_7).x;
- lookup.y = texel.y;
- texel.y = texture2D (inputImageTexture5, lookup).y;
- lookup.y = texel.z;
- texel.z = texture2D (inputImageTexture5, lookup).z;
- red.x = texel.x;
- green.x = texel.y;
- blue.x = texel.z;
- texel.x = texture2D (inputImageTexture6, red).x;
- texel.y = texture2D (inputImageTexture6, green).y;
- texel.z = texture2D (inputImageTexture6, blue).z;
- mediump vec4 tmpvar_8;
- tmpvar_8.w = 1.0;
- tmpvar_8.xyz = texel;
- gl_FragColor = tmpvar_8;
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/valencia.glsl b/Live/src/main/res/raw/valencia.glsl
deleted file mode 100644
index de7e429..0000000
--- a/Live/src/main/res/raw/valencia.glsl
+++ /dev/null
@@ -1,46 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision mediump float;
-
-varying mediump vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D inputImageTexture2; //map
-uniform sampler2D inputImageTexture3; //gradMap
-
-mat3 saturateMatrix = mat3(
- 1.1402,
- -0.0598,
- -0.061,
- -0.1174,
- 1.0826,
- -0.1186,
- -0.0228,
- -0.0228,
- 1.1772);
-
-vec3 lumaCoeffs = vec3(.3, .59, .11);
-
-uniform float strength;
-
-void main()
-{
- vec4 originColor = texture2D(inputImageTexture, textureCoordinate);
- vec3 texel = texture2D(inputImageTexture, textureCoordinate).rgb;
-
- texel = vec3(
- texture2D(inputImageTexture2, vec2(texel.r, .1666666)).r,
- texture2D(inputImageTexture2, vec2(texel.g, .5)).g,
- texture2D(inputImageTexture2, vec2(texel.b, .8333333)).b
- );
-
- texel = saturateMatrix * texel;
- float luma = dot(lumaCoeffs, texel);
- texel = vec3(
- texture2D(inputImageTexture3, vec2(luma, texel.r)).r,
- texture2D(inputImageTexture3, vec2(luma, texel.g)).g,
- texture2D(inputImageTexture3, vec2(luma, texel.b)).b);
-
- texel.rgb = mix(originColor.rgb, texel.rgb, strength);
- gl_FragColor = vec4(texel, 1.0);
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/vertex.glsl b/Live/src/main/res/raw/vertex.glsl
deleted file mode 100644
index da85635..0000000
--- a/Live/src/main/res/raw/vertex.glsl
+++ /dev/null
@@ -1,11 +0,0 @@
-attribute vec4 position;
-attribute vec4 inputTextureCoordinate;
-
-varying vec2 textureCoordinate;
-
-uniform mat4 textureTransform;
-
-void main() {
- textureCoordinate = (textureTransform * inputTextureCoordinate).xy;
- gl_Position = position;
-}
diff --git a/Live/src/main/res/raw/vertex_sharpen.glsl b/Live/src/main/res/raw/vertex_sharpen.glsl
deleted file mode 100644
index faec16e..0000000
--- a/Live/src/main/res/raw/vertex_sharpen.glsl
+++ /dev/null
@@ -1,31 +0,0 @@
-attribute vec4 position;
-attribute vec4 inputTextureCoordinate;
-
-uniform float imageWidthFactor;
-uniform float imageHeightFactor;
-uniform float sharpness;
-
-varying vec2 textureCoordinate;
-varying vec2 leftTextureCoordinate;
-varying vec2 rightTextureCoordinate;
-varying vec2 topTextureCoordinate;
-varying vec2 bottomTextureCoordinate;
-
-varying float centerMultiplier;
-varying float edgeMultiplier;
-
-void main() {
- gl_Position = position;
-
- mediump vec2 widthStep = vec2(imageWidthFactor, 0.0);
- mediump vec2 heightStep = vec2(0.0, imageHeightFactor);
-
- textureCoordinate = inputTextureCoordinate.xy;
- leftTextureCoordinate = inputTextureCoordinate.xy - widthStep;
- rightTextureCoordinate = inputTextureCoordinate.xy + widthStep;
- topTextureCoordinate = inputTextureCoordinate.xy + heightStep;
- bottomTextureCoordinate = inputTextureCoordinate.xy - heightStep;
-
- centerMultiplier = 1.0 + 4.0 * sharpness;
- edgeMultiplier = sharpness;
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/walden.glsl b/Live/src/main/res/raw/walden.glsl
deleted file mode 100644
index 19c9b5e..0000000
--- a/Live/src/main/res/raw/walden.glsl
+++ /dev/null
@@ -1,35 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision mediump float;
-
-varying mediump vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D inputImageTexture2; //map
-uniform sampler2D inputImageTexture3; //vigMap
-
-uniform float strength;
-
-void main()
-{
- vec4 originColor = texture2D(inputImageTexture, textureCoordinate);
- vec3 texel = texture2D(inputImageTexture, textureCoordinate).rgb;
-
- texel = vec3(
- texture2D(inputImageTexture2, vec2(texel.r, .16666)).r,
- texture2D(inputImageTexture2, vec2(texel.g, .5)).g,
- texture2D(inputImageTexture2, vec2(texel.b, .83333)).b);
-
- vec2 tc = (2.0 * textureCoordinate) - 1.0;
- float d = dot(tc, tc);
- vec2 lookup = vec2(d, texel.r);
- texel.r = texture2D(inputImageTexture3, lookup).r;
- lookup.y = texel.g;
- texel.g = texture2D(inputImageTexture3, lookup).g;
- lookup.y = texel.b;
- texel.b = texture2D(inputImageTexture3, lookup).b;
-
- texel.rgb = mix(originColor.rgb, texel.rgb, strength);
-
- gl_FragColor = vec4(texel, 1.0);
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/warm.glsl b/Live/src/main/res/raw/warm.glsl
deleted file mode 100644
index d2f4048..0000000
--- a/Live/src/main/res/raw/warm.glsl
+++ /dev/null
@@ -1,58 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision highp float;
-
-varying highp vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D curve;
-uniform sampler2D greyFrame;
-uniform sampler2D layerImage;
-
-void main()
-{
- lowp vec4 textureColor;
- vec4 greyColor;
- vec4 layerColor;
-
- float xCoordinate = textureCoordinate.x;
- float yCoordinate = textureCoordinate.y;
-
- highp float redCurveValue;
- highp float greenCurveValue;
- highp float blueCurveValue;
-
- textureColor = texture2D( inputImageTexture, vec2(xCoordinate, yCoordinate));
-
- greyColor = texture2D(greyFrame, vec2(xCoordinate, yCoordinate));
- layerColor = texture2D(layerImage, vec2(xCoordinate, yCoordinate));
-
- // step1 curve
- redCurveValue = texture2D(curve, vec2(textureColor.r, 0.0)).r;
- greenCurveValue = texture2D(curve, vec2(textureColor.g, 0.0)).g;
- blueCurveValue = texture2D(curve, vec2(textureColor.b, 0.0)).b;
-
- // step2 curve with mask
- textureColor = vec4(redCurveValue, greenCurveValue, blueCurveValue, 1.0);
-
- redCurveValue = texture2D(curve, vec2(textureColor.r, 0.0)).a;
- greenCurveValue = texture2D(curve, vec2(textureColor.g, 0.0)).a;
- blueCurveValue = texture2D(curve, vec2(textureColor.b, 0.0)).a;
-
- lowp vec4 textureColor2 = vec4(redCurveValue, greenCurveValue, blueCurveValue, 1.0);
-
- // step3 screen with 60%
- lowp vec4 base = vec4(mix(textureColor.rgb, textureColor2.rgb, 1.0 - greyColor.r), textureColor.a);
- lowp vec4 overlayer = vec4(layerColor.r, layerColor.g, layerColor.b, 1.0);
-
- // screen blending
- textureColor = 1.0 - ((1.0 - base) * (1.0 - overlayer));
- textureColor = (textureColor - base) * 0.6 + base;
-
- redCurveValue = texture2D(curve, vec2(textureColor.r, 1.0)).r;
- greenCurveValue = texture2D(curve, vec2(textureColor.g, 1.0)).g;
- blueCurveValue = texture2D(curve, vec2(textureColor.b, 1.0)).b;
- textureColor = vec4(redCurveValue, greenCurveValue, blueCurveValue, 1.0);
-
- gl_FragColor = vec4(textureColor.r, textureColor.g, textureColor.b, 1.0);
-}
\ No newline at end of file
diff --git a/Live/src/main/res/raw/whitecat.glsl b/Live/src/main/res/raw/whitecat.glsl
deleted file mode 100644
index fab69d6..0000000
--- a/Live/src/main/res/raw/whitecat.glsl
+++ /dev/null
@@ -1,104 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision highp float;
-
-varying highp vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D curve;
-
-vec3 rgb2hsv(vec3 c)
-{
- vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
- vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));
- vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));
-
- float d = q.x - min(q.w, q.y);
- float e = 1.0e-10;
- return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
-}
-
-vec3 hsv2rgb(vec3 c)
-{
- vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
- vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
- return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
-}
-
-void main()
-{
- float GreyVal;
- lowp vec4 textureColor;
- lowp vec4 textureColorOri;
- float xCoordinate = textureCoordinate.x;
- float yCoordinate = textureCoordinate.y;
-
- highp float redCurveValue;
- highp float greenCurveValue;
- highp float blueCurveValue;
-
- textureColor = texture2D( inputImageTexture, vec2(xCoordinate, yCoordinate));
-
- // step1 20% opacity ExclusionBlending
- mediump vec4 textureColor2 = textureColor;
- textureColor2 = textureColor + textureColor2 - (2.0 * textureColor2 * textureColor);
-
- textureColor = (textureColor2 - textureColor) * 0.2 + textureColor;
-
- // step2 curve
- redCurveValue = texture2D(curve, vec2(textureColor.r, 0.0)).r;
- greenCurveValue = texture2D(curve, vec2(textureColor.g, 0.0)).g;
- blueCurveValue = texture2D(curve, vec2(textureColor.b, 0.0)).b;
-
- redCurveValue = texture2D(curve, vec2(redCurveValue, 1.0)).r;
- greenCurveValue = texture2D(curve, vec2(greenCurveValue, 1.0)).r;
- blueCurveValue = texture2D(curve, vec2(blueCurveValue, 1.0)).r;
-
- redCurveValue = texture2D(curve, vec2(redCurveValue, 1.0)).g;
- greenCurveValue = texture2D(curve, vec2(greenCurveValue, 1.0)).g;
- blueCurveValue = texture2D(curve, vec2(blueCurveValue, 1.0)).g;
-
-
- vec3 tColor = vec3(redCurveValue, greenCurveValue, blueCurveValue);
- tColor = rgb2hsv(tColor);
-
- tColor.g = tColor.g * 0.65;
-
- tColor = hsv2rgb(tColor);
- tColor = clamp(tColor, 0.0, 1.0);
-
- mediump vec4 base = vec4(tColor, 1.0);
- mediump vec4 overlay = vec4(0.62, 0.6, 0.498, 1.0);
- // step6 overlay blending
- mediump float ra;
- if (base.r < 0.5)
- {
- ra = overlay.r * base.r * 2.0;
- } else
- {
- ra = 1.0 - ((1.0 - base.r) * (1.0 - overlay.r) * 2.0);
- }
-
- mediump float ga;
- if (base.g < 0.5)
- {
- ga = overlay.g * base.g * 2.0;
- } else
- {
- ga = 1.0 - ((1.0 - base.g) * (1.0 - overlay.g) * 2.0);
- }
-
- mediump float ba;
- if (base.b < 0.5)
- {
- ba = overlay.b * base.b * 2.0;
- } else
- {
- ba = 1.0 - ((1.0 - base.b) * (1.0 - overlay.b) * 2.0);
- }
- textureColor = vec4(ra, ga, ba, 1.0);
- textureColor = (textureColor - base) * 0.1 + base;
-
- gl_FragColor = vec4(textureColor.r, textureColor.g, textureColor.b, 1.0);
-}
-
\ No newline at end of file
diff --git a/Live/src/main/res/raw/xproii_filter_shader.glsl b/Live/src/main/res/raw/xproii_filter_shader.glsl
deleted file mode 100644
index 98d9a9a..0000000
--- a/Live/src/main/res/raw/xproii_filter_shader.glsl
+++ /dev/null
@@ -1,37 +0,0 @@
-#extension GL_OES_EGL_image_external : require
-
-precision mediump float;
-
-varying mediump vec2 textureCoordinate;
-
-uniform samplerExternalOES inputImageTexture;
-uniform sampler2D inputImageTexture2; //map
-uniform sampler2D inputImageTexture3; //vigMap
-
-uniform float strength;
-
-void main()
-{
- vec4 originColor = texture2D(inputImageTexture, textureCoordinate);
- vec3 texel = texture2D(inputImageTexture, textureCoordinate).rgb;
-
- vec2 tc = (2.0 * textureCoordinate) - 1.0;
- float d = dot(tc, tc);
- vec2 lookup = vec2(d, texel.r);
- texel.r = texture2D(inputImageTexture3, lookup).r;
- lookup.y = texel.g;
- texel.g = texture2D(inputImageTexture3, lookup).g;
- lookup.y = texel.b;
- texel.b = texture2D(inputImageTexture3, lookup).b;
-
- vec2 red = vec2(texel.r, 0.16666);
- vec2 green = vec2(texel.g, 0.5);
- vec2 blue = vec2(texel.b, .83333);
- texel.r = texture2D(inputImageTexture2, red).r;
- texel.g = texture2D(inputImageTexture2, green).g;
- texel.b = texture2D(inputImageTexture2, blue).b;
-
- texel.rgb = mix(originColor.rgb, texel.rgb, strength);
-
- gl_FragColor = vec4(texel, 1.0);
-}
\ No newline at end of file
diff --git a/picture/ffmpeg_group.png b/picture/ffmpeg_group.png
index 60c9f1f..f72c75e 100644
Binary files a/picture/ffmpeg_group.png and b/picture/ffmpeg_group.png differ