Revision ed5bf324
Added by Leszek Koltunski about 7 years ago
src/main/java/org/distorted/library/EffectQueuePostprocess.java | ||
---|---|---|
49 | 49 |
private static final int NUM_CACHE = 0; |
50 | 50 |
private static final int INDEX = EffectTypes.POSTPROCESS.ordinal(); |
51 | 51 |
|
52 |
private static final FloatBuffer mQuadPositions, mQuadTextureNor, mQuadTextureInv;
|
|
52 |
private static final FloatBuffer mQuadPositions, mQuadTexture; |
|
53 | 53 |
|
54 | 54 |
static |
55 | 55 |
{ |
... | ... | |
58 | 58 |
|
59 | 59 |
float[] position = { -0.5f, -0.5f, -0.5f, 0.5f, 0.5f,-0.5f, 0.5f, 0.5f }; |
60 | 60 |
float[] textureNor= { 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f }; |
61 |
float[] textureInv= { 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f }; |
|
62 | 61 |
|
63 | 62 |
mQuadPositions = ByteBuffer.allocateDirect(POS_DATA_SIZE*dataLength*bytes_per_float).order(ByteOrder.nativeOrder()).asFloatBuffer(); |
64 | 63 |
mQuadPositions.put(position).position(0); |
65 |
mQuadTextureNor= ByteBuffer.allocateDirect(TEX_DATA_SIZE*dataLength*bytes_per_float).order(ByteOrder.nativeOrder()).asFloatBuffer(); |
|
66 |
mQuadTextureNor.put(textureNor).position(0); |
|
67 |
mQuadTextureInv= ByteBuffer.allocateDirect(TEX_DATA_SIZE*dataLength*bytes_per_float).order(ByteOrder.nativeOrder()).asFloatBuffer(); |
|
68 |
mQuadTextureInv.put(textureInv).position(0); |
|
64 |
mQuadTexture= ByteBuffer.allocateDirect(TEX_DATA_SIZE*dataLength*bytes_per_float).order(ByteOrder.nativeOrder()).asFloatBuffer(); |
|
65 |
mQuadTexture.put(textureNor).position(0); |
|
69 | 66 |
} |
70 | 67 |
|
71 | 68 |
private static DistortedFramebuffer mPostBuffer = new DistortedFramebuffer(true,DistortedSurface.TYPE_SYST,1,1); |
... | ... | |
288 | 285 |
for(int i=0; i<=radius; i++) mOffsets[i] = offsetsCache[offset+i]/h; |
289 | 286 |
GLES30.glUniform1fv( mOffsets1H ,radius+1, mOffsets,0); |
290 | 287 |
GLES30.glVertexAttribPointer(mBlur1Program.mAttribute[0], POS_DATA_SIZE, GLES30.GL_FLOAT, false, 0, mQuadPositions); |
291 |
GLES30.glVertexAttribPointer(mBlur1Program.mAttribute[1], TEX_DATA_SIZE, GLES30.GL_FLOAT, false, 0, mQuadTextureInv);
|
|
288 |
GLES30.glVertexAttribPointer(mBlur1Program.mAttribute[1], TEX_DATA_SIZE, GLES30.GL_FLOAT, false, 0, mQuadTexture); |
|
292 | 289 |
GLES30.glDrawArrays(GLES30.GL_TRIANGLE_STRIP, 0, 4); |
293 | 290 |
|
294 | 291 |
// vertical blur |
... | ... | |
305 | 302 |
for(int i=0; i<=radius; i++) mOffsets[i] = offsetsCache[offset+i]/w; |
306 | 303 |
GLES30.glUniform1fv( mOffsets2H ,radius+1, mOffsets,0); |
307 | 304 |
GLES30.glVertexAttribPointer(mBlur2Program.mAttribute[0], POS_DATA_SIZE, GLES30.GL_FLOAT, false, 0, mQuadPositions); |
308 |
GLES30.glVertexAttribPointer(mBlur2Program.mAttribute[1], TEX_DATA_SIZE, GLES30.GL_FLOAT, false, 0, mQuadTextureInv);
|
|
305 |
GLES30.glVertexAttribPointer(mBlur2Program.mAttribute[1], TEX_DATA_SIZE, GLES30.GL_FLOAT, false, 0, mQuadTexture); |
|
309 | 306 |
GLES30.glDrawArrays(GLES30.GL_TRIANGLE_STRIP, 0, 4); |
310 | 307 |
} |
311 | 308 |
|
Also available in: Unified diff
Merging blurred surfaces mostly ok now (blurred image still appears a bit shifted down for some reason)