Revision c8d70463
Added by Leszek Koltunski almost 6 years ago
src/main/java/org/distorted/library/main/DistortedOutputSurface.java | ||
---|---|---|
347 | 347 |
|
348 | 348 |
private int oitRender(long currTime, DistortedOutputSurface buffer) |
349 | 349 |
{ |
350 |
if( buffer==this ) |
|
351 |
{ |
|
352 |
android.util.Log.e("surface", "feedback loop in oitRender!"); |
|
353 |
return 0; |
|
354 |
} |
|
355 |
|
|
350 | 356 |
GLES31.glViewport(0, 0, mWidth, mHeight); |
351 | 357 |
setAsOutput(currTime); |
352 | 358 |
GLES31.glActiveTexture(GLES31.GL_TEXTURE0); |
... | ... | |
354 | 360 |
GLES31.glActiveTexture(GLES31.GL_TEXTURE1); |
355 | 361 |
GLES31.glBindTexture(GLES31.GL_TEXTURE_2D, buffer.mDepthStencilH[0]); |
356 | 362 |
|
357 |
DistortedRenderState.enableStencil(); |
|
358 |
|
|
359 |
// we have to unbind DEPTH buffer lest we create a feedback loop |
|
360 |
|
|
361 |
if( mDepthStencil==BOTH_DEPTH_STENCIL ) |
|
362 |
{ |
|
363 |
GLES31.glFramebufferTexture2D(GLES31.GL_FRAMEBUFFER, GLES31.GL_DEPTH_STENCIL_ATTACHMENT, GLES31.GL_TEXTURE_2D, 0, 0); |
|
364 |
} |
|
365 |
else if( mDepthStencil==DEPTH_NO_STENCIL ) |
|
366 |
{ |
|
367 |
GLES31.glFramebufferTexture2D(GLES31.GL_FRAMEBUFFER, GLES31.GL_DEPTH_ATTACHMENT , GLES31.GL_TEXTURE_2D, 0, 0); |
|
368 |
} |
|
363 |
GLES31.glDisable(GLES31.GL_STENCIL_TEST); |
|
364 |
GLES31.glStencilMask(0x00); |
|
369 | 365 |
|
370 | 366 |
DistortedEffects.oitRender(this, buffer.getWidthCorrection(), buffer.getHeightCorrection() ); |
371 | 367 |
|
372 |
if( mDepthStencil==BOTH_DEPTH_STENCIL ) |
|
373 |
{ |
|
374 |
GLES31.glFramebufferTexture2D(GLES31.GL_FRAMEBUFFER, GLES31.GL_DEPTH_STENCIL_ATTACHMENT, GLES31.GL_TEXTURE_2D, mDepthStencilH[0], 0); |
|
375 |
} |
|
376 |
else if( mDepthStencil==DEPTH_NO_STENCIL ) |
|
377 |
{ |
|
378 |
GLES31.glFramebufferTexture2D(GLES31.GL_FRAMEBUFFER, GLES31.GL_DEPTH_ATTACHMENT , GLES31.GL_TEXTURE_2D, mDepthStencilH[0], 0); |
|
379 |
} |
|
380 |
|
|
381 | 368 |
GLES31.glActiveTexture(GLES31.GL_TEXTURE1); |
382 | 369 |
GLES31.glBindTexture(GLES31.GL_TEXTURE_2D, 0); |
383 | 370 |
|
384 |
DistortedRenderState.restoreStencil(); |
|
385 |
|
|
386 | 371 |
return 1; |
387 | 372 |
} |
388 | 373 |
|
Also available in: Unified diff
correct oitRenddr again; correct coming to paused state (we could crash)