Project

General

Profile

« Previous | Next » 

Revision 194ab46f

Added by Leszek Koltunski over 7 years ago

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!)

View differences:

src/main/java/org/distorted/library/DistortedEffects.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
import android.opengl.Matrix;
25 25

  
26 26
import org.distorted.library.message.EffectListener;
......
125 125
    mDebugProgram = new DistortedProgram(debugVertexStream,debugFragmentStream, "#version 100\n", "#version 100\n");
126 126

  
127 127
    int debugProgramH = mDebugProgram.getProgramHandle();
128
    mObjDH      = GLES20.glGetUniformLocation( debugProgramH, "u_objD");
129
    mMVPMatrixH = GLES20.glGetUniformLocation( debugProgramH, "u_MVPMatrix");
128
    mObjDH      = GLES30.glGetUniformLocation( debugProgramH, "u_objD");
129
    mMVPMatrixH = GLES30.glGetUniformLocation( debugProgramH, "u_MVPMatrix");
130 130
    // END DEBUG  //////////////////////////////////////
131 131
    }
132 132

  
......
225 225
    Matrix.translateM  ( mTmpMatrix, 0, halfX,-halfY, 0);
226 226
    Matrix.multiplyMM  ( mMVPMatrix, 0, df.mProjectionMatrix, 0, mTmpMatrix, 0);
227 227

  
228
    GLES20.glUniform2f( mObjDH , 2*halfX, 2*halfY);
229
    GLES20.glUniformMatrix4fv(mMVPMatrixH, 1, false, mMVPMatrix , 0);
228
    GLES30.glUniform2f( mObjDH , 2*halfX, 2*halfY);
229
    GLES30.glUniformMatrix4fv(mMVPMatrixH, 1, false, mMVPMatrix , 0);
230 230

  
231
    GLES20.glVertexAttribPointer(mDebugProgram.mAttribute[0], 2, GLES20.GL_FLOAT, false, 0, mQuadPositions);
232
    GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4);
231
    GLES30.glVertexAttribPointer(mDebugProgram.mAttribute[0], 2, GLES30.GL_FLOAT, false, 0, mQuadPositions);
232
    GLES30.glDrawArrays(GLES30.GL_TRIANGLE_STRIP, 0, 4);
233 233
    }
234 234

  
235 235
///////////////////////////////////////////////////////////////////////////////////////////////////
......
242 242
    mP.compute(currTime);
243 243

  
244 244
    float halfZ = halfInputW*mesh.zFactor;
245
    GLES20.glViewport(0, 0, df.mWidth, df.mHeight);
245
    GLES30.glViewport(0, 0, df.mWidth, df.mHeight);
246 246

  
247 247
    if( mP.mNumEffects==0 )
248 248
      {
......
251 251
      mM.send(df,halfInputW,halfInputH,halfZ);
252 252
      mV.send(halfInputW,halfInputH,halfZ);
253 253
      mF.send(halfInputW,halfInputH);
254
      GLES20.glVertexAttribPointer(mProgram.mAttribute[0], POSITION_DATA_SIZE, GLES20.GL_FLOAT, false, 0, mesh.mMeshPositions);
255
      GLES20.glVertexAttribPointer(mProgram.mAttribute[1], NORMAL_DATA_SIZE  , GLES20.GL_FLOAT, false, 0, mesh.mMeshNormals);
256
      GLES20.glVertexAttribPointer(mProgram.mAttribute[2], TEX_DATA_SIZE     , GLES20.GL_FLOAT, false, 0, mesh.mMeshTexture);
257
      GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, mesh.dataLength);
254
      GLES30.glVertexAttribPointer(mProgram.mAttribute[0], POSITION_DATA_SIZE, GLES30.GL_FLOAT, false, 0, mesh.mMeshPositions);
255
      GLES30.glVertexAttribPointer(mProgram.mAttribute[1], NORMAL_DATA_SIZE  , GLES30.GL_FLOAT, false, 0, mesh.mMeshNormals);
256
      GLES30.glVertexAttribPointer(mProgram.mAttribute[2], TEX_DATA_SIZE     , GLES30.GL_FLOAT, false, 0, mesh.mMeshTexture);
257
      GLES30.glDrawArrays(GLES30.GL_TRIANGLE_STRIP, 0, mesh.dataLength);
258 258
      }
259 259
    else
