Revision 644c21f2
Added by Leszek Koltunski over 5 years ago
| src/main/java/org/distorted/library/effectqueue/EffectQueue.java | ||
|---|---|---|
| 108 | 108 |
|
| 109 | 109 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 110 | 110 |
|
| 111 |
public static void compute(EffectQueue[] queues, long currTime, float halfW, float halfH, float halfZ )
|
|
| 111 |
public static void compute(EffectQueue[] queues, long currTime) |
|
| 112 | 112 |
{
|
| 113 | 113 |
((EffectQueueMatrix )queues[0]).compute(currTime); |
| 114 |
((EffectQueueVertex )queues[1]).compute(currTime,halfW,halfH,halfZ);
|
|
| 115 |
((EffectQueueFragment )queues[2]).compute(currTime,halfW,halfH,halfZ);
|
|
| 114 |
((EffectQueueVertex )queues[1]).compute(currTime); |
|
| 115 |
((EffectQueueFragment )queues[2]).compute(currTime); |
|
| 116 | 116 |
((EffectQueuePostprocess)queues[3]).compute(currTime); |
| 117 | 117 |
} |
| 118 | 118 |
|
| src/main/java/org/distorted/library/effectqueue/EffectQueueFragment.java | ||
|---|---|---|
| 54 | 54 |
|
| 55 | 55 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 56 | 56 |
|
| 57 |
void compute(long currTime,float halfX, float halfY, float halfZ)
|
|
| 57 |
void compute(long currTime) |
|
| 58 | 58 |
{
|
| 59 | 59 |
if( currTime==mTime ) return; |
| 60 | 60 |
if( mTime==0 ) mTime = currTime; |
| ... | ... | |
| 68 | 68 |
{
|
| 69 | 69 |
EffectMessageSender.newMessage(mEffects[i]); |
| 70 | 70 |
} |
| 71 |
|
|
| 72 |
mUniforms[NUM_UNIFORMS*i+5] -= halfX; |
|
| 73 |
mUniforms[NUM_UNIFORMS*i+6] -= halfY; |
|
| 74 |
mUniforms[NUM_UNIFORMS*i+7] -= halfZ; |
|
| 75 | 71 |
} |
| 76 | 72 |
|
| 77 | 73 |
mTime = currTime; |
| src/main/java/org/distorted/library/effectqueue/EffectQueueVertex.java | ||
|---|---|---|
| 56 | 56 |
|
| 57 | 57 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 58 | 58 |
|
| 59 |
void compute(long currTime,float halfX, float halfY, float halfZ)
|
|
| 59 |
void compute(long currTime) |
|
| 60 | 60 |
{
|
| 61 | 61 |
if( currTime==mTime ) return; |
| 62 | 62 |
if( mTime==0 ) mTime = currTime; |
| ... | ... | |
| 70 | 70 |
{
|
| 71 | 71 |
EffectMessageSender.newMessage(mEffects[i]); |
| 72 | 72 |
} |
| 73 |
|
|
| 74 |
mUniforms[NUM_UNIFORMS*i+5] -= halfX; |
|
| 75 |
mUniforms[NUM_UNIFORMS*i+6] -= halfY; |
|
| 76 |
mUniforms[NUM_UNIFORMS*i+7] -= halfZ; |
|
| 77 | 73 |
} |
| 78 | 74 |
|
| 79 | 75 |
mTime = currTime; |
| src/main/java/org/distorted/library/main/DistortedLibrary.java | ||
|---|---|---|
| 430 | 430 |
|
| 431 | 431 |
static void drawPrivOIT(DistortedEffects effects, MeshBase mesh, InternalOutputSurface surface, long currTime) |
| 432 | 432 |
{
|
| 433 |
float halfX = mesh.getStretchX() / 2.0f; |
|
| 434 |
float halfY = mesh.getStretchY() / 2.0f; |
|
| 435 |
float halfZ = mesh.getStretchZ() / 2.0f; |
|
| 436 |
|
|
| 437 | 433 |
EffectQueue[] queues = effects.getQueues(); |
| 438 | 434 |
|
| 439 |
EffectQueue.compute(queues, currTime, halfX, halfY, halfZ );
|
|
| 435 |
EffectQueue.compute(queues, currTime); |
|
| 440 | 436 |
GLES31.glViewport(0, 0, surface.mWidth, surface.mHeight ); |
| 441 | 437 |
|
| 442 | 438 |
DistortedLibrary.mMainOITProgram.useProgram(); |
| ... | ... | |
| 445 | 441 |
GLES31.glUniform1ui(DistortedLibrary.mMainOITNumRecordsH, (int)(DistortedLibrary.mBufferSize*surface.mWidth*surface.mHeight) ); |
| 446 | 442 |
mesh.bindVertexAttribs(DistortedLibrary.mMainOITProgram); |
| 447 | 443 |
|
| 444 |
float halfX = mesh.getStretchX() / 2.0f; |
|
| 445 |
float halfY = mesh.getStretchY() / 2.0f; |
|
| 446 |
float halfZ = mesh.getStretchZ() / 2.0f; |
|
| 448 | 447 |
float inflate = mesh.getInflate(); |
| 449 | 448 |
int width = surface.mWidth; |
| 450 | 449 |
int height = surface.mHeight; |
| ... | ... | |
| 467 | 466 |
|
| 468 | 467 |
static void drawPriv(DistortedEffects effects, MeshBase mesh, InternalOutputSurface surface, long currTime) |
| 469 | 468 |
{
|
| 470 |
float halfX = mesh.getStretchX() / 2.0f; |
|
| 471 |
float halfY = mesh.getStretchY() / 2.0f; |
|
| 472 |
float halfZ = mesh.getStretchZ() / 2.0f; |
|
| 473 |
|
|
| 474 | 469 |
EffectQueue[] queues = effects.getQueues(); |
| 475 | 470 |
|
| 476 |
EffectQueue.compute(queues, currTime, halfX, halfY, halfZ );
|
|
| 471 |
EffectQueue.compute(queues, currTime); |
|
| 477 | 472 |
GLES31.glViewport(0, 0, surface.mWidth, surface.mHeight ); |
| 478 | 473 |
|
| 479 | 474 |
DistortedLibrary.mMainProgram.useProgram(); |
| 480 | 475 |
GLES31.glUniform1i(DistortedLibrary.mMainTextureH, 0); |
| 481 | 476 |
mesh.bindVertexAttribs(DistortedLibrary.mMainProgram); |
| 482 | 477 |
|
| 478 |
float halfX = mesh.getStretchX() / 2.0f; |
|
| 479 |
float halfY = mesh.getStretchY() / 2.0f; |
|
| 480 |
float halfZ = mesh.getStretchZ() / 2.0f; |
|
| 483 | 481 |
float inflate = mesh.getInflate(); |
| 484 | 482 |
int width = surface.mWidth; |
| 485 | 483 |
int height = surface.mHeight; |
Also available in: Unified diff
Moving the Vertex and Fragment centers of effect to the center of the Mesh.