| 71 |
71 |
|
| 72 |
72 |
for(int i=0; i<mNumEffects; i++)
|
| 73 |
73 |
{
|
| 74 |
|
if( mInter[0][i]!=null && mInter[0][i].interpolateMain(mUniforms ,NUM_UNIFORMS*i, mCurrentDuration[i], step) )
|
|
74 |
if( mInter[0][i]!=null )
|
| 75 |
75 |
{
|
| 76 |
|
for(int j=0; j<mNumListeners; j++)
|
| 77 |
|
EffectMessageSender.newMessage( mListeners.elementAt(j),
|
| 78 |
|
EffectMessage.EFFECT_FINISHED,
|
| 79 |
|
(mID[i]<<EffectTypes.LENGTH)+EffectTypes.VERTEX.type,
|
| 80 |
|
mName[i],
|
| 81 |
|
mBitmapID,
|
| 82 |
|
null);
|
| 83 |
|
|
| 84 |
|
if( EffectNames.isUnity(mName[i], mUniforms, NUM_UNIFORMS*i) )
|
|
76 |
if( mInter[0][i].interpolateMain(mUniforms ,NUM_UNIFORMS*i, mCurrentDuration[i], step) )
|
| 85 |
77 |
{
|
| 86 |
|
remove(i);
|
| 87 |
|
i--;
|
| 88 |
|
continue;
|
|
78 |
for(int j=0; j<mNumListeners; j++)
|
|
79 |
EffectMessageSender.newMessage( mListeners.elementAt(j),
|
|
80 |
EffectMessage.EFFECT_FINISHED,
|
|
81 |
(mID[i]<<EffectTypes.LENGTH)+EffectTypes.VERTEX.type,
|
|
82 |
mName[i],
|
|
83 |
mBitmapID,
|
|
84 |
null);
|
|
85 |
|
|
86 |
if( EffectNames.isUnity(mName[i], mUniforms, NUM_UNIFORMS*i) )
|
|
87 |
{
|
|
88 |
remove(i);
|
|
89 |
i--;
|
|
90 |
continue;
|
|
91 |
}
|
|
92 |
else mInter[0][i] = null;
|
|
93 |
}
|
|
94 |
else
|
|
95 |
{
|
|
96 |
postprocess(i);
|
| 89 |
97 |
}
|
| 90 |
|
else mInter[0][i] = null;
|
| 91 |
98 |
}
|
| 92 |
99 |
|
| 93 |
100 |
if( mInter[1][i]!=null ) // region
|
| ... | ... | |
| 153 |
160 |
// 2) in case of swirl, pre-compute the sine and cosine of its rotation angle
|
| 154 |
161 |
// 3) likewise in case of wave
|
| 155 |
162 |
|
| 156 |
|
void postprocess()
|
|
163 |
void postprocess(int effect)
|
| 157 |
164 |
{
|
| 158 |
165 |
double d;
|
| 159 |
|
|
| 160 |
|
for(int i=0; i<mNumEffects; i++)
|
| 161 |
|
{
|
| 162 |
|
if( mName[i]==EffectNames.SWIRL.ordinal() )
|
| 163 |
|
{
|
| 164 |
|
d = Math.PI*mUniforms[NUM_UNIFORMS*i]/180;
|
| 165 |
|
mUniforms[NUM_UNIFORMS*i+4] = (float)Math.sin(d);
|
| 166 |
|
mUniforms[NUM_UNIFORMS*i+5] = (float)Math.cos(d);
|
| 167 |
|
}
|
| 168 |
|
if( mName[i]==EffectNames.WAVE.ordinal() )
|
| 169 |
|
{
|
| 170 |
|
d = Math.PI*mUniforms[NUM_UNIFORMS*i+1]/180;
|
| 171 |
|
mUniforms[NUM_UNIFORMS*i+4] = (float)Math.sin(d);
|
| 172 |
|
mUniforms[NUM_UNIFORMS*i+5] = (float)Math.cos(d);
|
| 173 |
|
}
|
|
166 |
|
|
167 |
if( mName[effect]==EffectNames.SWIRL.ordinal() )
|
|
168 |
{
|
|
169 |
d = Math.PI*mUniforms[NUM_UNIFORMS*effect]/180;
|
|
170 |
mUniforms[NUM_UNIFORMS*effect+4] = (float)Math.sin(d);
|
|
171 |
mUniforms[NUM_UNIFORMS*effect+5] = (float)Math.cos(d);
|
|
172 |
}
|
|
173 |
if( mName[effect]==EffectNames.WAVE.ordinal() )
|
|
174 |
{
|
|
175 |
d = Math.PI*mUniforms[NUM_UNIFORMS*effect+1]/180;
|
|
176 |
mUniforms[NUM_UNIFORMS*effect+4] = (float)Math.sin(d);
|
|
177 |
mUniforms[NUM_UNIFORMS*effect+5] = (float)Math.cos(d);
|
| 174 |
178 |
}
|
| 175 |
179 |
}
|
| 176 |
180 |
|
| ... | ... | |
| 312 |
316 |
mUniforms[NUM_UNIFORMS*mNumEffects+7] =-((Static2D)center).getY()+mObjHalfY;
|
| 313 |
317 |
}
|
| 314 |
318 |
|
| 315 |
|
return addBase(eln);
|
|
319 |
long ret= addBase(eln);
|
|
320 |
|
|
321 |
postprocess(mNumEffects-1); //addBase just incremented mNumEffects
|
|
322 |
|
|
323 |
return ret;
|
| 316 |
324 |
}
|
| 317 |
325 |
|
| 318 |
326 |
///////////////////////////////////////////////////////////////////////////////////////////////////
|
Adjustments for EffectQueueVertex.postprocess()