Revision 194ab46f
Added by Leszek Koltunski over 7 years ago
src/main/java/org/distorted/library/EffectQueuePostprocess.java | ||
---|---|---|
20 | 20 |
package org.distorted.library; |
21 | 21 |
|
22 | 22 |
import android.content.res.Resources; |
23 |
import android.opengl.GLES20;
|
|
23 |
import android.opengl.GLES30;
|
|
24 | 24 |
|
25 | 25 |
import org.distorted.library.message.EffectMessage; |
26 | 26 |
import org.distorted.library.program.DistortedProgram; |
... | ... | |
105 | 105 |
|
106 | 106 |
private static void getUniforms(int mProgramH) |
107 | 107 |
{ |
108 |
mNumEffectsH= GLES20.glGetUniformLocation( mProgramH, "pNumEffects");
|
|
109 |
mTypeH = GLES20.glGetUniformLocation( mProgramH, "pType");
|
|
110 |
mUniformsH = GLES20.glGetUniformLocation( mProgramH, "pUniforms");
|
|
111 |
mObjDH = GLES20.glGetUniformLocation( mProgramH, "u_objD");
|
|
112 |
mMVPMatrixH = GLES20.glGetUniformLocation(mProgramH, "u_MVPMatrix");
|
|
108 |
mNumEffectsH= GLES30.glGetUniformLocation( mProgramH, "pNumEffects");
|
|
109 |
mTypeH = GLES30.glGetUniformLocation( mProgramH, "pType");
|
|
110 |
mUniformsH = GLES30.glGetUniformLocation( mProgramH, "pUniforms");
|
|
111 |
mObjDH = GLES30.glGetUniformLocation( mProgramH, "u_objD");
|
|
112 |
mMVPMatrixH = GLES30.glGetUniformLocation(mProgramH, "u_MVPMatrix");
|
|
113 | 113 |
} |
114 | 114 |
|
115 | 115 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
160 | 160 |
|
161 | 161 |
synchronized static void sendZero(float w, float h, float[] mvp) |
162 | 162 |
{ |
163 |
GLES20.glUniform1i( mNumEffectsH, 0);
|
|
164 |
GLES20.glUniform2f( mObjDH , w, h);
|
|
165 |
GLES20.glUniformMatrix4fv(mMVPMatrixH, 1, false, mvp , 0);
|
|
163 |
GLES30.glUniform1i( mNumEffectsH, 0);
|
|
164 |
GLES30.glUniform2f( mObjDH , w, h);
|
|
165 |
GLES30.glUniformMatrix4fv(mMVPMatrixH, 1, false, mvp , 0);
|
|
166 | 166 |
} |
167 | 167 |
|
168 | 168 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
174 | 174 |
mProgram.useProgram(); |
175 | 175 |
df.setAsOutput(); |
176 | 176 |
|
177 |
GLES20.glUniform1i( mNumEffectsH, mNumEffects);
|
|
178 |
GLES20.glUniform2f( mObjDH , w, h );
|
|
179 |
GLES20.glUniformMatrix4fv(mMVPMatrixH, 1, false, mvp , 0);
|
|
177 |
GLES30.glUniform1i( mNumEffectsH, mNumEffects);
|
|
178 |
GLES30.glUniform2f( mObjDH , w, h );
|
|
179 |
GLES30.glUniformMatrix4fv(mMVPMatrixH, 1, false, mvp , 0);
|
|
180 | 180 |
|
181 | 181 |
if( mNumEffects>0 ) |
182 | 182 |
{ |
183 |
GLES20.glUniform1iv( mTypeH , mNumEffects, mName ,0);
|
|
184 |
GLES20.glUniform4fv( mUniformsH, (NUM_UNIFORMS/4)*mNumEffects, mUniforms,0);
|
|
183 |
GLES30.glUniform1iv( mTypeH , mNumEffects, mName ,0);
|
|
184 |
GLES30.glUniform4fv( mUniformsH, (NUM_UNIFORMS/4)*mNumEffects, mUniforms,0);
|
|
185 | 185 |
} |
186 | 186 |
|
187 |
GLES20.glVertexAttribPointer(mProgram.mAttribute[0], POSITION_DATA_SIZE, GLES20.GL_FLOAT, false, 0, mQuadPositions);
|
|
188 |
GLES20.glVertexAttribPointer(mProgram.mAttribute[1], TEX_DATA_SIZE , GLES20.GL_FLOAT, false, 0, mQuadTexture);
|
|
189 |
GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4);
|
|
187 |
GLES30.glVertexAttribPointer(mProgram.mAttribute[0], POSITION_DATA_SIZE, GLES30.GL_FLOAT, false, 0, mQuadPositions);
|
|
188 |
GLES30.glVertexAttribPointer(mProgram.mAttribute[1], TEX_DATA_SIZE , GLES30.GL_FLOAT, false, 0, mQuadTexture);
|
|
189 |
GLES30.glDrawArrays(GLES30.GL_TRIANGLE_STRIP, 0, 4);
|
|
190 | 190 |
} |
191 | 191 |
|
192 | 192 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
Also available in: Unified diff
Try using OpenGL ES 3.0 everywhere (but if device does not support it, try creating 2.0 context - this is important because of the emulator!)