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()