260 260
      {
......
268 268
        mProgram.useProgram();
269 269
        mBufferFBO.resizeFast(df.mWidth, df.mHeight);
270 270
        mBufferFBO.setAsOutput();
271
        GLES20.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
272
        GLES20.glClear( GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);
271
        GLES30.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
272
        GLES30.glClear( GLES30.GL_DEPTH_BUFFER_BIT | GLES30.GL_COLOR_BUFFER_BIT);
273 273
        mM.send(mBufferFBO,halfInputW,halfInputH,halfZ);
274 274
        mV.send(halfInputW,halfInputH,halfZ);
275 275
        mF.send(halfInputW,halfInputH);
276
        GLES20.glVertexAttribPointer(mProgram.mAttribute[0], POSITION_DATA_SIZE, GLES20.GL_FLOAT, false, 0, mesh.mMeshPositions);
277
        GLES20.glVertexAttribPointer(mProgram.mAttribute[1], NORMAL_DATA_SIZE  , GLES20.GL_FLOAT, false, 0, mesh.mMeshNormals);
278
        GLES20.glVertexAttribPointer(mProgram.mAttribute[2], TEX_DATA_SIZE     , GLES20.GL_FLOAT, false, 0, mesh.mMeshTexture);
279
        GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, mesh.dataLength);
276
        GLES30.glVertexAttribPointer(mProgram.mAttribute[0], POSITION_DATA_SIZE, GLES30.GL_FLOAT, false, 0, mesh.mMeshPositions);
277
        GLES30.glVertexAttribPointer(mProgram.mAttribute[1], NORMAL_DATA_SIZE  , GLES30.GL_FLOAT, false, 0, mesh.mMeshNormals);
278
        GLES30.glVertexAttribPointer(mProgram.mAttribute[2], TEX_DATA_SIZE     , GLES30.GL_FLOAT, false, 0, mesh.mMeshTexture);
279
        GLES30.glDrawArrays(GLES30.GL_TRIANGLE_STRIP, 0, mesh.dataLength);
280 280

  
281 281
        Matrix.setIdentityM(mTmpMatrix, 0);
282 282
        Matrix.translateM(mTmpMatrix, 0, 0, 0, -df.mDistance);
......
296 296
   
297 297
  static void drawNoEffectsPriv(float halfInputW, float halfInputH, MeshObject mesh, DistortedFramebuffer df)
298 298
    {
299
    GLES20.glViewport(0, 0, df.mWidth, df.mHeight);
299
    GLES30.glViewport(0, 0, df.mWidth, df.mHeight);
300 300

  
301 301
    Matrix.setIdentityM(mTmpMatrix, 0);
302 302
    Matrix.translateM(mTmpMatrix, 0, 0, 0, -df.mDistance);
......
307 307
    EffectQueueFragment.sendZero();
308 308
    EffectQueuePostprocess.sendZero(df.mWidth, df.mHeight, mMVPMatrix);
309 309

  
310
    GLES20.glVertexAttribPointer(mProgram.mAttribute[0], POSITION_DATA_SIZE, GLES20.GL_FLOAT, false, 0, mesh.mMeshPositions);
311
    GLES20.glVertexAttribPointer(mProgram.mAttribute[1], NORMAL_DATA_SIZE  , GLES20.GL_FLOAT, false, 0, mesh.mMeshNormals);
312
    GLES20.glVertexAttribPointer(mProgram.mAttribute[2], TEX_DATA_SIZE     , GLES20.GL_FLOAT, false, 0, mesh.mMeshTexture);
313
    GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, mesh.dataLength);
310
    GLES30.glVertexAttribPointer(mProgram.mAttribute[0], POSITION_DATA_SIZE, GLES30.GL_FLOAT, false, 0, mesh.mMeshPositions);
311
    GLES30.glVertexAttribPointer(mProgram.mAttribute[1], NORMAL_DATA_SIZE  , GLES30.GL_FLOAT, false, 0, mesh.mMeshNormals);
312
    GLES30.glVertexAttribPointer(mProgram.mAttribute[2], TEX_DATA_SIZE     , GLES30.GL_FLOAT, false, 0, mesh.mMeshTexture);
313
    GLES30.glDrawArrays(GLES30.GL_TRIANGLE_STRIP, 0, mesh.dataLength);
314 314
    }
315 315
    
316 316
///////////////////////////////////////////////////////////////////////////////////////////////////

Also available in: Unified diff