Revision a595ee16
Added by Leszek Koltunski over 8 years ago
src/main/java/org/distorted/library/EffectQueue.java | ||
---|---|---|
234 | 234 |
for(int j=effect; j<mNumEffects; j++ ) |
235 | 235 |
{ |
236 | 236 |
mType[j] = mType[j+1]; |
237 |
mInter[0][j] = mInter[0][j+1];
|
|
238 |
mInter[1][j] = mInter[1][j+1];
|
|
239 |
mInter[2][j] = mInter[2][j+1];
|
|
237 |
mInter[0][j] = mInter[0][j+1]; |
|
238 |
mInter[1][j] = mInter[1][j+1]; |
|
239 |
mInter[2][j] = mInter[2][j+1]; |
|
240 | 240 |
mCurrentDuration[j] = mCurrentDuration[j+1]; |
241 | 241 |
mID[j] = mID[j+1]; |
242 | 242 |
|
src/main/java/org/distorted/library/EffectQueueFragment.java | ||
---|---|---|
72 | 72 |
|
73 | 73 |
for(int i=0; i<mNumEffects; i++) |
74 | 74 |
{ |
75 |
if( mInter[0][i]==null ) continue; |
|
76 |
|
|
77 |
if( mInter[1][i]!=null ) mInter[1][i].interpolateMain(mBuf, 4*i, mCurrentDuration[i]); |
|
78 |
|
|
79 |
if( mInter[0][i].interpolateMain(mUniforms ,NUM_UNIFORMS*i, mCurrentDuration[i], step) ) |
|
75 |
if( mInter[0][i]!=null && mInter[0][i].interpolateMain(mUniforms ,NUM_UNIFORMS*i, mCurrentDuration[i], step) ) |
|
80 | 76 |
{ |
81 | 77 |
for(int j=0; j<mNumListeners; j++) |
82 | 78 |
EffectMessageSender.newMessage( mListeners.elementAt(j), |
... | ... | |
93 | 89 |
continue; |
94 | 90 |
} |
95 | 91 |
} |
96 |
|
|
92 |
|
|
93 |
if( mInter[1][i]!=null ) mInter[1][i].interpolateMain(mBuf, 4*i, mCurrentDuration[i]); |
|
94 |
|
|
97 | 95 |
mCurrentDuration[i] += step; |
98 | 96 |
} |
99 | 97 |
|
src/main/java/org/distorted/library/EffectQueueMatrix.java | ||
---|---|---|
105 | 105 |
|
106 | 106 |
for(int i=0; i<mNumEffects; i++) |
107 | 107 |
{ |
108 |
if( mInter[0][i]==null ) continue; |
|
109 |
|
|
110 |
if( mInter[1][i]!=null ) |
|
108 |
if( mInter[0][i]!=null && mInter[0][i].interpolateMain(mUniforms ,NUM_UNIFORMS*i+3, mCurrentDuration[i], step) ) |
|
111 | 109 |
{ |
112 |
mInter[1][i].interpolateMain(mUniforms, NUM_UNIFORMS*i, mCurrentDuration[i]); |
|
113 |
} |
|
114 |
|
|
115 |
if( mInter[0][i].interpolateMain(mUniforms ,NUM_UNIFORMS*i+3, mCurrentDuration[i], step) ) |
|
116 |
{ |
|
117 |
for(int j=0; j<mNumListeners; j++) |
|
110 |
for(int j=0; j<mNumListeners; j++) |
|
118 | 111 |
EffectMessageSender.newMessage( mListeners.elementAt(j), |
119 | 112 |
EffectMessage.EFFECT_FINISHED, |
120 | 113 |
(mID[i]<<EffectTypes.LENGTH)+EffectTypes.MATRIX.type, |
121 |
mType[i],
|
|
114 |
mType[i], |
|
122 | 115 |
mBitmapID, |
123 | 116 |
null); |
124 |
|
|
117 |
|
|
125 | 118 |
if( EffectNames.isUnity(mType[i], mUniforms, NUM_UNIFORMS*i+3) ) |
126 |
{
|
|
119 |
{ |
|
127 | 120 |
remove(i); |
128 | 121 |
i--; |
129 | 122 |
continue; |
130 | 123 |
} |
131 | 124 |
} |
132 |
|
|
125 |
|
|
126 |
if( mInter[1][i]!=null ) |
|
127 |
{ |
|
128 |
mInter[1][i].interpolateMain(mUniforms, NUM_UNIFORMS*i, mCurrentDuration[i]); |
|
129 |
} |
|
130 |
|
|
133 | 131 |
mCurrentDuration[i] += step; |
134 | 132 |
} |
135 | 133 |
|
... | ... | |
157 | 155 |
Matrix.setIdentityM(viewMatrix, 0); |
158 | 156 |
Matrix.translateM(viewMatrix, 0, -dp.width/2, dp.height/2, -dp.distance); |
159 | 157 |
|
160 |
float x,y,z, sx,sy,sz=1.0f;
|
|
158 |
float x,y,z, sx,sy,sz; |
|
161 | 159 |
|
162 | 160 |
for(int i=0; i<mNumEffects; i++) |
163 | 161 |
{ |
src/main/java/org/distorted/library/EffectQueueVertex.java | ||
---|---|---|
71 | 71 |
|
72 | 72 |
for(int i=0; i<mNumEffects; i++) |
73 | 73 |
{ |
74 |
if( mInter[0][i]==null ) continue; |
|
75 |
|
|
76 |
if( mInter[1][i]!=null ) |
|
77 |
{ |
|
78 |
mInter[1][i].interpolateMain(mUniforms, NUM_UNIFORMS*i+7, mCurrentDuration[i]); |
|
79 |
|
|
80 |
mUniforms[NUM_UNIFORMS*i+7] = mUniforms[NUM_UNIFORMS*i+7]-mObjHalfX; |
|
81 |
mUniforms[NUM_UNIFORMS*i+8] =-mUniforms[NUM_UNIFORMS*i+8]+mObjHalfY; |
|
82 |
} |
|
83 |
|
|
84 |
if( mInter[2][i]!=null ) |
|
85 |
{ |
|
86 |
mInter[2][i].interpolateMain(mUniforms, NUM_UNIFORMS*i+3, mCurrentDuration[i]); |
|
87 |
} |
|
88 |
|
|
89 |
if( mInter[0][i].interpolateMain(mUniforms ,NUM_UNIFORMS*i, mCurrentDuration[i], step) ) |
|
74 |
if( mInter[0][i]!=null && mInter[0][i].interpolateMain(mUniforms ,NUM_UNIFORMS*i, mCurrentDuration[i], step) ) |
|
90 | 75 |
{ |
91 |
for(int j=0; j<mNumListeners; j++)
|
|
76 |
for(int j=0; j<mNumListeners; j++) |
|
92 | 77 |
EffectMessageSender.newMessage( mListeners.elementAt(j), |
93 | 78 |
EffectMessage.EFFECT_FINISHED, |
94 | 79 |
(mID[i]<<EffectTypes.LENGTH)+EffectTypes.VERTEX.type, |
95 |
mType[i],
|
|
80 |
mType[i], |
|
96 | 81 |
mBitmapID, |
97 | 82 |
null); |
98 |
|
|
83 |
|
|
99 | 84 |
if( EffectNames.isUnity(mType[i], mUniforms, NUM_UNIFORMS*i) ) |
100 | 85 |
{ |
101 | 86 |
remove(i); |
... | ... | |
103 | 88 |
continue; |
104 | 89 |
} |
105 | 90 |
} |
106 |
|
|
91 |
|
|
92 |
if( mInter[1][i]!=null ) |
|
93 |
{ |
|
94 |
mInter[1][i].interpolateMain(mUniforms, NUM_UNIFORMS*i+3, mCurrentDuration[i]); |
|
95 |
} |
|
96 |
|
|
97 |
if( mInter[2][i]!=null ) |
|
98 |
{ |
|
99 |
mInter[2][i].interpolateMain(mUniforms, NUM_UNIFORMS*i+7, mCurrentDuration[i]); |
|
100 |
|
|
101 |
mUniforms[NUM_UNIFORMS*i+7] = mUniforms[NUM_UNIFORMS*i+7]-mObjHalfX; |
|
102 |
mUniforms[NUM_UNIFORMS*i+8] =-mUniforms[NUM_UNIFORMS*i+8]+mObjHalfY; |
|
103 |
|
|
104 |
//android.util.Log.e("queue", "computing dynamic center, x="+(mUniforms[NUM_UNIFORMS*i+7])); |
|
105 |
} |
|
106 |
|
|
107 | 107 |
mCurrentDuration[i] += step; |
108 | 108 |
} |
109 | 109 |
|
... | ... | |
265 | 265 |
|
266 | 266 |
private long addPriv(EffectNames eln, Data2D center, Data4D region) |
267 | 267 |
{ |
268 |
if( center instanceof Dynamic2D) |
|
269 |
mInter[1][mNumEffects] = (Dynamic2D)center; |
|
270 |
else if( center instanceof Static2D) |
|
271 |
{ |
|
272 |
mInter[1][mNumEffects] = null; |
|
273 |
mUniforms[NUM_UNIFORMS*mNumEffects+7] = ((Static2D)center).getX()-mObjHalfX; |
|
274 |
mUniforms[NUM_UNIFORMS*mNumEffects+8] =-((Static2D)center).getY()+mObjHalfY; |
|
275 |
} |
|
276 |
|
|
277 | 268 |
if( region!=null ) |
278 | 269 |
{ |
279 | 270 |
if( region instanceof Dynamic4D) |
280 | 271 |
{ |
281 |
mInter[2][mNumEffects] = (Dynamic4D)region;
|
|
272 |
mInter[1][mNumEffects] = (Dynamic4D)region;
|
|
282 | 273 |
} |
283 | 274 |
else if ( region instanceof Static4D) |
284 | 275 |
{ |
... | ... | |
290 | 281 |
mUniforms[NUM_UNIFORMS*mNumEffects+4] =-tmp.getY(); // invert y already |
291 | 282 |
mUniforms[NUM_UNIFORMS*mNumEffects+5] = z<=0.0f ? 1000*mObjHalfX : z; |
292 | 283 |
mUniforms[NUM_UNIFORMS*mNumEffects+6] = tmp.getW(); |
293 |
mInter[2][mNumEffects] = null;
|
|
284 |
mInter[1][mNumEffects] = null;
|
|
294 | 285 |
} |
295 | 286 |
else return -1; |
296 | 287 |
} |
... | ... | |
300 | 291 |
mUniforms[NUM_UNIFORMS*mNumEffects+4] = 0.0f; |
301 | 292 |
mUniforms[NUM_UNIFORMS*mNumEffects+5] = 1000*mObjHalfX; |
302 | 293 |
mUniforms[NUM_UNIFORMS*mNumEffects+6] = 0.0f; |
294 |
mInter[1][mNumEffects] = null; |
|
295 |
} |
|
296 |
|
|
297 |
if( center instanceof Dynamic2D) |
|
298 |
mInter[2][mNumEffects] = (Dynamic2D)center; |
|
299 |
else if( center instanceof Static2D) |
|
300 |
{ |
|
303 | 301 |
mInter[2][mNumEffects] = null; |
302 |
mUniforms[NUM_UNIFORMS*mNumEffects+7] = ((Static2D)center).getX()-mObjHalfX; |
|
303 |
mUniforms[NUM_UNIFORMS*mNumEffects+8] =-((Static2D)center).getY()+mObjHalfY; |
|
304 | 304 |
} |
305 |
|
|
305 |
|
|
306 | 306 |
return addBase(eln); |
307 | 307 |
} |
308 | 308 |
|
Also available in: Unified diff
New API tested.