Project

General

Profile

« Previous | Next » 

Revision 0a046359

Added by Leszek Koltunski over 7 years ago

The EffectQueues are now totally independent of the size of the underlying Bitmap.

View differences:

src/main/java/org/distorted/library/EffectQueueMatrix.java
39 39
class EffectQueueMatrix extends EffectQueue
40 40
  {   
41 41
  private static final int NUM_UNIFORMS = 7;
42
  private static final int NUM_CACHE    = 0;
42 43
  private static final int INDEX = EffectTypes.MATRIX.ordinal();
43 44

  
44 45
  private static float[] mMVPMatrix = new float[16];
......
52 53
  
53 54
///////////////////////////////////////////////////////////////////////////////////////////////////
54 55
   
55
  EffectQueueMatrix(DistortedObject obj)
56
  EffectQueueMatrix(long id)
56 57
    { 
57
    super(obj,NUM_UNIFORMS, INDEX );
58
    super(id,NUM_UNIFORMS,NUM_CACHE,INDEX );
58 59
    }
59 60

  
60 61
///////////////////////////////////////////////////////////////////////////////////////////////////
......
153 154
///////////////////////////////////////////////////////////////////////////////////////////////////
154 155
// here construct the ModelView Matrix
155 156

  
156
  synchronized void send(DistortedFramebuffer df)
157
  synchronized void send(DistortedFramebuffer df, int halfX, int halfY, int halfZ)
157 158
    {
158 159
    Matrix.setIdentityM(mViewMatrix, 0);
159 160
    Matrix.translateM(mViewMatrix, 0, -df.mWidth/2, df.mHeight/2, -df.mDistance);
......
229 230
        }
230 231
      }
231 232
   
232
    Matrix.translateM(mViewMatrix, 0, mObjHalfX,-mObjHalfY, 0);
233
    Matrix.translateM(mViewMatrix, 0, halfX,-halfY, 0);
233 234
    Matrix.multiplyMM(mMVPMatrix, 0, df.mProjectionMatrix, 0, mViewMatrix, 0);
234 235
    
235
    GLES20.glUniform3f( mObjDH , mObjHalfX, mObjHalfY, mObjHalfZ);
236
    GLES20.glUniform3f( mObjDH , halfX, halfY, halfZ);
236 237
    GLES20.glUniform1f( mDepthH, df.mDepth);
237 238
    GLES20.glUniformMatrix4fv(mMVMatrixH , 1, false, mViewMatrix, 0);
238 239
    GLES20.glUniformMatrix4fv(mMVPMatrixH, 1, false, mMVPMatrix , 0);
......
241 242
///////////////////////////////////////////////////////////////////////////////////////////////////
242 243
// here construct the ModelView Matrix, but without any effects
243 244

  
244
  synchronized void sendZero(DistortedFramebuffer df)
245
  synchronized void sendZero(DistortedFramebuffer df, int halfX, int halfY, int halfZ)
245 246
    {
246 247
    Matrix.setIdentityM(mTmpMatrix, 0);
247
    Matrix.translateM(mTmpMatrix, 0, mObjHalfX-df.mWidth/2, df.mHeight/2-mObjHalfY, -df.mDistance);
248
    Matrix.translateM(mTmpMatrix, 0, halfX-df.mWidth/2, df.mHeight/2-halfY, -df.mDistance);
248 249
    Matrix.multiplyMM(mMVPMatrix, 0, df.mProjectionMatrix, 0, mTmpMatrix, 0);
249 250
    
250
    GLES20.glUniform3f( mObjDH , mObjHalfX, mObjHalfY, mObjHalfZ);
251
    GLES20.glUniform3f( mObjDH , halfX, halfY, halfZ);
251 252
    GLES20.glUniform1f( mDepthH, df.mDepth);
252 253
    GLES20.glUniformMatrix4fv(mMVMatrixH , 1, false, mTmpMatrix, 0);
253 254
    GLES20.glUniformMatrix4fv(mMVPMatrixH, 1, false, mMVPMatrix, 0);

Also available in: Unified diff