Project

General

Profile

« Previous | Next » 

Revision 1dec66e0

Added by Leszek Koltunski 12 months ago

Implement the android.opengl.Matrix functions ourselves.

View differences:

src/main/java/org/distorted/library/effectqueue/EffectQueueMatrix.java
21 21
package org.distorted.library.effectqueue;
22 22

  
23 23
import android.opengl.GLES30;
24
import android.opengl.Matrix;
25 24

  
25
import org.distorted.library.helpers.MatrixHelper;
26 26
import org.distorted.library.effect.EffectType;
27 27
import org.distorted.library.effect.MatrixEffect;
28 28
import org.distorted.library.message.EffectMessageSender;
......
89 89

  
90 90
  void send(float distance, float mipmap, float[] projection, int variant)
91 91
    {
92
    Matrix.setIdentityM(mModelViewMatrixP, 0);
93
    Matrix.translateM(mModelViewMatrixP, 0, 0,0, -distance);
94

  
95
    if( mipmap!=1 )
96
      {
97
      Matrix.scaleM(mModelViewMatrixP, 0, mipmap, mipmap, mipmap);
98
      }
99

  
100
    mModelViewMatrixV[ 0] = mModelViewMatrixP[ 0];
101
    mModelViewMatrixV[ 1] = mModelViewMatrixP[ 1];
102
    mModelViewMatrixV[ 2] = mModelViewMatrixP[ 2];
103
    mModelViewMatrixV[ 3] = mModelViewMatrixP[ 3];
104
    mModelViewMatrixV[ 4] = mModelViewMatrixP[ 4];
105
    mModelViewMatrixV[ 5] = mModelViewMatrixP[ 5];
106
    mModelViewMatrixV[ 6] = mModelViewMatrixP[ 6];
107
    mModelViewMatrixV[ 7] = mModelViewMatrixP[ 7];
108
    mModelViewMatrixV[ 8] = mModelViewMatrixP[ 8];
109
    mModelViewMatrixV[ 9] = mModelViewMatrixP[ 9];
110
    mModelViewMatrixV[10] = mModelViewMatrixP[10];
111
    mModelViewMatrixV[11] = mModelViewMatrixP[11];
112
    mModelViewMatrixV[12] = mModelViewMatrixP[12];
113
    mModelViewMatrixV[13] = mModelViewMatrixP[13];
114
    mModelViewMatrixV[14] = mModelViewMatrixP[14];
115
    mModelViewMatrixV[15] = mModelViewMatrixP[15];
92
    // i.e. setIdentity(); translate(0,0,-distance); scale(mipmap,mipmap,mipmap)
93
    mModelViewMatrixV[ 0] = mModelViewMatrixP[ 0] = mipmap;
94
    mModelViewMatrixV[ 1] = mModelViewMatrixP[ 1] = 0;
95
    mModelViewMatrixV[ 2] = mModelViewMatrixP[ 2] = 0;
96
    mModelViewMatrixV[ 3] = mModelViewMatrixP[ 3] = 0;
97
    mModelViewMatrixV[ 4] = mModelViewMatrixP[ 4] = 0;
98
    mModelViewMatrixV[ 5] = mModelViewMatrixP[ 5] = mipmap;
99
    mModelViewMatrixV[ 6] = mModelViewMatrixP[ 6] = 0;
100
    mModelViewMatrixV[ 7] = mModelViewMatrixP[ 7] = 0;
101
    mModelViewMatrixV[ 8] = mModelViewMatrixP[ 8] = 0;
102
    mModelViewMatrixV[ 9] = mModelViewMatrixP[ 9] = 0;
103
    mModelViewMatrixV[10] = mModelViewMatrixP[10] = mipmap;
104
    mModelViewMatrixV[11] = mModelViewMatrixP[11] = 0;
105
    mModelViewMatrixV[12] = mModelViewMatrixP[12] = 0;
106
    mModelViewMatrixV[13] = mModelViewMatrixP[13] = 0;
107
    mModelViewMatrixV[14] = mModelViewMatrixP[14] = -distance;
108
    mModelViewMatrixV[15] = mModelViewMatrixP[15] = 1;
116 109

  
117 110
    float[] array = mUBF.getBackingArray();
118 111

  
......
123 116
      }
124 117

  
125 118
    // combined Model-View-Projection matrix
126
    Matrix.multiplyMM(mMVPMatrix, 0, projection, 0, mModelViewMatrixP, 0);
119
    MatrixHelper.multiply(mMVPMatrix, projection, mModelViewMatrixP);
127 120

  
128 121
    GLES30.glUniformMatrix4fv(mMVMatrixVH[variant], 1, false, mModelViewMatrixV, 0);
129 122
    GLES30.glUniformMatrix4fv(mMVMatrixPH[variant], 1, false, mModelViewMatrixP, 0);

Also available in: Unified diff