Revision 1d292925
Added by Leszek Koltunski 5 months ago
| src/main/java/org/distorted/library/main/DistortedNode.kt | ||
|---|---|---|
| 50 | 50 |
private var mFOV: Float |
| 51 | 51 |
private var mNear: Float |
| 52 | 52 |
private var mLastTime: Long |
| 53 |
private var mSurface: InternalSurface? = null |
|
| 53 | 54 |
|
| 54 | 55 |
companion object |
| 55 | 56 |
{
|
| ... | ... | |
| 161 | 162 |
// return the total number of render calls issued |
| 162 | 163 |
fun drawNoBlend(currTime: Long, surface: InternalOutputSurface): Int |
| 163 | 164 |
{
|
| 164 |
if ( mSurface!!.setAsInput() )
|
|
| 165 |
if( setAsInput() )
|
|
| 165 | 166 |
{
|
| 166 | 167 |
mState.apply() |
| 167 | 168 |
GLES30.glDisable(GLES30.GL_BLEND) |
| ... | ... | |
| 179 | 180 |
// Use the Order Independent Transparency method to draw a non-postprocessed child. |
| 180 | 181 |
fun drawOIT(currTime: Long, surface: InternalOutputSurface): Int |
| 181 | 182 |
{
|
| 182 |
if (mSurface!!.setAsInput())
|
|
| 183 |
if( setAsInput() )
|
|
| 183 | 184 |
{
|
| 184 | 185 |
mState.apply() |
| 185 | 186 |
if (mLastTime==0L) mLastTime = currTime |
| ... | ... | |
| 195 | 196 |
// return the total number of render calls issued |
| 196 | 197 |
fun draw(currTime: Long, surface: InternalOutputSurface): Int |
| 197 | 198 |
{
|
| 198 |
if (mSurface!!.setAsInput())
|
|
| 199 |
if( setAsInput() )
|
|
| 199 | 200 |
{
|
| 200 | 201 |
mState.apply() |
| 201 | 202 |
if (mLastTime==0L) mLastTime = currTime |
| ... | ... | |
| 514 | 515 |
|
| 515 | 516 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 516 | 517 |
/** |
| 517 |
* Returns the surface this object gets rendered to. |
|
| 518 |
* |
|
| 519 |
* @return The InternalSurface contained in the Node (if a leaf), or the FBO (if an internal Node) |
|
| 518 |
* Sets the surface this object gets rendered to as rendering input. |
|
| 520 | 519 |
*/ |
| 521 |
var mSurface: InternalSurface? = null |
|
| 522 |
get() = if (mChildren.numChildren==0) field else mData.mFBO |
|
| 520 |
fun setAsInput(): Boolean |
|
| 521 |
{
|
|
| 522 |
return (if (mChildren.numChildren==0) mSurface!!.setAsInput() else mData.mFBO!!.setAsInput()) |
|
| 523 |
} |
|
| 523 | 524 |
|
| 524 | 525 |
////////////////////////////////////////////////////////////////////////////////////////////////// |
| 525 | 526 |
/** |
| src/main/java/org/distorted/library/main/InternalOutputSurface.kt | ||
|---|---|---|
| 352 | 352 |
{
|
| 353 | 353 |
val node = children.getChild(j) |
| 354 | 354 |
|
| 355 |
if (node.mSurface!!.setAsInput())
|
|
| 355 |
if( node.setAsInput() )
|
|
| 356 | 356 |
{
|
| 357 | 357 |
buffer.setAsOutput() |
| 358 | 358 |
numRenders += queue.preprocess(buffer, node, buffer.mDistance, buffer.mMipmap, buffer.mProjectionMatrix) |
| ... | ... | |
| 360 | 360 |
} |
| 361 | 361 |
numRenders += queue.postprocess(buffer) |
| 362 | 362 |
|
| 363 |
if (oit)
|
|
| 363 |
if( oit )
|
|
| 364 | 364 |
{
|
| 365 | 365 |
numRenders += oitBuild(time, buffer, fbo) |
| 366 | 366 |
GLES31.glMemoryBarrier(GLES31.GL_SHADER_STORAGE_BARRIER_BIT or GLES31.GL_ATOMIC_COUNTER_BARRIER_BIT) |
Also available in: Unified diff
bugfix. DistortedNodes work now.