Revision d425545a
Added by Leszek Koltunski almost 8 years ago
src/main/java/org/distorted/library/EffectQueueVertex.java | ||
---|---|---|
26 | 26 |
import org.distorted.library.type.Data2D; |
27 | 27 |
import org.distorted.library.type.Data3D; |
28 | 28 |
import org.distorted.library.type.Data4D; |
29 |
import org.distorted.library.type.Dynamic; |
|
30 | 29 |
import org.distorted.library.type.Dynamic1D; |
31 | 30 |
import org.distorted.library.type.Dynamic2D; |
31 |
import org.distorted.library.type.Dynamic3D; |
|
32 | 32 |
import org.distorted.library.type.Dynamic4D; |
33 | 33 |
import org.distorted.library.type.Static1D; |
34 | 34 |
import org.distorted.library.type.Static2D; |
35 |
import org.distorted.library.type.Static3D; |
|
35 | 36 |
import org.distorted.library.type.Static4D; |
36 | 37 |
|
37 | 38 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
70 | 71 |
|
71 | 72 |
for(int i=0; i<mNumEffects; i++) |
72 | 73 |
{ |
73 |
if( mInterI[i]==null ) continue;
|
|
74 |
if( mInter[0][i]==null ) continue;
|
|
74 | 75 |
|
75 |
if( mInterP[i]!=null )
|
|
76 |
if( mInter[1][i]!=null )
|
|
76 | 77 |
{ |
77 |
mInterP[i].interpolateMain(mUniforms, NUM_UNIFORMS*i+7, mCurrentDuration[i]);
|
|
78 |
mInter[1][i].interpolateMain(mUniforms, NUM_UNIFORMS*i+7, mCurrentDuration[i]);
|
|
78 | 79 |
|
79 | 80 |
mUniforms[NUM_UNIFORMS*i+7] = mUniforms[NUM_UNIFORMS*i+7]-mObjHalfX; |
80 | 81 |
mUniforms[NUM_UNIFORMS*i+8] =-mUniforms[NUM_UNIFORMS*i+8]+mObjHalfY; |
81 | 82 |
} |
82 |
|
|
83 |
if( mInterI[i].interpolateMain(mUniforms ,NUM_UNIFORMS*i, mCurrentDuration[i], step) ) |
|
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) ) |
|
84 | 90 |
{ |
85 | 91 |
for(int j=0; j<mNumListeners; j++) |
86 | 92 |
EffectMessageSender.newMessage( mListeners.elementAt(j), |
... | ... | |
160 | 166 |
} |
161 | 167 |
|
162 | 168 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
163 |
|
|
169 |
// distort |
|
170 |
|
|
164 | 171 |
synchronized long add(EffectNames eln, Data3D data, Data2D center, Data4D region) |
165 | 172 |
{ |
166 | 173 |
if( mMax[INDEX]>mNumEffects ) |
167 | 174 |
{ |
168 | 175 |
EffectNames.fillWithUnities(eln.ordinal(), mUniforms, NUM_UNIFORMS*mNumEffects); |
169 |
|
|
170 |
mInterI[mNumEffects] = inter; |
|
171 |
mInterP[mNumEffects] = point; |
|
172 | 176 |
|
173 |
return addPriv(eln,region); |
|
177 |
if( data instanceof Dynamic3D) |
|
178 |
mInter[0][mNumEffects] = (Dynamic3D)data; |
|
179 |
else if( data instanceof Static3D) |
|
180 |
{ |
|
181 |
mInter[0][mNumEffects] = null; |
|
182 |
mUniforms[NUM_UNIFORMS*mNumEffects ] = ((Static3D)data).getX(); |
|
183 |
mUniforms[NUM_UNIFORMS*mNumEffects+1] = ((Static3D)data).getY(); |
|
184 |
mUniforms[NUM_UNIFORMS*mNumEffects+2] = ((Static3D)data).getZ(); |
|
185 |
} |
|
186 |
|
|
187 |
return addPriv(eln,center,region); |
|
174 | 188 |
} |
175 | 189 |
|
176 | 190 |
return -1; |
177 | 191 |
} |
178 | 192 |
|
179 | 193 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
180 |
|
|
194 |
// deform, distort |
|
195 |
|
|
181 | 196 |
synchronized long add(EffectNames eln, Data3D data, Data2D center) |
182 | 197 |
{ |
183 | 198 |
if( mMax[INDEX]>mNumEffects ) |
184 | 199 |
{ |
185 | 200 |
EffectNames.fillWithUnities(eln.ordinal(), mUniforms, NUM_UNIFORMS*mNumEffects); |
186 |
|
|
187 |
mInterI[mNumEffects] = inter; |
|
188 |
mInterP[mNumEffects] = null; |
|
189 |
mUniforms[NUM_UNIFORMS*mNumEffects+7] = point.getX()-mObjHalfX; |
|
190 |
mUniforms[NUM_UNIFORMS*mNumEffects+8] =-point.getY()+mObjHalfY; |
|
191 |
|
|
192 |
return addPriv(eln,null); |
|
201 |
|
|
202 |
if( data instanceof Dynamic3D) |
|
203 |
mInter[0][mNumEffects] = (Dynamic3D)data; |
|
204 |
else if( data instanceof Static3D) |
|
205 |
{ |
|
206 |
mInter[0][mNumEffects] = null; |
|
207 |
mUniforms[NUM_UNIFORMS*mNumEffects ] = ((Static3D)data).getX(); |
|
208 |
mUniforms[NUM_UNIFORMS*mNumEffects+1] = ((Static3D)data).getY(); |
|
209 |
mUniforms[NUM_UNIFORMS*mNumEffects+2] = ((Static3D)data).getZ(); |
|
210 |
} |
|
211 |
|
|
212 |
return addPriv(eln,center,null); |
|
193 | 213 |
} |
194 | 214 |
|
195 | 215 |
return -1; |
196 | 216 |
} |
197 | 217 |
|
198 | 218 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
199 |
|
|
219 |
// sink, swirl |
|
220 |
|
|
200 | 221 |
synchronized long add(EffectNames eln, Data1D data, Data2D center, Data4D region) |
201 | 222 |
{ |
202 | 223 |
if( mMax[INDEX]>mNumEffects ) |
203 | 224 |
{ |
204 |
EffectNames.fillWithUnities(eln.ordinal(), mUniforms, NUM_UNIFORMS*mNumEffects);
|
|
205 |
mUniforms[NUM_UNIFORMS*mNumEffects ] = v1; |
|
206 |
mUniforms[NUM_UNIFORMS*mNumEffects+1] = v2;
|
|
207 |
mUniforms[NUM_UNIFORMS*mNumEffects+2] = v3;
|
|
208 |
|
|
209 |
mInterI[mNumEffects] = null;
|
|
210 |
mInterP[mNumEffects] = null;
|
|
211 |
mUniforms[NUM_UNIFORMS*mNumEffects+7] = point.getX()-mObjHalfX;
|
|
212 |
mUniforms[NUM_UNIFORMS*mNumEffects+8] =-point.getY()+mObjHalfY;
|
|
213 |
|
|
214 |
return addPriv(eln,region);
|
|
225 |
EffectNames.fillWithUnities(eln.ordinal(), mUniforms, NUM_UNIFORMS*mNumEffects); |
|
226 |
|
|
227 |
if( data instanceof Dynamic1D)
|
|
228 |
mInter[0][mNumEffects] = (Dynamic1D)data;
|
|
229 |
else if( data instanceof Static1D) |
|
230 |
{
|
|
231 |
mInter[0][mNumEffects] = null;
|
|
232 |
mUniforms[NUM_UNIFORMS*mNumEffects] = ((Static1D)data).getX();
|
|
233 |
}
|
|
234 |
|
|
235 |
return addPriv(eln,center,region);
|
|
215 | 236 |
} |
216 | 237 |
|
217 | 238 |
return -1; |
... | ... | |
227 | 248 |
EffectNames.fillWithUnities(eln.ordinal(), mUniforms, NUM_UNIFORMS*mNumEffects); |
228 | 249 |
|
229 | 250 |
if( data instanceof Dynamic1D) |
230 |
mInterI[mNumEffects] = (Dynamic1D)data;
|
|
251 |
mInter[0][mNumEffects] = (Dynamic1D)data;
|
|
231 | 252 |
else if( data instanceof Static1D) |
232 | 253 |
{ |
233 |
mInterI[mNumEffects] = null;
|
|
254 |
mInter[0][mNumEffects] = null;
|
|
234 | 255 |
mUniforms[NUM_UNIFORMS*mNumEffects] = ((Static1D)data).getX(); |
235 | 256 |
} |
236 | 257 |
|
237 |
mUniforms[NUM_UNIFORMS*mNumEffects+7] = point.getX()-mObjHalfX; |
|
238 |
mUniforms[NUM_UNIFORMS*mNumEffects+8] =-point.getY()+mObjHalfY; |
|
239 |
|
|
240 |
return addPriv(eln,null); |
|
258 |
return addPriv(eln,center,null); |
|
241 | 259 |
} |
242 | 260 |
|
243 | 261 |
return -1; |
... | ... | |
245 | 263 |
|
246 | 264 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
247 | 265 |
|
248 |
private long addPriv(EffectNames eln, Data4D region) |
|
249 |
{ |
|
266 |
private long addPriv(EffectNames eln, Data2D center, Data4D region) |
|
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 |
|
|
250 | 277 |
if( region!=null ) |
251 | 278 |
{ |
252 | 279 |
if( region instanceof Dynamic4D) |
253 | 280 |
{ |
254 |
mInterP[mNumEffects] = (Dynamic4D)region;
|
|
281 |
mInter[2][mNumEffects] = (Dynamic4D)region;
|
|
255 | 282 |
} |
256 | 283 |
else if ( region instanceof Static4D) |
257 | 284 |
{ |
... | ... | |
263 | 290 |
mUniforms[NUM_UNIFORMS*mNumEffects+4] =-tmp.getY(); // invert y already |
264 | 291 |
mUniforms[NUM_UNIFORMS*mNumEffects+5] = z<=0.0f ? 1000*mObjHalfX : z; |
265 | 292 |
mUniforms[NUM_UNIFORMS*mNumEffects+6] = tmp.getW(); |
293 |
mInter[2][mNumEffects] = null; |
|
266 | 294 |
} |
267 | 295 |
else return -1; |
268 | 296 |
} |
... | ... | |
272 | 300 |
mUniforms[NUM_UNIFORMS*mNumEffects+4] = 0.0f; |
273 | 301 |
mUniforms[NUM_UNIFORMS*mNumEffects+5] = 1000*mObjHalfX; |
274 | 302 |
mUniforms[NUM_UNIFORMS*mNumEffects+6] = 0.0f; |
303 |
mInter[2][mNumEffects] = null; |
|
275 | 304 |
} |
276 | 305 |
|
277 | 306 |
return addBase(eln); |
Also available in: Unified diff
Some more progress with porting apps to new VERTEX API.