325 |
325 |
return 1;
|
326 |
326 |
}
|
327 |
327 |
|
328 |
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
329 |
|
|
330 |
|
private static void clearBuffer(DistortedOutputSurface buffer, int fbo)
|
331 |
|
{
|
332 |
|
GLES31.glStencilMask(0xff);
|
333 |
|
GLES31.glDepthMask(true);
|
334 |
|
GLES31.glColorMask(true,true,true,true);
|
335 |
|
GLES31.glClearColor(1.0f,1.0f,1.0f,0.0f);
|
336 |
|
GLES31.glClearDepthf(1.0f);
|
337 |
|
GLES31.glClearStencil(0);
|
338 |
|
|
339 |
|
buffer.setAsOutputFBO(fbo);
|
340 |
|
GLES31.glFramebufferTexture2D(GLES31.GL_FRAMEBUFFER, GLES31.GL_COLOR_ATTACHMENT0, GLES31.GL_TEXTURE_2D, buffer.mColorH[2*fbo+1], 0);
|
341 |
|
GLES31.glClear(GLES31.GL_COLOR_BUFFER_BIT|GLES31.GL_DEPTH_BUFFER_BIT|GLES31.GL_STENCIL_BUFFER_BIT);
|
342 |
|
GLES31.glFramebufferTexture2D(GLES31.GL_FRAMEBUFFER, GLES31.GL_COLOR_ATTACHMENT0, GLES31.GL_TEXTURE_2D, buffer.mColorH[2*fbo ], 0);
|
343 |
|
GLES31.glClear(GLES31.GL_COLOR_BUFFER_BIT);
|
344 |
|
}
|
345 |
|
|
346 |
328 |
///////////////////////////////////////////////////////////////////////////////////////////////////
|
347 |
329 |
|
348 |
330 |
void clear()
|
... | ... | |
401 |
383 |
numRenders += lastQueue.postprocess(mBuffer,fbo);
|
402 |
384 |
numRenders += oitBuild(time,mBuffer[quality],fbo);
|
403 |
385 |
GLES31.glMemoryBarrier(GLES31.GL_SHADER_STORAGE_BARRIER_BIT|GLES31.GL_ATOMIC_COUNTER_BARRIER_BIT);
|
404 |
|
clearBuffer(mBuffer[quality],fbo);
|
|
386 |
mBuffer[quality].clearBuffer(fbo);
|
405 |
387 |
}
|
406 |
388 |
|
407 |
389 |
internalQuality = currQueue.getInternalQuality();
|
... | ... | |
425 |
407 |
numRenders += oitBuild(time,mBuffer[quality],fbo);
|
426 |
408 |
GLES31.glMemoryBarrier(GLES31.GL_SHADER_STORAGE_BARRIER_BIT|GLES31.GL_ATOMIC_COUNTER_BARRIER_BIT);
|
427 |
409 |
numRenders += oitRender(time,fbo); // merge the OIT linked list
|
428 |
|
clearBuffer(mBuffer[quality],fbo);
|
|
410 |
mBuffer[quality].clearBuffer(fbo);
|
429 |
411 |
}
|
430 |
412 |
} // end else (postprocessed child)
|
431 |
413 |
|
... | ... | |
465 |
447 |
return (float)mHeight/mRealHeight;
|
466 |
448 |
}
|
467 |
449 |
|
|
450 |
///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
451 |
|
|
452 |
private void clearBuffer(int fbo)
|
|
453 |
{
|
|
454 |
GLES31.glStencilMask(0xff);
|
|
455 |
GLES31.glDepthMask(true);
|
|
456 |
GLES31.glColorMask(true,true,true,true);
|
|
457 |
GLES31.glClearColor(1.0f,1.0f,1.0f,0.0f);
|
|
458 |
GLES31.glClearDepthf(1.0f);
|
|
459 |
GLES31.glClearStencil(0);
|
|
460 |
|
|
461 |
GLES31.glBindFramebuffer(GLES31.GL_FRAMEBUFFER, mFBOH[fbo]);
|
|
462 |
GLES31.glFramebufferTexture2D(GLES31.GL_FRAMEBUFFER, GLES31.GL_COLOR_ATTACHMENT0, GLES31.GL_TEXTURE_2D, mColorH[2*fbo+1], 0);
|
|
463 |
GLES31.glClear(GLES31.GL_COLOR_BUFFER_BIT|GLES31.GL_DEPTH_BUFFER_BIT|GLES31.GL_STENCIL_BUFFER_BIT);
|
|
464 |
GLES31.glFramebufferTexture2D(GLES31.GL_FRAMEBUFFER, GLES31.GL_COLOR_ATTACHMENT0, GLES31.GL_TEXTURE_2D, mColorH[2*fbo ], 0);
|
|
465 |
GLES31.glClear(GLES31.GL_COLOR_BUFFER_BIT);
|
|
466 |
}
|
|
467 |
|
468 |
468 |
///////////////////////////////////////////////////////////////////////////////////////////////////
|
469 |
469 |
|
470 |
470 |
private void setAsOutputFBO(long time, int fbo)
|
... | ... | |
730 |
730 |
mNear=0.99f;
|
731 |
731 |
}
|
732 |
732 |
|
|
733 |
if( mBuffer!=null )
|
|
734 |
{
|
|
735 |
for(int j=0; j<EffectQuality.LENGTH; j++) mBuffer[j].mNear = mNear;
|
|
736 |
}
|
|
737 |
|
733 |
738 |
createProjection();
|
734 |
739 |
}
|
735 |
740 |
|
Minor.