summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/glrenderer/GLES20Canvas.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/gallery3d/glrenderer/GLES20Canvas.java')
-rw-r--r--src/com/android/gallery3d/glrenderer/GLES20Canvas.java53
1 files changed, 6 insertions, 47 deletions
diff --git a/src/com/android/gallery3d/glrenderer/GLES20Canvas.java b/src/com/android/gallery3d/glrenderer/GLES20Canvas.java
index 80f861b53..149b21efd 100644
--- a/src/com/android/gallery3d/glrenderer/GLES20Canvas.java
+++ b/src/com/android/gallery3d/glrenderer/GLES20Canvas.java
@@ -23,7 +23,6 @@ import android.opengl.GLUtils;
import android.opengl.Matrix;
import android.util.Log;
-import com.android.gallery3d.common.Utils;
import com.android.gallery3d.util.IntArray;
import java.nio.Buffer;
@@ -119,7 +118,7 @@ public class GLES20Canvas implements GLCanvas {
+ "uniform sampler2D " + TEXTURE_SAMPLER_UNIFORM + ";\n"
+ "void main() {\n"
+ " gl_FragColor = texture2D(" + TEXTURE_SAMPLER_UNIFORM + ", vTextureCoord);\n"
- + " gl_FragColor.a *= " + ALPHA_UNIFORM + ";\n"
+ + " gl_FragColor *= " + ALPHA_UNIFORM + ";\n"
+ "}\n";
private static final String OES_TEXTURE_FRAGMENT_SHADER = ""
@@ -130,7 +129,7 @@ public class GLES20Canvas implements GLCanvas {
+ "uniform samplerExternalOES " + TEXTURE_SAMPLER_UNIFORM + ";\n"
+ "void main() {\n"
+ " gl_FragColor = texture2D(" + TEXTURE_SAMPLER_UNIFORM + ", vTextureCoord);\n"
- + " gl_FragColor.a *= " + ALPHA_UNIFORM + ";\n"
+ + " gl_FragColor *= " + ALPHA_UNIFORM + ";\n"
+ "}\n";
private static final int INITIAL_RESTORE_STATE_SIZE = 8;
@@ -140,7 +139,6 @@ public class GLES20Canvas implements GLCanvas {
private float[] mMatrices = new float[INITIAL_RESTORE_STATE_SIZE * MATRIX_SIZE];
private float[] mAlphas = new float[INITIAL_RESTORE_STATE_SIZE];
private IntArray mSaveFlags = new IntArray();
- private ArrayList<Blending> mBlendings = new ArrayList<Blending>();
private int mCurrentAlphaIndex = 0;
private int mCurrentMatrixIndex = 0;
@@ -291,10 +289,8 @@ public class GLES20Canvas implements GLCanvas {
mOesTextureProgram = assembleProgram(textureVertexShader, oesTextureFragmentShader,
mOesTextureParameters);
mMeshProgram = assembleProgram(meshVertexShader, textureFragmentShader, mMeshParameters);
-
- mBlendings.clear();
- mBlendings.add(null);
- setBlending(Blending.Mix);
+ GLES20.glBlendFunc(GLES20.GL_ONE, GLES20.GL_ONE_MINUS_SRC_ALPHA);
+ checkError();
}
private static FloatBuffer createBuffer(float[] values) {
@@ -463,10 +459,6 @@ public class GLES20Canvas implements GLCanvas {
}
System.arraycopy(mMatrices, currentIndex, mMatrices, mCurrentMatrixIndex, MATRIX_SIZE);
}
- boolean saveBlending = (saveFlags & SAVE_FLAG_BLEND) == SAVE_FLAG_BLEND;
- if (saveBlending) {
- mBlendings.add(mBlendings.get(mBlendings.size() - 1));
- }
mSaveFlags.add(saveFlags);
}
@@ -481,11 +473,6 @@ public class GLES20Canvas implements GLCanvas {
if (restoreMatrix) {
mCurrentMatrixIndex -= MATRIX_SIZE;
}
- boolean restoreBlending = (restoreFlags & SAVE_FLAG_BLEND) == SAVE_FLAG_BLEND;
- if (restoreBlending) {
- setBlending(mBlendings.get(mBlendings.size() - 2));
- mBlendings.remove(mBlendings.size() - 1);
- }
}
@Override
@@ -965,32 +952,6 @@ public class GLES20Canvas implements GLCanvas {
}
@Override
- public void setBlending(Blending blending) {
- Blending currentBlending = mBlendings.get(mBlendings.size() - 1);
- if (currentBlending == blending) {
- return; // nothing to change
- }
- mBlendings.set(mBlendings.size() - 1, blending);
- int srcFunc = GLES20.GL_ONE;
- int dstFunc;
- switch (blending) {
- case Additive:
- dstFunc = GLES20.GL_ONE;
- break;
- case Mix:
- dstFunc = GLES20.GL_ONE_MINUS_SRC_ALPHA;
- break;
- default:
- Utils.fail("Unknown blend: " + blending);
- dstFunc = GLES20.GL_ONE_MINUS_SRC_ALPHA;
- break;
- }
- GLES20.glBlendFunc(srcFunc, dstFunc);
- checkError();
- }
-
-
- @Override
public void enableStencil() {
GLES20.glEnable(GLES20.GL_STENCIL_TEST);
}
@@ -1041,11 +1002,9 @@ public class GLES20Canvas implements GLCanvas {
@Override
public void recoverFromLightCycle() {
GLES20.glViewport(0, 0, mWidth, mHeight);
- int blendingIndex = mBlendings.size() - 1;
- Blending currentBlending = mBlendings.get(blendingIndex);
- mBlendings.set(blendingIndex, null);
- setBlending(currentBlending);
GLES20.glDisable(GLES20.GL_DEPTH_TEST);
+ GLES20.glBlendFunc(GLES20.GL_ONE, GLES20.GL_ONE_MINUS_SRC_ALPHA);
+ checkError();
}
@Override