Simplification

Signed-off-by: Leo Ma <begeekmyfriend@gmail.com>
camera2
Leo Ma 9 years ago
parent 7e3b61bd30
commit 1706a896e7

@ -7,7 +7,7 @@ import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.MagicFilterFactory;
import com.seu.magicfilter.utils.OpenGlUtils;
import com.seu.magicfilter.utils.OpenGLUtils;
public class MagicAmaroFilter extends GPUImageFilter{
private int[] inputTextureHandles = {-1,-1,-1};
@ -15,7 +15,7 @@ public class MagicAmaroFilter extends GPUImageFilter{
private int mGLStrengthLocation;
public MagicAmaroFilter(){
super(MagicFilterType.AMARO, OpenGlUtils.readShaderFromRawResource(R.raw.amaro));
super(MagicFilterType.AMARO, R.raw.amaro);
}
@Override
@ -28,7 +28,7 @@ public class MagicAmaroFilter extends GPUImageFilter{
@Override
protected void onDrawArraysAfter(){
for(int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
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);
@ -37,7 +37,7 @@ public class MagicAmaroFilter extends GPUImageFilter{
@Override
protected void onDrawArraysPre(){
for(int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
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));
@ -59,9 +59,9 @@ public class MagicAmaroFilter extends GPUImageFilter{
setFloat(mGLStrengthLocation, 1.0f);
runOnDraw(new Runnable(){
public void run(){
inputTextureHandles[0] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/brannan_blowout.png");
inputTextureHandles[1] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/overlaymap.png");
inputTextureHandles[2] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/amaromap.png");
inputTextureHandles[0] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/brannan_blowout.png");
inputTextureHandles[1] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/overlaymap.png");
inputTextureHandles[2] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/amaromap.png");
}
});
}

@ -8,14 +8,13 @@ import com.seu.magicfilter.utils.MagicFilterType;
import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.OpenGlUtils;
public class MagicAntiqueFilter extends GPUImageFilter{
private int[] mToneCurveTexture = {-1};
private int mToneCurveTextureUniformLocation;
public MagicAntiqueFilter(){
super(MagicFilterType.ANTIQUE, OpenGlUtils.readShaderFromRawResource(R.raw.antique));
super(MagicFilterType.ANTIQUE, R.raw.antique);
}
@Override

@ -6,25 +6,20 @@ import com.seu.magicfilter.utils.MagicFilterType;
import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.OpenGlUtils;
/**
* Created by Administrator on 2016/5/22.
*/
public class MagicBeautyFilter extends GPUImageFilter{
private int mSingleStepOffsetLocation;
private int mParamsLocation;
private int mBeautyLevel = 3;
public MagicBeautyFilter(){
super(MagicFilterType.BEAUTY, OpenGlUtils.readShaderFromRawResource(R.raw.beauty));
super(MagicFilterType.BEAUTY, R.raw.beauty);
}
protected void onInit() {
super.onInit();
mSingleStepOffsetLocation = GLES20.glGetUniformLocation(getProgram(), "singleStepOffset");
mParamsLocation = GLES20.glGetUniformLocation(getProgram(), "params");
setBeautyLevel(mBeautyLevel);
}
@Override
@ -32,26 +27,4 @@ public class MagicBeautyFilter extends GPUImageFilter{
super.onInputSizeChanged(width, height);
setFloatVec2(mSingleStepOffsetLocation, new float[] {2.0f / width, 2.0f / height});
}
public void setBeautyLevel(int level){
switch (level) {
case 1:
setFloat(mParamsLocation, 1.0f);
break;
case 2:
setFloat(mParamsLocation, 0.8f);
break;
case 3:
setFloat(mParamsLocation,0.6f);
break;
case 4:
setFloat(mParamsLocation, 0.4f);
break;
case 5:
setFloat(mParamsLocation,0.33f);
break;
default:
break;
}
}
}

@ -8,7 +8,6 @@ import com.seu.magicfilter.utils.MagicFilterType;
import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.OpenGlUtils;
public class MagicBlackCatFilter extends GPUImageFilter{
@ -16,7 +15,7 @@ public class MagicBlackCatFilter extends GPUImageFilter{
private int mToneCurveTextureUniformLocation;
public MagicBlackCatFilter(){
super(MagicFilterType.BLACKCAT, OpenGlUtils.readShaderFromRawResource(R.raw.blackcat));
super(MagicFilterType.BLACKCAT, R.raw.blackcat);
}
@Override

@ -7,7 +7,7 @@ import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.MagicFilterFactory;
import com.seu.magicfilter.utils.OpenGlUtils;
import com.seu.magicfilter.utils.OpenGLUtils;
public class MagicBrannanFilter extends GPUImageFilter{
private int[] inputTextureHandles = {-1,-1,-1,-1,-1};
@ -15,7 +15,7 @@ public class MagicBrannanFilter extends GPUImageFilter{
private int mGLStrengthLocation;
public MagicBrannanFilter(){
super(MagicFilterType.BRANNAN, OpenGlUtils.readShaderFromRawResource(R.raw.brannan));
super(MagicFilterType.BRANNAN, R.raw.brannan);
}
@Override
@ -28,7 +28,7 @@ public class MagicBrannanFilter extends GPUImageFilter{
@Override
protected void onDrawArraysAfter(){
for(int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
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);
@ -37,7 +37,7 @@ public class MagicBrannanFilter extends GPUImageFilter{
@Override
protected void onDrawArraysPre(){
for(int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
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));
@ -59,11 +59,11 @@ public class MagicBrannanFilter extends GPUImageFilter{
setFloat(mGLStrengthLocation, 1.0f);
runOnDraw(new Runnable(){
public void run(){
inputTextureHandles[0] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/brannan_process.png");
inputTextureHandles[1] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/brannan_blowout.png");
inputTextureHandles[2] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/brannan_contrast.png");
inputTextureHandles[3] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/brannan_luma.png");
inputTextureHandles[4] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/brannan_screen.png");
inputTextureHandles[0] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/brannan_process.png");
inputTextureHandles[1] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/brannan_blowout.png");
inputTextureHandles[2] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/brannan_contrast.png");
inputTextureHandles[3] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/brannan_luma.png");
inputTextureHandles[4] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/brannan_screen.png");
}
});
}

@ -7,7 +7,7 @@ import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.MagicFilterFactory;
import com.seu.magicfilter.utils.OpenGlUtils;
import com.seu.magicfilter.utils.OpenGLUtils;
public class MagicBrooklynFilter extends GPUImageFilter{
private int[] inputTextureHandles = {-1,-1,-1};
@ -15,7 +15,7 @@ public class MagicBrooklynFilter extends GPUImageFilter{
private int mGLStrengthLocation;
public MagicBrooklynFilter(){
super(MagicFilterType.BROOKLYN, OpenGlUtils.readShaderFromRawResource(R.raw.brooklyn));
super(MagicFilterType.BROOKLYN, R.raw.brooklyn);
}
@Override
@ -29,7 +29,7 @@ public class MagicBrooklynFilter extends GPUImageFilter{
@Override
protected void onDrawArraysAfter(){
for(int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
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);
@ -38,7 +38,7 @@ public class MagicBrooklynFilter extends GPUImageFilter{
@Override
protected void onDrawArraysPre(){
for(int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
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));
@ -60,9 +60,9 @@ public class MagicBrooklynFilter extends GPUImageFilter{
setFloat(mGLStrengthLocation, 1.0f);
runOnDraw(new Runnable(){
public void run(){
inputTextureHandles[0] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/brooklynCurves1.png");
inputTextureHandles[1] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/filter_map_first.png");
inputTextureHandles[2] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/brooklynCurves2.png");
inputTextureHandles[0] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/brooklynCurves1.png");
inputTextureHandles[1] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/filter_map_first.png");
inputTextureHandles[2] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/brooklynCurves2.png");
}
});
}

@ -9,7 +9,7 @@ import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.MagicFilterFactory;
import com.seu.magicfilter.utils.OpenGlUtils;
import com.seu.magicfilter.utils.OpenGLUtils;
public class MagicCalmFilter extends GPUImageFilter{
private int[] mToneCurveTexture = {-1};
@ -20,7 +20,7 @@ public class MagicCalmFilter extends GPUImageFilter{
private int mMaskGrey2UniformLocation;
public MagicCalmFilter(){
super(MagicFilterType.CALM, OpenGlUtils.readShaderFromRawResource(R.raw.calm));
super(MagicFilterType.CALM, R.raw.calm);
}
@Override
@ -119,8 +119,8 @@ public class MagicCalmFilter extends GPUImageFilter{
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(MagicFilterFactory.getCurrentContext(), "filter/calm_mask1.jpg");
mMaskGrey2TextureId = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/calm_mask2.jpg");
mMaskGrey1TextureId = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/calm_mask1.jpg");
mMaskGrey2TextureId = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/calm_mask2.jpg");
}
});
}

@ -8,14 +8,13 @@ import com.seu.magicfilter.utils.MagicFilterType;
import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.OpenGlUtils;
public class MagicCoolFilter extends GPUImageFilter {
private int[] mToneCurveTexture = {-1};
private int mToneCurveTextureUniformLocation;
public MagicCoolFilter(){
super(MagicFilterType.COOL, OpenGlUtils.readShaderFromRawResource(R.raw.cool));
super(MagicFilterType.COOL, R.raw.cool);
}
@Override

@ -6,7 +6,6 @@ import com.seu.magicfilter.utils.MagicFilterType;
import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.OpenGlUtils;
public class MagicCrayonFilter extends GPUImageFilter{
@ -15,7 +14,7 @@ public class MagicCrayonFilter extends GPUImageFilter{
private int mStrengthLocation;
public MagicCrayonFilter(){
super(MagicFilterType.CRAYON, OpenGlUtils.readShaderFromRawResource(R.raw.crayon));
super(MagicFilterType.CRAYON, R.raw.crayon);
}
@Override

@ -7,7 +7,7 @@ import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.MagicFilterFactory;
import com.seu.magicfilter.utils.OpenGlUtils;
import com.seu.magicfilter.utils.OpenGLUtils;
public class MagicEarlyBirdFilter extends GPUImageFilter{
private int[] inputTextureHandles = {-1,-1,-1,-1,-1};
@ -15,7 +15,7 @@ public class MagicEarlyBirdFilter extends GPUImageFilter{
protected int mGLStrengthLocation;
public MagicEarlyBirdFilter(){
super(MagicFilterType.EARLYBIRD, OpenGlUtils.readShaderFromRawResource(R.raw.earlybird));
super(MagicFilterType.EARLYBIRD, R.raw.earlybird);
}
@Override
@ -29,7 +29,7 @@ public class MagicEarlyBirdFilter extends GPUImageFilter{
@Override
protected void onDrawArraysAfter(){
for(int i = 0; i < inputTextureHandles.length
&& inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
&& 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);
@ -39,7 +39,7 @@ public class MagicEarlyBirdFilter extends GPUImageFilter{
@Override
protected void onDrawArraysPre(){
for(int i = 0; i < inputTextureHandles.length
&& inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
&& 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));
@ -60,11 +60,11 @@ public class MagicEarlyBirdFilter extends GPUImageFilter{
setFloat(mGLStrengthLocation, 1.0f);
runOnDraw(new Runnable(){
public void run(){
inputTextureHandles[0] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/earlybirdcurves.png");
inputTextureHandles[1] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/earlybirdoverlaymap_new.png");
inputTextureHandles[2] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/vignettemap_new.png");
inputTextureHandles[3] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/earlybirdblowout.png");
inputTextureHandles[4] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/earlybirdmap.png");
inputTextureHandles[0] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/earlybirdcurves.png");
inputTextureHandles[1] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/earlybirdoverlaymap_new.png");
inputTextureHandles[2] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/vignettemap_new.png");
inputTextureHandles[3] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/earlybirdblowout.png");
inputTextureHandles[4] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/earlybirdmap.png");
}
});
}

@ -8,14 +8,13 @@ import com.seu.magicfilter.utils.MagicFilterType;
import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.OpenGlUtils;
public class MagicEmeraldFilter extends GPUImageFilter{
private int[] mToneCurveTexture = {-1};
private int mToneCurveTextureUniformLocation;
public MagicEmeraldFilter(){
super(MagicFilterType.EMERALD, OpenGlUtils.readShaderFromRawResource(R.raw.emerald));
super(MagicFilterType.EMERALD, R.raw.emerald);
}
@Override

@ -8,14 +8,13 @@ import com.seu.magicfilter.utils.MagicFilterType;
import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.OpenGlUtils;
public class MagicEvergreenFilter extends GPUImageFilter{
private int[] mToneCurveTexture = {-1};
private int mToneCurveTextureUniformLocation;
public MagicEvergreenFilter(){
super(MagicFilterType.EVERGREEN, OpenGlUtils.readShaderFromRawResource(R.raw.evergreen));
super(MagicFilterType.EVERGREEN, R.raw.evergreen);
}
@Override

@ -7,7 +7,7 @@ import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.MagicFilterFactory;
import com.seu.magicfilter.utils.OpenGlUtils;
import com.seu.magicfilter.utils.OpenGLUtils;
public class MagicFreudFilter extends GPUImageFilter {
private int mTexelHeightUniformLocation;
@ -17,7 +17,7 @@ public class MagicFreudFilter extends GPUImageFilter {
private int mGLStrengthLocation;
public MagicFreudFilter(){
super(MagicFilterType.FREUD, OpenGlUtils.readShaderFromRawResource(R.raw.freud));
super(MagicFilterType.FREUD, R.raw.freud);
}
@Override
@ -30,7 +30,7 @@ public class MagicFreudFilter extends GPUImageFilter {
@Override
protected void onDrawArraysAfter(){
for (int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
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);
@ -39,7 +39,7 @@ public class MagicFreudFilter extends GPUImageFilter {
@Override
protected void onDrawArraysPre(){
for (int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
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));
@ -63,7 +63,7 @@ public class MagicFreudFilter extends GPUImageFilter {
setFloat(mGLStrengthLocation, 1.0f);
runOnDraw(new Runnable(){
public void run(){
inputTextureHandles[0] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/freud_rand.png");
inputTextureHandles[0] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/freud_rand.png");
}
});
}

@ -9,7 +9,7 @@ import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.MagicFilterFactory;
import com.seu.magicfilter.utils.OpenGlUtils;
import com.seu.magicfilter.utils.OpenGLUtils;
public class MagicHealthyFilter extends GPUImageFilter{
@ -21,7 +21,7 @@ public class MagicHealthyFilter extends GPUImageFilter{
private int mTexelWidthUniformLocation;
public MagicHealthyFilter(){
super(MagicFilterType.HEALTHY, OpenGlUtils.readShaderFromRawResource(R.raw.healthy));
super(MagicFilterType.HEALTHY, R.raw.healthy);
}
@Override
@ -99,7 +99,7 @@ public class MagicHealthyFilter extends GPUImageFilter{
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));
mMaskGrey1TextureId = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/healthy_mask_1.jpg");
mMaskGrey1TextureId = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/healthy_mask_1.jpg");
}
});
}

@ -7,7 +7,7 @@ import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.MagicFilterFactory;
import com.seu.magicfilter.utils.OpenGlUtils;
import com.seu.magicfilter.utils.OpenGLUtils;
public class MagicHefeFilter extends GPUImageFilter{
private int[] inputTextureHandles = {-1,-1,-1,-1};
@ -15,7 +15,7 @@ public class MagicHefeFilter extends GPUImageFilter{
private int mGLStrengthLocation;
public MagicHefeFilter(){
super(MagicFilterType.HEFE, OpenGlUtils.readShaderFromRawResource(R.raw.hefe));
super(MagicFilterType.HEFE, R.raw.hefe);
}
@Override
@ -29,7 +29,7 @@ public class MagicHefeFilter extends GPUImageFilter{
@Override
protected void onDrawArraysAfter(){
for(int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
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);
@ -38,7 +38,7 @@ public class MagicHefeFilter extends GPUImageFilter{
@Override
protected void onDrawArraysPre(){
for(int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
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));
@ -60,10 +60,10 @@ public class MagicHefeFilter extends GPUImageFilter{
setFloat(mGLStrengthLocation, 1.0f);
runOnDraw(new Runnable(){
public void run(){
inputTextureHandles[0] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/edgeburn.png");
inputTextureHandles[1] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/hefemap.png");
inputTextureHandles[2] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/hefemetal.png");
inputTextureHandles[3] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/hefesoftlight.png");
inputTextureHandles[0] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/edgeburn.png");
inputTextureHandles[1] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/hefemap.png");
inputTextureHandles[2] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/hefemetal.png");
inputTextureHandles[3] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/hefesoftlight.png");
}
});
}

@ -7,7 +7,7 @@ import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.MagicFilterFactory;
import com.seu.magicfilter.utils.OpenGlUtils;
import com.seu.magicfilter.utils.OpenGLUtils;
public class MagicHudsonFilter extends GPUImageFilter{
private int[] inputTextureHandles = {-1,-1,-1};
@ -15,7 +15,7 @@ public class MagicHudsonFilter extends GPUImageFilter{
private int mGLStrengthLocation;
public MagicHudsonFilter(){
super(MagicFilterType.HUDSON, OpenGlUtils.readShaderFromRawResource(R.raw.hudson));
super(MagicFilterType.HUDSON, R.raw.hudson);
}
@Override
@ -29,7 +29,7 @@ public class MagicHudsonFilter extends GPUImageFilter{
@Override
protected void onDrawArraysAfter(){
for(int i = 0; i < inputTextureHandles.length
&& inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
&& 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);
@ -39,7 +39,7 @@ public class MagicHudsonFilter extends GPUImageFilter{
@Override
protected void onDrawArraysPre(){
for(int i = 0; i < inputTextureHandles.length
&& inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
&& 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));
@ -61,9 +61,9 @@ public class MagicHudsonFilter extends GPUImageFilter{
setFloat(mGLStrengthLocation, 1.0f);
runOnDraw(new Runnable(){
public void run(){
inputTextureHandles[0] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/ohudsonbackground.png");
inputTextureHandles[1] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/overlaymap.png");
inputTextureHandles[2] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/hudsonmap.png");
inputTextureHandles[0] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/ohudsonbackground.png");
inputTextureHandles[1] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/overlaymap.png");
inputTextureHandles[2] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/hudsonmap.png");
}
});
}

@ -7,7 +7,7 @@ import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.MagicFilterFactory;
import com.seu.magicfilter.utils.OpenGlUtils;
import com.seu.magicfilter.utils.OpenGLUtils;
public class MagicInkwellFilter extends GPUImageFilter{
private int[] inputTextureHandles = {-1};
@ -15,7 +15,7 @@ public class MagicInkwellFilter extends GPUImageFilter{
private int mGLStrengthLocation;
public MagicInkwellFilter(){
super(MagicFilterType.INKWELL, OpenGlUtils.readShaderFromRawResource(R.raw.inkwell));
super(MagicFilterType.INKWELL, R.raw.inkwell);
}
@Override
@ -29,7 +29,7 @@ public class MagicInkwellFilter extends GPUImageFilter{
@Override
protected void onDrawArraysAfter(){
for(int i = 0; i < inputTextureHandles.length
&& inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
&& 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);
@ -39,7 +39,7 @@ public class MagicInkwellFilter extends GPUImageFilter{
@Override
protected void onDrawArraysPre(){
for(int i = 0; i < inputTextureHandles.length
&& inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
&& 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));
@ -61,7 +61,7 @@ public class MagicInkwellFilter extends GPUImageFilter{
setFloat(mGLStrengthLocation, 1.0f);
runOnDraw(new Runnable(){
public void run(){
inputTextureHandles[0] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/inkwellmap.png");
inputTextureHandles[0] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/inkwellmap.png");
}
});
}

@ -7,7 +7,7 @@ import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.MagicFilterFactory;
import com.seu.magicfilter.utils.OpenGlUtils;
import com.seu.magicfilter.utils.OpenGLUtils;
public class MagicKevinFilter extends GPUImageFilter{
private int[] inputTextureHandles = {-1};
@ -15,7 +15,7 @@ public class MagicKevinFilter extends GPUImageFilter{
private int mGLStrengthLocation;
public MagicKevinFilter(){
super(MagicFilterType.KEVIN, OpenGlUtils.readShaderFromRawResource(R.raw.kevin_new));
super(MagicFilterType.KEVIN, R.raw.kevin_new);
}
@Override
@ -29,7 +29,7 @@ public class MagicKevinFilter extends GPUImageFilter{
@Override
protected void onDrawArraysAfter(){
for(int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
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);
@ -38,7 +38,7 @@ public class MagicKevinFilter extends GPUImageFilter{
@Override
protected void onDrawArraysPre(){
for(int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
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));
@ -60,7 +60,7 @@ public class MagicKevinFilter extends GPUImageFilter{
setFloat(mGLStrengthLocation, 1.0f);
runOnDraw(new Runnable(){
public void run(){
inputTextureHandles[0] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/kelvinmap.png");
inputTextureHandles[0] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/kelvinmap.png");
}
});
}

@ -8,14 +8,13 @@ import com.seu.magicfilter.utils.MagicFilterType;
import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.OpenGlUtils;
public class MagicLatteFilter extends GPUImageFilter{
private int[] mToneCurveTexture = {-1};
private int mToneCurveTextureUniformLocation;
public MagicLatteFilter(){
super(MagicFilterType.LATTE, OpenGlUtils.readShaderFromRawResource(R.raw.latte));
super(MagicFilterType.LATTE, R.raw.latte);
}
@Override

@ -7,7 +7,7 @@ import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.MagicFilterFactory;
import com.seu.magicfilter.utils.OpenGlUtils;
import com.seu.magicfilter.utils.OpenGLUtils;
public class MagicLomoFilter extends GPUImageFilter{
private int[] inputTextureHandles = {-1,-1};
@ -15,7 +15,7 @@ public class MagicLomoFilter extends GPUImageFilter{
private int mGLStrengthLocation;
public MagicLomoFilter(){
super(MagicFilterType.LOMO, OpenGlUtils.readShaderFromRawResource(R.raw.lomo));
super(MagicFilterType.LOMO, R.raw.lomo);
}
@Override
@ -29,7 +29,7 @@ public class MagicLomoFilter extends GPUImageFilter{
@Override
protected void onDrawArraysAfter(){
for(int i = 0; i < inputTextureHandles.length
&& inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
&& 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);
@ -39,7 +39,7 @@ public class MagicLomoFilter extends GPUImageFilter{
@Override
protected void onDrawArraysPre(){
for(int i = 0; i < inputTextureHandles.length
&& inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
&& 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));
@ -61,8 +61,8 @@ public class MagicLomoFilter extends GPUImageFilter{
setFloat(mGLStrengthLocation, 1.0f);
runOnDraw(new Runnable(){
public void run(){
inputTextureHandles[0] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/vlomomap_new.png");
inputTextureHandles[1] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/vignette_map.png");
inputTextureHandles[0] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/vlomomap_new.png");
inputTextureHandles[1] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/vignette_map.png");
}
});
}

@ -7,7 +7,7 @@ import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.MagicFilterFactory;
import com.seu.magicfilter.utils.OpenGlUtils;
import com.seu.magicfilter.utils.OpenGLUtils;
public class MagicN1977Filter extends GPUImageFilter{
private int[] inputTextureHandles = {-1,-1};
@ -15,13 +15,13 @@ public class MagicN1977Filter extends GPUImageFilter{
private int mGLStrengthLocation;
public MagicN1977Filter(){
super(MagicFilterType.N1977, OpenGlUtils.readShaderFromRawResource(R.raw.n1977));
super(MagicFilterType.N1977, R.raw.n1977);
}
@Override
protected void onDrawArraysAfter(){
for(int i = 0; i < inputTextureHandles.length
&& inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
&& 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);
@ -31,7 +31,7 @@ public class MagicN1977Filter extends GPUImageFilter{
@Override
protected void onDrawArraysPre(){
for(int i = 0; i < inputTextureHandles.length
&& inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
&& 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));
@ -53,8 +53,8 @@ public class MagicN1977Filter extends GPUImageFilter{
setFloat(mGLStrengthLocation, 1.0f);
runOnDraw(new Runnable(){
public void run(){
inputTextureHandles[0] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/n1977map.png");
inputTextureHandles[1] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/n1977blowout.png");
inputTextureHandles[0] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/n1977map.png");
inputTextureHandles[1] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/n1977blowout.png");
}
});
}

@ -7,7 +7,7 @@ import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.MagicFilterFactory;
import com.seu.magicfilter.utils.OpenGlUtils;
import com.seu.magicfilter.utils.OpenGLUtils;
public class MagicNashvilleFilter extends GPUImageFilter{
private int[] inputTextureHandles = {-1};
@ -15,7 +15,7 @@ public class MagicNashvilleFilter extends GPUImageFilter{
private int mGLStrengthLocation;
public MagicNashvilleFilter(){
super(MagicFilterType.NASHVILLE, OpenGlUtils.readShaderFromRawResource(R.raw.nashville));
super(MagicFilterType.NASHVILLE, R.raw.nashville);
}
@Override
@ -29,7 +29,7 @@ public class MagicNashvilleFilter extends GPUImageFilter{
@Override
protected void onDrawArraysAfter(){
for(int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
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);
@ -38,7 +38,7 @@ public class MagicNashvilleFilter extends GPUImageFilter{
@Override
protected void onDrawArraysPre(){
for(int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
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));
@ -60,7 +60,7 @@ public class MagicNashvilleFilter extends GPUImageFilter{
setFloat(mGLStrengthLocation, 1.0f);
runOnDraw(new Runnable(){
public void run(){
inputTextureHandles[0] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/nashvillemap.png");
inputTextureHandles[0] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/nashvillemap.png");
}
});
}

@ -8,7 +8,6 @@ import com.seu.magicfilter.utils.MagicFilterType;
import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.OpenGlUtils;
public class MagicNostalgiaFilter extends GPUImageFilter{
private int mBlurSizeUniformLocation;
@ -20,7 +19,7 @@ public class MagicNostalgiaFilter extends GPUImageFilter{
private int mToneCurveTextureUniformLocation2;
public MagicNostalgiaFilter(){
super(MagicFilterType.NOSTALGIA, OpenGlUtils.readShaderFromRawResource(R.raw.nostalgia));
super(MagicFilterType.NOSTALGIA, R.raw.nostalgia);
}
@Override

@ -7,7 +7,7 @@ import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.MagicFilterFactory;
import com.seu.magicfilter.utils.OpenGlUtils;
import com.seu.magicfilter.utils.OpenGLUtils;
public class MagicPixarFilter extends GPUImageFilter{
private int[] inputTextureHandles = {-1};
@ -15,7 +15,7 @@ public class MagicPixarFilter extends GPUImageFilter{
private int mGLStrengthLocation;
public MagicPixarFilter(){
super(MagicFilterType.PIXAR, OpenGlUtils.readShaderFromRawResource(R.raw.pixar));
super(MagicFilterType.PIXAR, R.raw.pixar);
}
@Override
@ -29,7 +29,7 @@ public class MagicPixarFilter extends GPUImageFilter{
@Override
protected void onDrawArraysAfter(){
for(int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
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);
@ -38,7 +38,7 @@ public class MagicPixarFilter extends GPUImageFilter{
@Override
protected void onDrawArraysPre(){
for (int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
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));
@ -60,7 +60,7 @@ public class MagicPixarFilter extends GPUImageFilter{
setFloat(mGLStrengthLocation, 1.0f);
runOnDraw(new Runnable(){
public void run(){
inputTextureHandles[0] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/pixar_curves.png");
inputTextureHandles[0] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/pixar_curves.png");
}
});
}

@ -7,14 +7,14 @@ import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.MagicFilterFactory;
import com.seu.magicfilter.utils.OpenGlUtils;
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, OpenGlUtils.readShaderFromRawResource(R.raw.rise));
super(MagicFilterType.RISE, R.raw.rise);
}
@Override
@ -28,7 +28,7 @@ public class MagicRiseFilter extends GPUImageFilter{
@Override
protected void onDrawArraysAfter(){
for(int i = 0; i < inputTextureHandles.length
&& inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
&& 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);
@ -38,7 +38,7 @@ public class MagicRiseFilter extends GPUImageFilter{
@Override
protected void onDrawArraysPre(){
for(int i = 0; i < inputTextureHandles.length
&& inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
&& 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));
@ -58,9 +58,9 @@ public class MagicRiseFilter extends GPUImageFilter{
super.onInitialized();
runOnDraw(new Runnable(){
public void run(){
inputTextureHandles[0] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/blackboard1024.png");
inputTextureHandles[1] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/overlaymap.png");
inputTextureHandles[2] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/risemap.png");
inputTextureHandles[0] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/blackboard1024.png");
inputTextureHandles[1] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/overlaymap.png");
inputTextureHandles[2] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/risemap.png");
}
});
}

@ -8,7 +8,6 @@ import com.seu.magicfilter.utils.MagicFilterType;
import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.OpenGlUtils;
public class MagicRomanceFilter extends GPUImageFilter{
@ -16,7 +15,7 @@ public class MagicRomanceFilter extends GPUImageFilter{
private int mToneCurveTextureUniformLocation;
public MagicRomanceFilter(){
super(MagicFilterType.ROMANCE, OpenGlUtils.readShaderFromRawResource(R.raw.romance));
super(MagicFilterType.ROMANCE, R.raw.romance);
}
@Override

@ -8,7 +8,6 @@ import com.seu.magicfilter.utils.MagicFilterType;
import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.OpenGlUtils;
public class MagicSakuraFilter extends GPUImageFilter{
private int[] mToneCurveTexture = {-1};
@ -17,7 +16,7 @@ public class MagicSakuraFilter extends GPUImageFilter{
private int mTexelWidthUniformLocation;
public MagicSakuraFilter(){
super(MagicFilterType.SAKURA, OpenGlUtils.readShaderFromRawResource(R.raw.romance));
super(MagicFilterType.SAKURA, R.raw.romance);
}
@Override

@ -7,7 +7,7 @@ import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.MagicFilterFactory;
import com.seu.magicfilter.utils.OpenGlUtils;
import com.seu.magicfilter.utils.OpenGLUtils;
public class MagicSierraFilter extends GPUImageFilter{
private int[] inputTextureHandles = {-1,-1,-1};
@ -15,7 +15,7 @@ public class MagicSierraFilter extends GPUImageFilter{
private int mGLStrengthLocation;
public MagicSierraFilter(){
super(MagicFilterType.SIERRA, OpenGlUtils.readShaderFromRawResource(R.raw.sierra));
super(MagicFilterType.SIERRA, R.raw.sierra);
}
@Override
@ -29,7 +29,7 @@ public class MagicSierraFilter extends GPUImageFilter{
@Override
protected void onDrawArraysAfter(){
for(int i = 0; i < inputTextureHandles.length
&& inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
&& 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);
@ -39,7 +39,7 @@ public class MagicSierraFilter extends GPUImageFilter{
@Override
protected void onDrawArraysPre(){
for(int i = 0; i < inputTextureHandles.length
&& inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
&& 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));
@ -60,9 +60,9 @@ public class MagicSierraFilter extends GPUImageFilter{
setFloat(mGLStrengthLocation, 1.0f);
runOnDraw(new Runnable(){
public void run(){
inputTextureHandles[0] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/sierravignette.png");
inputTextureHandles[1] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/overlaymap.png");
inputTextureHandles[2] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/sierramap.png");
inputTextureHandles[0] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/sierravignette.png");
inputTextureHandles[1] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/overlaymap.png");
inputTextureHandles[2] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/sierramap.png");
}
});
}

@ -6,7 +6,6 @@ import com.seu.magicfilter.utils.MagicFilterType;
import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.OpenGlUtils;
public class MagicSketchFilter extends GPUImageFilter{
@ -15,7 +14,7 @@ public class MagicSketchFilter extends GPUImageFilter{
private int mStrengthLocation;
public MagicSketchFilter(){
super(MagicFilterType.SKETCH, OpenGlUtils.readShaderFromRawResource(R.raw.sketch));
super(MagicFilterType.SKETCH, R.raw.sketch);
}
@Override

@ -8,7 +8,6 @@ import com.seu.magicfilter.utils.MagicFilterType;
import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.OpenGlUtils;
public class MagicSkinWhitenFilter extends GPUImageFilter {
private int mTexelHeightUniformLocation;
@ -17,7 +16,7 @@ public class MagicSkinWhitenFilter extends GPUImageFilter {
private int[] mToneCurveTexture = new int[] {-1};
public MagicSkinWhitenFilter() {
super(MagicFilterType.SKINWHITEN, OpenGlUtils.readShaderFromRawResource(R.raw.skinwhiten));
super(MagicFilterType.SKINWHITEN, R.raw.skinwhiten);
}
@Override
@ -40,7 +39,6 @@ public class MagicSkinWhitenFilter extends GPUImageFilter {
protected void onInitialized() {
super.onInitialized();
runOnDraw(new Runnable() {
public void run() {
GLES20.glActiveTexture(GLES20.GL_TEXTURE3);
GLES20.glGenTextures(1, mToneCurveTexture, 0);

@ -9,7 +9,7 @@ import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.MagicFilterFactory;
import com.seu.magicfilter.utils.OpenGlUtils;
import com.seu.magicfilter.utils.OpenGLUtils;
public class MagicSunriseFilter extends GPUImageFilter{
private int mMaskGrey1TextureId = -1;
@ -22,7 +22,7 @@ public class MagicSunriseFilter extends GPUImageFilter{
private int mToneCurveTextureUniformLocation;
public MagicSunriseFilter(){
super(MagicFilterType.SUNRISE, OpenGlUtils.readShaderFromRawResource(R.raw.sunrise));
super(MagicFilterType.SUNRISE, R.raw.sunrise);
}
@Override
@ -134,11 +134,11 @@ public class MagicSunriseFilter extends GPUImageFilter{
}
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);
mMaskGrey1TextureId = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/amaro_mask1.jpg");
mMaskGrey1TextureId = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/amaro_mask1.jpg");
GLES20.glActiveTexture(GLES20.GL_TEXTURE5);
mMaskGrey2TextureId = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/amaro_mask2.jpg");
mMaskGrey2TextureId = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/amaro_mask2.jpg");
GLES20.glActiveTexture(GLES20.GL_TEXTURE6);
mMaskGrey3TextureId = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/toy_mask1.jpg");
mMaskGrey3TextureId = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/toy_mask1.jpg");
}
});
}

@ -9,7 +9,7 @@ import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.MagicFilterFactory;
import com.seu.magicfilter.utils.OpenGlUtils;
import com.seu.magicfilter.utils.OpenGLUtils;
public class MagicSunsetFilter extends GPUImageFilter{
private int mMaskGrey1TextureId = -1;
@ -20,7 +20,7 @@ public class MagicSunsetFilter extends GPUImageFilter{
private int mToneCurveTextureUniformLocation;
public MagicSunsetFilter(){
super(MagicFilterType.SUNSET, OpenGlUtils.readShaderFromRawResource(R.raw.sunset));
super(MagicFilterType.SUNSET, R.raw.sunset);
}
@Override
@ -114,8 +114,8 @@ public class MagicSunsetFilter extends GPUImageFilter{
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(MagicFilterFactory.getCurrentContext(), "filter/rise_mask1.jpg");
mMaskGrey2TextureId = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/rise_mask2.jpg");
mMaskGrey1TextureId = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/rise_mask1.jpg");
mMaskGrey2TextureId = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/rise_mask2.jpg");
}
});
}

@ -7,7 +7,7 @@ import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.MagicFilterFactory;
import com.seu.magicfilter.utils.OpenGlUtils;
import com.seu.magicfilter.utils.OpenGLUtils;
public class MagicSutroFilter extends GPUImageFilter{
private int[] inputTextureHandles = {-1,-1,-1,-1,-1};
@ -15,7 +15,7 @@ public class MagicSutroFilter extends GPUImageFilter{
private int mGLStrengthLocation;
public MagicSutroFilter(){
super(MagicFilterType.SUTRO, OpenGlUtils.readShaderFromRawResource(R.raw.sutro));
super(MagicFilterType.SUTRO, R.raw.sutro);
}
@Override
@ -28,7 +28,7 @@ public class MagicSutroFilter extends GPUImageFilter{
}
protected void onDrawArraysAfter(){
for(int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
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);
@ -37,7 +37,7 @@ public class MagicSutroFilter extends GPUImageFilter{
@Override
protected void onDrawArraysPre(){
for(int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
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));
@ -59,11 +59,11 @@ public class MagicSutroFilter extends GPUImageFilter{
setFloat(mGLStrengthLocation, 1.0f);
runOnDraw(new Runnable(){
public void run(){
inputTextureHandles[0] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/vignette_map.png");
inputTextureHandles[1] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/sutrometal.png");
inputTextureHandles[2] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/softlight.png");
inputTextureHandles[3] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/sutroedgeburn.png");
inputTextureHandles[4] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/sutrocurves.png");
inputTextureHandles[0] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/vignette_map.png");
inputTextureHandles[1] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/sutrometal.png");
inputTextureHandles[2] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/softlight.png");
inputTextureHandles[3] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/sutroedgeburn.png");
inputTextureHandles[4] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/sutrocurves.png");
}
});
}

@ -9,7 +9,7 @@ import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.MagicFilterFactory;
import com.seu.magicfilter.utils.OpenGlUtils;
import com.seu.magicfilter.utils.OpenGLUtils;
public class MagicSweetsFilter extends GPUImageFilter{
private int[] mToneCurveTexture = {-1};
@ -19,7 +19,7 @@ public class MagicSweetsFilter extends GPUImageFilter{
private int mLowPerformanceUniformLocation;
public MagicSweetsFilter(){
super(MagicFilterType.SWEETS, OpenGlUtils.readShaderFromRawResource(R.raw.sweets));
super(MagicFilterType.SWEETS, R.raw.sweets);
}
@Override
@ -91,7 +91,7 @@ public class MagicSweetsFilter extends GPUImageFilter{
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(MagicFilterFactory.getCurrentContext(), "filter/rise_mask2.jpg");
mMaskGrey1TextureId = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/rise_mask2.jpg");
}
});
}

@ -9,7 +9,7 @@ import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.MagicFilterFactory;
import com.seu.magicfilter.utils.OpenGlUtils;
import com.seu.magicfilter.utils.OpenGLUtils;
public class MagicTenderFilter extends GPUImageFilter{
private int[] mToneCurveTexture = {-1};
@ -18,7 +18,7 @@ public class MagicTenderFilter extends GPUImageFilter{
private int mMaskGrey1UniformLocation;
public MagicTenderFilter(){
super(MagicFilterType.TENDER, OpenGlUtils.readShaderFromRawResource(R.raw.tender));
super(MagicFilterType.TENDER, R.raw.tender);
}
@Override
@ -91,7 +91,7 @@ public class MagicTenderFilter extends GPUImageFilter{
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(MagicFilterFactory.getCurrentContext(), "filter/bluevintage_mask1.jpg");
mMaskGrey1TextureId = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/bluevintage_mask1.jpg");
}
});
}

@ -7,7 +7,7 @@ import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.MagicFilterFactory;
import com.seu.magicfilter.utils.OpenGlUtils;
import com.seu.magicfilter.utils.OpenGLUtils;
public class MagicToasterFilter extends GPUImageFilter{
private int[] inputTextureHandles = {-1,-1,-1,-1,-1};
@ -15,7 +15,7 @@ public class MagicToasterFilter extends GPUImageFilter{
private int mGLStrengthLocation;
public MagicToasterFilter(){
super(MagicFilterType.TOASTER2, OpenGlUtils.readShaderFromRawResource(R.raw.toaster2_filter_shader));
super(MagicFilterType.TOASTER2, R.raw.toaster2_filter_shader);
}
@Override
@ -29,7 +29,7 @@ public class MagicToasterFilter extends GPUImageFilter{
@Override
protected void onDrawArraysAfter() {
for(int i = 0; i < inputTextureHandles.length
&& inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
&& 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);
@ -39,7 +39,7 @@ public class MagicToasterFilter extends GPUImageFilter{
@Override
protected void onDrawArraysPre() {
for(int i = 0; i < inputTextureHandles.length
&& inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
&& 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));
@ -61,11 +61,11 @@ public class MagicToasterFilter extends GPUImageFilter{
setFloat(mGLStrengthLocation, 1.0f);
runOnDraw(new Runnable(){
public void run(){
inputTextureHandles[0] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/toastermetal.png");
inputTextureHandles[1] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/toastersoftlight.png");
inputTextureHandles[2] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/toastercurves.png");
inputTextureHandles[3] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/toasteroverlaymapwarm.png");
inputTextureHandles[4] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/toastercolorshift.png");
inputTextureHandles[0] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/toastermetal.png");
inputTextureHandles[1] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/toastersoftlight.png");
inputTextureHandles[2] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/toastercurves.png");
inputTextureHandles[3] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/toasteroverlaymapwarm.png");
inputTextureHandles[4] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/toastercolorshift.png");
}
});
}

@ -7,7 +7,7 @@ import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.MagicFilterFactory;
import com.seu.magicfilter.utils.OpenGlUtils;
import com.seu.magicfilter.utils.OpenGLUtils;
public class MagicValenciaFilter extends GPUImageFilter{
private int[] inputTextureHandles = {-1,-1};
@ -15,13 +15,13 @@ public class MagicValenciaFilter extends GPUImageFilter{
private int mGLStrengthLocation;
public MagicValenciaFilter(){
super(MagicFilterType.VALENCIA, OpenGlUtils.readShaderFromRawResource(R.raw.valencia));
super(MagicFilterType.VALENCIA, R.raw.valencia);
}
@Override
protected void onDrawArraysAfter() {
for(int i = 0; i < inputTextureHandles.length
&& inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
&& 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);
@ -31,7 +31,7 @@ public class MagicValenciaFilter extends GPUImageFilter{
@Override
protected void onDrawArraysPre() {
for(int i = 0; i < inputTextureHandles.length
&& inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
&& 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));
@ -62,8 +62,8 @@ public class MagicValenciaFilter extends GPUImageFilter{
setFloat(mGLStrengthLocation, 1.0f);
runOnDraw(new Runnable(){
public void run(){
inputTextureHandles[0] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/valenciamap.png");
inputTextureHandles[1] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/valenciagradientmap.png");
inputTextureHandles[0] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/valenciamap.png");
inputTextureHandles[1] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/valenciagradientmap.png");
}
});
}

@ -7,15 +7,16 @@ import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.MagicFilterFactory;
import com.seu.magicfilter.utils.OpenGlUtils;
import com.seu.magicfilter.utils.OpenGLUtils;
public class MagicWaldenFilter extends GPUImageFilter {
public class MagicWaldenFilter extends GPUImageFilter{
private int[] inputTextureHandles = {-1,-1};
private int[] inputTextureUniformLocations = {-1,-1};
private int mGLStrengthLocation;
public MagicWaldenFilter(){
super(MagicFilterType.WALDEN, OpenGlUtils.readShaderFromRawResource(R.raw.walden));
super(MagicFilterType.WALDEN, R.raw.walden);
}
@Override
@ -29,7 +30,7 @@ public class MagicWaldenFilter extends GPUImageFilter{
@Override
protected void onDrawArraysAfter(){
for(int i = 0; i < inputTextureHandles.length
&& inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
&& 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);
@ -38,7 +39,7 @@ public class MagicWaldenFilter extends GPUImageFilter{
@Override
protected void onDrawArraysPre(){
for(int i = 0; i < inputTextureHandles.length && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
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));
@ -59,8 +60,8 @@ public class MagicWaldenFilter extends GPUImageFilter{
setFloat(mGLStrengthLocation, 1.0f);
runOnDraw(new Runnable(){
public void run(){
inputTextureHandles[0] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/walden_map.png");
inputTextureHandles[1] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/vignette_map.png");
inputTextureHandles[0] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/walden_map.png");
inputTextureHandles[1] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/vignette_map.png");
}
});
}

@ -9,7 +9,7 @@ import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.MagicFilterFactory;
import com.seu.magicfilter.utils.OpenGlUtils;
import com.seu.magicfilter.utils.OpenGLUtils;
public class MagicWarmFilter extends GPUImageFilter{
private int[] mToneCurveTexture = {-1};
@ -20,7 +20,7 @@ public class MagicWarmFilter extends GPUImageFilter{
private int mMaskGrey2UniformLocation;
public MagicWarmFilter(){
super(MagicFilterType.WARM, OpenGlUtils.readShaderFromRawResource(R.raw.warm));
super(MagicFilterType.WARM, R.raw.warm);
}
@Override
@ -115,8 +115,8 @@ public class MagicWarmFilter extends GPUImageFilter{
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));
mMaskGrey1TextureId = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/warm_layer1.jpg");
mMaskGrey2TextureId = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/bluevintage_mask1.jpg");
mMaskGrey1TextureId = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/warm_layer1.jpg");
mMaskGrey2TextureId = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/bluevintage_mask1.jpg");
}
});
}

@ -8,7 +8,6 @@ import com.seu.magicfilter.utils.MagicFilterType;
import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.OpenGlUtils;
public class MagicWhiteCatFilter extends GPUImageFilter{
@ -16,7 +15,7 @@ public class MagicWhiteCatFilter extends GPUImageFilter{
private int mToneCurveTextureUniformLocation;
public MagicWhiteCatFilter() {
super(MagicFilterType.WHITECAT, OpenGlUtils.readShaderFromRawResource(R.raw.whitecat));
super(MagicFilterType.WHITECAT, R.raw.whitecat);
}
@Override

@ -7,7 +7,7 @@ import net.ossrs.yasea.R;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.MagicFilterFactory;
import com.seu.magicfilter.utils.OpenGlUtils;
import com.seu.magicfilter.utils.OpenGLUtils;
public class MagicXproIIFilter extends GPUImageFilter{
private int[] inputTextureHandles = {-1,-1};
@ -15,7 +15,7 @@ public class MagicXproIIFilter extends GPUImageFilter{
private int mGLStrengthLocation;
public MagicXproIIFilter(){
super(MagicFilterType.XPROII, OpenGlUtils.readShaderFromRawResource(R.raw.xproii_filter_shader));
super(MagicFilterType.XPROII, R.raw.xproii_filter_shader);
}
@Override
@ -29,7 +29,7 @@ public class MagicXproIIFilter extends GPUImageFilter{
@Override
protected void onDrawArraysAfter(){
for(int i = 0; i < inputTextureHandles.length
&& inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
&& 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);
@ -39,7 +39,7 @@ public class MagicXproIIFilter extends GPUImageFilter{
@Override
protected void onDrawArraysPre(){
for(int i = 0; i < inputTextureHandles.length
&& inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){
&& 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));
@ -60,8 +60,8 @@ public class MagicXproIIFilter extends GPUImageFilter{
setFloat(mGLStrengthLocation, 1.0f);
runOnDraw(new Runnable(){
public void run(){
inputTextureHandles[0] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/xpromap.png");
inputTextureHandles[1] = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/vignettemap_new.png");
inputTextureHandles[0] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/xpromap.png");
inputTextureHandles[1] = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), "filter/vignettemap_new.png");
}
});
}

@ -5,8 +5,7 @@ import java.nio.FloatBuffer;
import java.util.List;
import com.seu.magicfilter.base.gpuimage.GPUImageFilter;
import com.seu.magicfilter.utils.MagicFilterType;
import com.seu.magicfilter.utils.OpenGlUtils;
import com.seu.magicfilter.utils.OpenGLUtils;
import android.opengl.GLES20;
@ -83,7 +82,7 @@ public class MagicBaseGroupFilter extends GPUImageFilter {
public int onDrawFrame(final int textureId, final FloatBuffer cubeBuffer,
final FloatBuffer textureBuffer) {
if (frameBuffers == null || frameBufferTextures == null) {
return OpenGlUtils.NOT_INIT;
return OpenGLUtils.NOT_INIT;
}
int size = filters.size();
int previousTexture = textureId;
@ -102,12 +101,12 @@ public class MagicBaseGroupFilter extends GPUImageFilter {
filter.onDrawFrame(previousTexture, cubeBuffer, textureBuffer);
}
}
return OpenGlUtils.ON_DRAWN;
return OpenGLUtils.ON_DRAWN;
}
public int onDrawFrame(int textureId) {
if (frameBuffers == null || frameBufferTextures == null) {
return OpenGlUtils.NOT_INIT;
return OpenGLUtils.NOT_INIT;
}
int size = filters.size();
int previousTexture = textureId;
@ -124,7 +123,7 @@ public class MagicBaseGroupFilter extends GPUImageFilter {
filter.onDrawFrame(previousTexture, mGLCubeBuffer, mGLTextureBuffer);
}
}
return OpenGlUtils.ON_DRAWN;
return OpenGLUtils.ON_DRAWN;
}
private void destroyFramebuffers() {

@ -5,54 +5,21 @@ import android.opengl.GLES20;
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 com.seu.magicfilter.utils.OpenGLUtils;
public class MagicLookupFilter extends GPUImageFilter {
import net.ossrs.yasea.R;
public static final String LOOKUP_FRAGMENT_SHADER = "" +
"varying highp vec2 textureCoordinate;\n" +
" \n" +
" uniform sampler2D inputImageTexture;\n" +
" uniform sampler2D inputImageTexture2; // lookup texture\n" +
" \n" +
" void main()\n" +
" {\n" +
" lowp vec4 textureColor = texture2D(inputImageTexture, textureCoordinate);\n" +
" \n" +
" mediump float blueColor = textureColor.b * 63.0;\n" +
" \n" +
" mediump vec2 quad1;\n" +
" quad1.y = floor(floor(blueColor) / 8.0);\n" +
" quad1.x = floor(blueColor) - (quad1.y * 8.0);\n" +
" \n" +
" mediump vec2 quad2;\n" +
" quad2.y = floor(ceil(blueColor) / 8.0);\n" +
" quad2.x = ceil(blueColor) - (quad2.y * 8.0);\n" +
" \n" +
" highp vec2 texPos1;\n" +
" texPos1.x = (quad1.x * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.r);\n" +
" texPos1.y = (quad1.y * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.g);\n" +
" \n" +
" highp vec2 texPos2;\n" +
" texPos2.x = (quad2.x * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.r);\n" +
" texPos2.y = (quad2.y * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.g);\n" +
" \n" +
" lowp vec4 newColor1 = texture2D(inputImageTexture2, texPos1);\n" +
" lowp vec4 newColor2 = texture2D(inputImageTexture2, texPos2);\n" +
" \n" +
" lowp vec4 newColor = mix(newColor1, newColor2, fract(blueColor));\n" +
" gl_FragColor = vec4(newColor.rgb, textureColor.w);\n" +
" }";
public class MagicLookupFilter extends GPUImageFilter {
protected String table;
public MagicLookupFilter(String table) {
super(MagicFilterType.LOCKUP, LOOKUP_FRAGMENT_SHADER);
super(MagicFilterType.LOCKUP, R.raw.lookup);
this.table = table;
}
private int mLookupTextureUniform;
private int mLookupSourceTexture = OpenGlUtils.NO_TEXTURE;
private int mLookupSourceTexture = OpenGLUtils.NO_TEXTURE;
protected void onInit() {
super.onInit();
@ -63,7 +30,7 @@ public class MagicLookupFilter extends GPUImageFilter {
super.onInitialized();
runOnDraw(new Runnable() {
public void run() {
mLookupSourceTexture = OpenGlUtils.loadTexture(MagicFilterFactory.getCurrentContext(), table);
mLookupSourceTexture = OpenGLUtils.loadTexture(MagicFilterFactory.getCurrentContext(), table);
}
});
}

@ -20,22 +20,12 @@ import android.opengl.GLES20;
import com.seu.magicfilter.utils.MagicFilterType;
import net.ossrs.yasea.R;
/**
* brightness value ranges from -1.0 to 1.0, with 0.0 as the normal level
*/
public class GPUImageBrightnessFilter extends GPUImageFilter {
public static final String BRIGHTNESS_FRAGMENT_SHADER = "" +
"varying highp vec2 textureCoordinate;\n" +
" \n" +
" uniform sampler2D inputImageTexture;\n" +
" uniform lowp float brightness;\n" +
" \n" +
" void main()\n" +
" {\n" +
" lowp vec4 textureColor = texture2D(inputImageTexture, textureCoordinate);\n" +
" \n" +
" gl_FragColor = vec4((textureColor.rgb + vec3(brightness)), textureColor.w);\n" +
" }";
private int mBrightnessLocation;
private float mBrightness;
@ -45,7 +35,7 @@ public class GPUImageBrightnessFilter extends GPUImageFilter {
}
public GPUImageBrightnessFilter(final float brightness) {
super(MagicFilterType.BRIGHTNESS, BRIGHTNESS_FRAGMENT_SHADER);
super(MagicFilterType.BRIGHTNESS, R.raw.brightness);
mBrightness = brightness;
}

@ -20,24 +20,14 @@ import android.opengl.GLES20;
import com.seu.magicfilter.utils.MagicFilterType;
import net.ossrs.yasea.R;
/**
* Changes the contrast of the image.<br>
* <br>
* contrast value ranges from 0.0 to 4.0, with 1.0 as the normal level
*/
public class GPUImageContrastFilter extends GPUImageFilter {
public static final String CONTRAST_FRAGMENT_SHADER = "" +
"varying highp vec2 textureCoordinate;\n" +
" \n" +
" uniform sampler2D inputImageTexture;\n" +
" uniform lowp float contrast;\n" +
" \n" +
" void main()\n" +
" {\n" +
" lowp vec4 textureColor = texture2D(inputImageTexture, textureCoordinate);\n" +
" \n" +
" gl_FragColor = vec4(((textureColor.rgb - vec3(0.5)) * contrast + vec3(0.5)), textureColor.w);\n" +
" }";
private int mContrastLocation;
private float mContrast;
@ -47,7 +37,7 @@ public class GPUImageContrastFilter extends GPUImageFilter {
}
public GPUImageContrastFilter(float contrast) {
super(MagicFilterType.CONTRAST, CONTRAST_FRAGMENT_SHADER);
super(MagicFilterType.CONTRAST, R.raw.constrast);
mContrast = contrast;
}

@ -20,6 +20,8 @@ import android.opengl.GLES20;
import com.seu.magicfilter.utils.MagicFilterType;
import net.ossrs.yasea.R;
/**
* exposure: The adjusted exposure (-10.0 - 10.0, with 0.0 as the default)
*/
@ -45,7 +47,7 @@ public class GPUImageExposureFilter extends GPUImageFilter {
}
public GPUImageExposureFilter(final float exposure) {
super(MagicFilterType.EXPOSURE, EXPOSURE_FRAGMENT_SHADER);
super(MagicFilterType.EXPOSURE, R.raw.exposure);
mExposure = exposure;
}

@ -20,7 +20,7 @@ import android.graphics.PointF;
import android.opengl.GLES20;
import com.seu.magicfilter.utils.MagicFilterType;
import com.seu.magicfilter.utils.OpenGlUtils;
import com.seu.magicfilter.utils.OpenGLUtils;
import com.seu.magicfilter.utils.Rotation;
import com.seu.magicfilter.utils.TextureRotationUtil;
@ -66,19 +66,18 @@ public class GPUImageFilter {
}
public GPUImageFilter(MagicFilterType type) {
this(type, OpenGlUtils.readShaderFromRawResource(R.raw.default_vertex),
OpenGlUtils.readShaderFromRawResource(R.raw.default_fragment));
this(type, R.raw.vertex_oes, R.raw.fragment_oes);
}
public GPUImageFilter(MagicFilterType type, String fragmentShader) {
this(type, OpenGlUtils.readShaderFromRawResource(R.raw.default_vertex), fragmentShader);
public GPUImageFilter(MagicFilterType type, int fragmentShaderId) {
this(type, R.raw.vertex_oes, fragmentShaderId);
}
public GPUImageFilter(MagicFilterType type, String vertexShader, String fragmentShader) {
public GPUImageFilter(MagicFilterType type, int vertexShaderId, int fragmentShaderId) {
mType = type;
mRunOnDraw = new LinkedList<>();
mVertexShader = vertexShader;
mFragmentShader = fragmentShader;
mVertexShader = OpenGLUtils.readShaderFromRawResource(vertexShaderId);
mFragmentShader = OpenGLUtils.readShaderFromRawResource(fragmentShaderId);
mGLCubeBuffer = ByteBuffer.allocateDirect(TextureRotationUtil.CUBE.length * 4)
.order(ByteOrder.nativeOrder())
@ -98,7 +97,7 @@ public class GPUImageFilter {
protected void onInit() {
initVbo();
mGLProgId = OpenGlUtils.loadProgram(mVertexShader, mFragmentShader);
mGLProgId = OpenGLUtils.loadProgram(mVertexShader, mFragmentShader);
mGLPositionIndex = GLES20.glGetAttribLocation(mGLProgId, "position");
mGLTextureCoordinateIndex = GLES20.glGetAttribLocation(mGLProgId,"inputTextureCoordinate");
mGLTextureTransformIndex = GLES20.glGetUniformLocation(mGLProgId, "textureTransform");
@ -180,7 +179,7 @@ public class GPUImageFilter {
private void destroyFboTexture() {
if (mGLFboTexId != null) {
GLES20.glDeleteRenderbuffers(1, mGLFboTexId, 0);
GLES20.glDeleteTextures(1, mGLFboTexId, 0);
mGLFboTexId = null;
}
if (mGLFboId != null) {
@ -191,7 +190,7 @@ public class GPUImageFilter {
public int onDrawFrame(final int textureId, final FloatBuffer cubeBuffer, final FloatBuffer textureBuffer) {
if (!mIsInitialized) {
return OpenGlUtils.NOT_INIT;
return OpenGLUtils.NOT_INIT;
}
GLES20.glUseProgram(mGLProgId);
@ -203,7 +202,7 @@ public class GPUImageFilter {
GLES20.glEnableVertexAttribArray(mGLTextureCoordinateIndex);
GLES20.glVertexAttribPointer(mGLTextureCoordinateIndex, 2, GLES20.GL_FLOAT, false, 4 * 2, textureBuffer);
if (textureId != OpenGlUtils.NO_TEXTURE) {
if (textureId != OpenGLUtils.NO_TEXTURE) {
GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mGLFboTexId[0]);
GLES20.glUniform1i(mGLInputImageTextureIndex, 0);
@ -218,16 +217,16 @@ public class GPUImageFilter {
GLES20.glDisableVertexAttribArray(mGLPositionIndex);
GLES20.glDisableVertexAttribArray(mGLTextureCoordinateIndex);
return OpenGlUtils.ON_DRAWN;
return OpenGLUtils.ON_DRAWN;
}
public int onDrawFrame() {
if (!mIsInitialized) {
return OpenGlUtils.NOT_INIT;
return OpenGLUtils.NOT_INIT;
}
if (mGLFboId == null) {
return OpenGlUtils.NO_TEXTURE;
return OpenGLUtils.NO_TEXTURE;
}
GLES20.glUseProgram(mGLProgId);
@ -267,14 +266,14 @@ public class GPUImageFilter {
GLES20.glBindBuffer(GLES20.GL_ARRAY_BUFFER, 0);
return OpenGlUtils.ON_DRAWN;
return OpenGLUtils.ON_DRAWN;
}
protected void onDrawArraysPre() {}
protected void onDrawArraysAfter() {}
protected void runPendingOnDrawTasks() {
private void runPendingOnDrawTasks() {
while (!mRunOnDraw.isEmpty()) {
mRunOnDraw.removeFirst().run();
}
@ -308,7 +307,7 @@ public class GPUImageFilter {
return mGLInputImageTextureIndex;
}
public IntBuffer getGlFboBuffer() {
public IntBuffer getGLFboBuffer() {
return mGLFboBuffer;
}

@ -20,51 +20,9 @@ import android.opengl.GLES20;
import com.seu.magicfilter.utils.MagicFilterType;
import net.ossrs.yasea.R;
public class GPUImageHueFilter extends GPUImageFilter {
public static final String HUE_FRAGMENT_SHADER = "" +
"precision highp float;\n" +
"varying highp vec2 textureCoordinate;\n" +
"\n" +
"uniform sampler2D inputImageTexture;\n" +
"uniform mediump float hueAdjust;\n" +
"const highp vec4 kRGBToYPrime = vec4 (0.299, 0.587, 0.114, 0.0);\n" +
"const highp vec4 kRGBToI = vec4 (0.595716, -0.274453, -0.321263, 0.0);\n" +
"const highp vec4 kRGBToQ = vec4 (0.211456, -0.522591, 0.31135, 0.0);\n" +
"\n" +
"const highp vec4 kYIQToR = vec4 (1.0, 0.9563, 0.6210, 0.0);\n" +
"const highp vec4 kYIQToG = vec4 (1.0, -0.2721, -0.6474, 0.0);\n" +
"const highp vec4 kYIQToB = vec4 (1.0, -1.1070, 1.7046, 0.0);\n" +
"\n" +
"void main ()\n" +
"{\n" +
" // Sample the input pixel\n" +
" highp vec4 color = texture2D(inputImageTexture, textureCoordinate);\n" +
"\n" +
" // Convert to YIQ\n" +
" highp float YPrime = dot (color, kRGBToYPrime);\n" +
" highp float I = dot (color, kRGBToI);\n" +
" highp float Q = dot (color, kRGBToQ);\n" +
"\n" +
" // Calculate the hue and chroma\n" +
" highp float hue = atan (Q, I);\n" +
" highp float chroma = sqrt (I * I + Q * Q);\n" +
"\n" +
" // Make the user's adjustments\n" +
" hue += (-hueAdjust); //why negative rotation?\n" +
"\n" +
" // Convert back to YIQ\n" +
" Q = chroma * sin (hue);\n" +
" I = chroma * cos (hue);\n" +
"\n" +
" // Convert back to RGB\n" +
" highp vec4 yIQ = vec4 (YPrime, I, Q, 0.0);\n" +
" color.r = dot (yIQ, kYIQToR);\n" +
" color.g = dot (yIQ, kYIQToG);\n" +
" color.b = dot (yIQ, kYIQToB);\n" +
"\n" +
" // Save the result\n" +
" gl_FragColor = color;\n" +
"}\n";
private float mHue;
private int mHueLocation;
@ -74,7 +32,7 @@ public class GPUImageHueFilter extends GPUImageFilter {
}
public GPUImageHueFilter(final float hue) {
super(MagicFilterType.HUE, HUE_FRAGMENT_SHADER);
super(MagicFilterType.HUE, R.raw.hue);
mHue = hue;
}

@ -20,28 +20,12 @@ import android.opengl.GLES20;
import com.seu.magicfilter.utils.MagicFilterType;
import net.ossrs.yasea.R;
/**
* 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 {
public static final String SATURATION_FRAGMENT_SHADER = "" +
" varying highp vec2 textureCoordinate;\n" +
" \n" +
" uniform sampler2D inputImageTexture;\n" +
" uniform lowp float saturation;\n" +
" \n" +
" // Values from \"Graphics Shaders: Theory and Practice\" by Bailey and Cunningham\n" +
" const mediump vec3 luminanceWeighting = vec3(0.2125, 0.7154, 0.0721);\n" +
" \n" +
" void main()\n" +
" {\n" +
" lowp vec4 textureColor = texture2D(inputImageTexture, textureCoordinate);\n" +
" lowp float luminance = dot(textureColor.rgb, luminanceWeighting);\n" +
" lowp vec3 greyScaleColor = vec3(luminance);\n" +
" \n" +
" gl_FragColor = vec4(mix(greyScaleColor, textureColor.rgb, saturation), textureColor.w);\n" +
" \n" +
" }";
private int mSaturationLocation;
private float mSaturation;
@ -51,7 +35,7 @@ public class GPUImageSaturationFilter extends GPUImageFilter {
}
public GPUImageSaturationFilter(final float saturation) {
super(MagicFilterType.SATURATION, SATURATION_FRAGMENT_SHADER);
super(MagicFilterType.SATURATION, R.raw.saturation);
mSaturation = saturation;
}

@ -20,70 +20,14 @@ import android.opengl.GLES20;
import com.seu.magicfilter.utils.MagicFilterType;
import net.ossrs.yasea.R;
/**
* Sharpens the picture. <br>
* <br>
* sharpness: from -4.0 to 4.0, with 0.0 as the normal level
*/
public class GPUImageSharpenFilter extends GPUImageFilter {
public static final String SHARPEN_VERTEX_SHADER = "" +
"attribute vec4 position;\n" +
"attribute vec4 inputTextureCoordinate;\n" +
"\n" +
"uniform float imageWidthFactor; \n" +
"uniform float imageHeightFactor; \n" +
"uniform float sharpness;\n" +
"\n" +
"varying vec2 textureCoordinate;\n" +
"varying vec2 leftTextureCoordinate;\n" +
"varying vec2 rightTextureCoordinate; \n" +
"varying vec2 topTextureCoordinate;\n" +
"varying vec2 bottomTextureCoordinate;\n" +
"\n" +
"varying float centerMultiplier;\n" +
"varying float edgeMultiplier;\n" +
"\n" +
"void main()\n" +
"{\n" +
" gl_Position = position;\n" +
" \n" +
" mediump vec2 widthStep = vec2(imageWidthFactor, 0.0);\n" +
" mediump vec2 heightStep = vec2(0.0, imageHeightFactor);\n" +
" \n" +
" textureCoordinate = inputTextureCoordinate.xy;\n" +
" leftTextureCoordinate = inputTextureCoordinate.xy - widthStep;\n" +
" rightTextureCoordinate = inputTextureCoordinate.xy + widthStep;\n" +
" topTextureCoordinate = inputTextureCoordinate.xy + heightStep; \n" +
" bottomTextureCoordinate = inputTextureCoordinate.xy - heightStep;\n" +
" \n" +
" centerMultiplier = 1.0 + 4.0 * sharpness;\n" +
" edgeMultiplier = sharpness;\n" +
"}";
public static final String SHARPEN_FRAGMENT_SHADER = "" +
"precision highp float;\n" +
"\n" +
"varying highp vec2 textureCoordinate;\n" +
"varying highp vec2 leftTextureCoordinate;\n" +
"varying highp vec2 rightTextureCoordinate; \n" +
"varying highp vec2 topTextureCoordinate;\n" +
"varying highp vec2 bottomTextureCoordinate;\n" +
"\n" +
"varying highp float centerMultiplier;\n" +
"varying highp float edgeMultiplier;\n" +
"\n" +
"uniform sampler2D inputImageTexture;\n" +
"\n" +
"void main()\n" +
"{\n" +
" mediump vec3 textureColor = texture2D(inputImageTexture, textureCoordinate).rgb;\n" +
" mediump vec3 leftTextureColor = texture2D(inputImageTexture, leftTextureCoordinate).rgb;\n" +
" mediump vec3 rightTextureColor = texture2D(inputImageTexture, rightTextureCoordinate).rgb;\n" +
" mediump vec3 topTextureColor = texture2D(inputImageTexture, topTextureCoordinate).rgb;\n" +
" mediump vec3 bottomTextureColor = texture2D(inputImageTexture, bottomTextureCoordinate).rgb;\n" +
"\n" +
" gl_FragColor = vec4((textureColor * centerMultiplier - (leftTextureColor * edgeMultiplier + rightTextureColor * edgeMultiplier + topTextureColor * edgeMultiplier + bottomTextureColor * edgeMultiplier)), texture2D(inputImageTexture, bottomTextureCoordinate).w);\n" +
"}";
private int mSharpnessLocation;
private float mSharpness;
@ -95,7 +39,7 @@ public class GPUImageSharpenFilter extends GPUImageFilter {
}
public GPUImageSharpenFilter(final float sharpness) {
super(MagicFilterType.SHARPEN, SHARPEN_VERTEX_SHADER, SHARPEN_FRAGMENT_SHADER);
super(MagicFilterType.SHARPEN, R.raw.vertex_sharpen, R.raw.sharpen);
mSharpness = sharpness;
}

@ -17,7 +17,7 @@ import android.opengl.GLES20;
import android.opengl.GLUtils;
import android.util.Log;
public class OpenGlUtils {
public class OpenGLUtils {
public static final int NO_TEXTURE = -1;
public static final int NOT_INIT = -1;
public static final int ON_DRAWN = 1;

@ -12,7 +12,7 @@ import android.widget.Toast;
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 com.seu.magicfilter.utils.OpenGLUtils;
import java.io.IOException;
import java.nio.ByteBuffer;
@ -32,7 +32,7 @@ public class SrsCameraView extends GLSurfaceView implements GLSurfaceView.Render
private SurfaceTexture surfaceTexture;
private int mTextureId = OpenGlUtils.NO_TEXTURE;
private int mOESTextureId = OpenGLUtils.NO_TEXTURE;
private int mSurfaceWidth;
private int mSurfaceHeight;
private int mPreviewWidth;
@ -71,8 +71,8 @@ public class SrsCameraView extends GLSurfaceView implements GLSurfaceView.Render
magicFilter.init();
magicFilter.onInputSizeChanged(mPreviewWidth, mPreviewHeight);
mTextureId = OpenGlUtils.getExternalOESTextureID();
surfaceTexture = new SurfaceTexture(mTextureId);
mOESTextureId = OpenGLUtils.getExternalOESTextureID();
surfaceTexture = new SurfaceTexture(mOESTextureId);
surfaceTexture.setOnFrameAvailableListener(new SurfaceTexture.OnFrameAvailableListener() {
@Override
public void onFrameAvailable(SurfaceTexture surfaceTexture) {
@ -95,7 +95,7 @@ public class SrsCameraView extends GLSurfaceView implements GLSurfaceView.Render
GLES20.glViewport(0,0,width, height);
mSurfaceWidth = width;
mSurfaceHeight = height;
magicFilter.onDisplaySizeChanged(mSurfaceWidth, mSurfaceHeight);
magicFilter.onDisplaySizeChanged(width, height);
}
@Override
@ -108,9 +108,8 @@ public class SrsCameraView extends GLSurfaceView implements GLSurfaceView.Render
float[] mtx = new float[16];
surfaceTexture.getTransformMatrix(mtx);
magicFilter.setTextureTransformMatrix(mtx);
magicFilter.onDrawFrame();
mGLIntBufferCache.add(magicFilter.getGlFboBuffer());
magicFilter.onDrawFrame(mOESTextureId);
mGLIntBufferCache.add(magicFilter.getGLFboBuffer());
synchronized (writeLock) {
writeLock.notifyAll();
}
@ -150,12 +149,12 @@ public class SrsCameraView extends GLSurfaceView implements GLSurfaceView.Render
}
private void deleteTextures() {
if(mTextureId != OpenGlUtils.NO_TEXTURE){
if(mOESTextureId != OpenGLUtils.NO_TEXTURE){
queueEvent(new Runnable() {
@Override
public void run() {
GLES20.glDeleteTextures(1, new int[]{ mTextureId }, 0);
mTextureId = OpenGlUtils.NO_TEXTURE;
GLES20.glDeleteTextures(1, new int[]{ mOESTextureId }, 0);
mOESTextureId = OpenGLUtils.NO_TEXTURE;
}
});
}
@ -219,9 +218,6 @@ public class SrsCameraView extends GLSurfaceView implements GLSurfaceView.Render
}
/***** set parameters *****/
//params.set("orientation", "portrait");
//params.set("orientation", "landscape");
//params.setRotation(90);
params.setPictureSize(mPreviewWidth, mPreviewHeight);
params.setPreviewSize(mPreviewWidth, mPreviewHeight);
int[] range = findClosestFpsRange(SrsEncoder.VFPS, params.getSupportedPreviewFpsRange());
@ -261,8 +257,6 @@ public class SrsCameraView extends GLSurfaceView implements GLSurfaceView.Render
}
if (mCamera != null) {
// need to SET NULL CB before stop preview!!!
mCamera.setPreviewCallback(null);
mCamera.stopPreview();
mCamera.release();
mCamera = null;

@ -1,29 +1,32 @@
#extension GL_OES_EGL_image_external : require
precision mediump float;
precision highp float;
uniform samplerExternalOES inputImageTexture;
uniform vec2 singleStepOffset;
uniform mediump float params;
varying mediump vec2 textureCoordinate;
varying vec2 textureCoordinate;
const highp vec3 W = vec3(0.299,0.587,0.114);
vec2 blurCoordinates[20];
const vec4 params = vec4(0.33, 0.63, 0.4, 0.35);
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);
float hardLight(float color)
{
if(color <= 0.5)
vec2 blurCoordinates[24];
float hardLight(float color) {
if(color <= 0.5) {
color = color * color * 2.0;
else
} else {
color = 1.0 - ((1.0 - color)*(1.0 - color) * 2.0);
}
return color;
}
void main(){
void main() {
vec3 centralColor = texture2D(inputImageTexture, textureCoordinate).rgb;
if(params != 0.0){
blurCoordinates[0] = textureCoordinate.xy + singleStepOffset * vec2(0.0, -10.0);
blurCoordinates[1] = textureCoordinate.xy + singleStepOffset * vec2(0.0, 10.0);
@ -45,8 +48,12 @@ void main(){
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 * 20.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;
@ -67,8 +74,11 @@ void main(){
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 = sampleColor / 48.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;
@ -77,13 +87,23 @@ void main(){
highPass = hardLight(highPass);
}
float luminance = dot(centralColor, W);
float alpha = pow(luminance, params);
float alpha = pow(luminance, params.r);
vec3 smoothColor = centralColor + (centralColor-vec3(highPass))*alpha*0.1;
gl_FragColor = vec4(mix(smoothColor.rgb, max(smoothColor, centralColor), alpha), 1.0);
}else{
gl_FragColor = vec4(centralColor.rgb,1.0);;
}
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);
}

@ -24,8 +24,7 @@ vec3 hsv2rgb(vec3 c) {
return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
}
void main()
{
void main() {
float GreyVal;
lowp vec4 textureColor;
lowp vec4 textureColorOri;

@ -0,0 +1,9 @@
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);
}

@ -0,0 +1,9 @@
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);
}

@ -0,0 +1,9 @@
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);
}

@ -1,10 +1,8 @@
#extension GL_OES_EGL_image_external : require
precision mediump float;
varying mediump vec2 textureCoordinate;
uniform samplerExternalOES inputImageTexture;
uniform sampler2D inputImageTexture;
void main() {
vec3 centralColor = texture2D(inputImageTexture, textureCoordinate).rgb;

@ -0,0 +1,11 @@
#extension GL_OES_EGL_image_external : require
precision mediump float;
varying mediump vec2 textureCoordinate;
uniform samplerExternalOES inputImageTexture;
void main() {
gl_FragColor = texture2D(inputImageTexture, textureCoordinate);
}

@ -0,0 +1,43 @@
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;
}

@ -0,0 +1,33 @@
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);
}

@ -0,0 +1,15 @@
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);
}

@ -0,0 +1,22 @@
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);
}

@ -0,0 +1,9 @@
attribute vec4 position;
attribute vec4 inputTextureCoordinate;
varying vec2 textureCoordinate;
void main() {
textureCoordinate = inputTextureCoordinate.xy;
gl_Position = position;
}

@ -0,0 +1,31 @@
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;
}
Loading…
Cancel
Save