Revision 0a046359
Added by Leszek Koltunski over 7 years ago
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
The EffectQueues are now totally independent of the size of the underlying Bitmap.