| 103 |
103 |
private final float CRAWL_ANGLE = -30.0f;
|
| 104 |
104 |
|
| 105 |
105 |
private GLSurfaceView mView;
|
| 106 |
|
private DistortedTexture mScreenTexture, mGFFATexture, mLogoTexture, mCrawlTexture, mCrawlBackgroundTexture, mStarTexture;
|
| 107 |
|
private DistortedEffects mScreenEffects, mGFFAEffects, mLogoEffects, mCrawlEffects, mCrawlBackgroundEffects;
|
|
106 |
private DistortedTexture mGFFATexture, mLogoTexture, mCrawlTexture, mCrawlBackgroundTexture, mStarTexture;
|
|
107 |
private DistortedEffects mGFFAEffects, mLogoEffects, mCrawlEffects, mCrawlBackgroundEffects;
|
| 108 |
108 |
private DistortedEffects[] mStarEffects;
|
| 109 |
|
private DistortedNode mRoot, mBackground;
|
|
109 |
private DistortedNode mBackground;
|
| 110 |
110 |
private DistortedScreen mScreen;
|
| 111 |
111 |
private MeshFlat mQuad;
|
| 112 |
112 |
|
| ... | ... | |
| 124 |
124 |
|
| 125 |
125 |
mQuad = new MeshFlat(1,1);
|
| 126 |
126 |
|
| 127 |
|
mScreenEffects = new DistortedEffects();
|
| 128 |
127 |
mGFFAEffects = new DistortedEffects();
|
| 129 |
128 |
mLogoEffects = new DistortedEffects();
|
| 130 |
129 |
mCrawlEffects = new DistortedEffects();
|
| ... | ... | |
| 141 |
140 |
|
| 142 |
141 |
mScreen = new DistortedScreen();
|
| 143 |
142 |
mScreen.setProjection(60.0f, 0.0f, 0.0f);
|
|
143 |
mScreen.enableDepth(false);
|
| 144 |
144 |
}
|
| 145 |
145 |
|
| 146 |
146 |
///////////////////////////////////////////////////////////////////////////////////////////////////
|
| ... | ... | |
| 173 |
173 |
mWidth = width;
|
| 174 |
174 |
mHeight= height;
|
| 175 |
175 |
|
| 176 |
|
mScreenEffects.abortAllEffects();
|
| 177 |
176 |
mGFFAEffects.abortAllEffects();
|
| 178 |
177 |
mLogoEffects.abortAllEffects();
|
| 179 |
178 |
mCrawlEffects.abortAllEffects();
|
| ... | ... | |
| 181 |
180 |
|
| 182 |
181 |
for(int i=0; i<NUM_STARS; i++) mStarEffects[i].abortAllEffects();
|
| 183 |
182 |
|
| 184 |
|
setupScreen(width,height);
|
| 185 |
|
|
| 186 |
183 |
mScreen.detachAll();
|
| 187 |
|
mScreen.attach(mRoot);
|
|
184 |
setupScreen(width,height);
|
| 188 |
185 |
mScreen.resize(width, height);
|
| 189 |
186 |
}
|
| 190 |
187 |
}
|
| ... | ... | |
| 213 |
210 |
|
| 214 |
211 |
private void setupScreen(int w, int h)
|
| 215 |
212 |
{
|
| 216 |
|
mScreenTexture = new DistortedTexture(w,h);
|
| 217 |
|
mRoot = new DistortedNode(mScreenTexture, mScreenEffects,mQuad);
|
| 218 |
|
|
| 219 |
213 |
mCrawlBackgroundTexture = new DistortedTexture(w,(int)(Math.sqrt(3.0)*h));
|
| 220 |
214 |
|
| 221 |
215 |
int randomA, randomX, randomY, randomTime;
|
| ... | ... | |
| 246 |
240 |
|
| 247 |
241 |
mStarEffects[i].alpha(di);
|
| 248 |
242 |
|
| 249 |
|
mRoot.attach(mStarTexture, mStarEffects[i], mQuad);
|
|
243 |
mScreen.attach(mStarTexture, mStarEffects[i], mQuad);
|
| 250 |
244 |
}
|
| 251 |
245 |
|
| 252 |
246 |
float scale = (0.5f*w/mGFFATexture.getWidth());
|
| ... | ... | |
| 260 |
254 |
mGFFAEffects.scale( new Static3D(scale,scale,scale) );
|
| 261 |
255 |
mGFFAEffects.alpha(di);
|
| 262 |
256 |
|
| 263 |
|
mRoot.attach(mGFFATexture, mGFFAEffects, mQuad);
|
|
257 |
mScreen.attach(mGFFATexture, mGFFAEffects, mQuad);
|
| 264 |
258 |
mGFFAEffects.registerForMessages(this);
|
| 265 |
259 |
}
|
| 266 |
260 |
|
| ... | ... | |
| 388 |
382 |
{
|
| 389 |
383 |
if( objectID == gffaID )
|
| 390 |
384 |
{
|
| 391 |
|
mRoot.detach(mGFFAEffects);
|
|
385 |
mScreen.detach(mGFFAEffects);
|
| 392 |
386 |
mGFFAEffects.abortAllEffects();
|
| 393 |
387 |
mGFFATexture.markForDeletion();
|
| 394 |
388 |
|
| 395 |
|
int screenW=mScreenTexture.getWidth();
|
| 396 |
|
int screenH=mScreenTexture.getHeight();
|
|
389 |
int screenW=mScreen.getWidth();
|
|
390 |
int screenH=mScreen.getHeight();
|
| 397 |
391 |
|
| 398 |
392 |
int logoW = mLogoTexture.getWidth();
|
| 399 |
393 |
int logoH = mLogoTexture.getHeight();
|
| ... | ... | |
| 409 |
403 |
mLogoEffects.scale(di);
|
| 410 |
404 |
mLogoEffects.move( new Static3D(-logoW/2,-logoH/2,0) );
|
| 411 |
405 |
|
| 412 |
|
mRoot.attach(mLogoTexture, mLogoEffects,mQuad);
|
|
406 |
mScreen.attach(mLogoTexture, mLogoEffects,mQuad);
|
| 413 |
407 |
mLogoEffects.registerForMessages(this);
|
| 414 |
408 |
}
|
| 415 |
409 |
else if( objectID==logoID )
|
| 416 |
410 |
{
|
| 417 |
|
mRoot.detach(mLogoEffects);
|
|
411 |
mScreen.detach(mLogoEffects);
|
| 418 |
412 |
mLogoEffects.abortAllEffects();
|
| 419 |
413 |
mLogoTexture.markForDeletion();
|
| 420 |
414 |
|
| 421 |
415 |
int crawlW = mCrawlTexture.getWidth();
|
| 422 |
416 |
int crawlH = mCrawlTexture.getHeight();
|
| 423 |
|
int screenW= mScreenTexture.getWidth();
|
| 424 |
|
int screenH= mScreenTexture.getHeight();
|
|
417 |
int screenW= mScreen.getWidth();
|
|
418 |
int screenH= mScreen.getHeight();
|
| 425 |
419 |
int backH = mCrawlBackgroundTexture.getHeight();
|
| 426 |
420 |
float scale= (float)screenW/crawlW;
|
| 427 |
421 |
|
| ... | ... | |
| 440 |
434 |
mCrawlEffects.scale( new Static3D(scale,scale,scale) );
|
| 441 |
435 |
mCrawlEffects.move( new Static3D(-crawlW/2,0,0) );
|
| 442 |
436 |
|
| 443 |
|
mBackground = mRoot.attach(mCrawlBackgroundTexture, mCrawlBackgroundEffects,mQuad);
|
|
437 |
mBackground = mScreen.attach(mCrawlBackgroundTexture, mCrawlBackgroundEffects,mQuad);
|
| 444 |
438 |
mBackground.attach(mCrawlTexture, mCrawlEffects,mQuad);
|
| 445 |
439 |
mCrawlEffects.registerForMessages(this);
|
| 446 |
440 |
}
|
| 447 |
441 |
else if( objectID==crawlID )
|
| 448 |
442 |
{
|
| 449 |
|
mRoot.detach(mBackground);
|
|
443 |
mScreen.detach(mBackground);
|
| 450 |
444 |
mBackground.detach(mCrawlEffects);
|
| 451 |
445 |
mCrawlEffects.abortAllEffects();
|
| 452 |
446 |
mCrawlTexture.markForDeletion();
|
1. Make it possible to enable/disable DEPTH test when rendering to a Screen
2. Using this, remove the 'Root' Node from StarWars.