Revision e78a30fd
Added by Leszek Koltunski about 7 years ago
src/main/java/org/distorted/library/DistortedEffects.java | ||
---|---|---|
38 | 38 |
import org.distorted.library.type.Static3D; |
39 | 39 |
|
40 | 40 |
import java.io.InputStream; |
41 |
import java.nio.Buffer; |
|
41 | 42 |
import java.nio.ByteBuffer; |
42 | 43 |
import java.nio.ByteOrder; |
43 | 44 |
import java.nio.FloatBuffer; |
... | ... | |
140 | 141 |
//android.util.Log.e("Effects", "vertHeader= "+mainVertHeader); |
141 | 142 |
//android.util.Log.e("Effects", "fragHeader= "+mainFragHeader); |
142 | 143 |
|
143 |
mMainProgram = new DistortedProgram(mainVertStream,mainFragStream, mainVertHeader, mainFragHeader, Distorted.GLSL); |
|
144 |
String[] feedback = { "v_Position" }; |
|
145 |
|
|
146 |
mMainProgram = new DistortedProgram(mainVertStream,mainFragStream, mainVertHeader, mainFragHeader, Distorted.GLSL, feedback); |
|
144 | 147 |
|
145 | 148 |
int mainProgramH = mMainProgram.getProgramHandle(); |
146 | 149 |
EffectQueueFragment.getUniforms(mainProgramH); |
... | ... | |
306 | 309 |
GLES30.glVertexAttribPointer(mMainProgram.mAttribute[1], MeshObject.NORMAL_DATA_SIZE , GLES30.GL_FLOAT, false, 0, 0); |
307 | 310 |
GLES30.glBindBuffer(GLES30.GL_ARRAY_BUFFER, mesh.mTexVBO[0]); |
308 | 311 |
GLES30.glVertexAttribPointer(mMainProgram.mAttribute[2], MeshObject.TEX_DATA_SIZE , GLES30.GL_FLOAT, false, 0, 0); |
312 |
|
|
313 |
//GLES30.glBindBufferBase(GLES30.GL_TRANSFORM_FEEDBACK_BUFFER, 0, mesh.mPosTBO[0]); |
|
314 |
|
|
315 |
// GLES30.glBeginTransformFeedback(GLES30.GL_TRIANGLES); |
|
309 | 316 |
GLES30.glDrawArrays(GLES30.GL_TRIANGLE_STRIP, 0, mesh.dataLength); |
317 |
// GLES30.glEndTransformFeedback(); |
|
318 |
// GLES30.glFlush(); |
|
319 |
|
|
310 | 320 |
GLES30.glBindBuffer(GLES30.GL_ARRAY_BUFFER, 0 ); |
321 |
/* |
|
322 |
int len = mesh.dataLength*MeshObject.BYTES_PER_FLOAT*MeshObject.POSITION_DATA_SIZE; |
|
323 |
|
|
324 |
Buffer mappedBuffer = GLES30.glMapBufferRange(GLES30.GL_TRANSFORM_FEEDBACK_BUFFER, 0, len, GLES30.GL_MAP_READ_BIT); |
|
325 |
FloatBuffer fb = ((ByteBuffer) mappedBuffer).order(ByteOrder.nativeOrder()).asFloatBuffer(); |
|
326 |
FloatBuffer bb = mesh.mMeshPositions; |
|
327 |
|
|
328 |
String msgB = "BEFORE: ", msgA = "AFTER : "; |
|
329 |
for(int d=0; d<mesh.dataLength; d++) |
|
330 |
{ |
|
331 |
msgB+="("+(2*halfW*bb.get(3*d+0))+","+(2*halfH*bb.get(3*d+1))+","+(2*halfZ*bb.get(3*d+2))+")"; |
|
332 |
msgA+="("+fb.get(3*d+0)+","+fb.get(3*d+1)+","+fb.get(3*d+2)+")"; |
|
333 |
} |
|
334 |
android.util.Log.d( "Feedback", msgB); |
|
335 |
android.util.Log.d( "Feedback", msgA); |
|
311 | 336 |
|
312 | 337 |
/// DEBUG ONLY ////// |
313 |
// displayBoundingRect(halfInputW, halfInputH, halfZ, df, mM.getMVP(), mesh.getBoundingVertices() );
|
|
338 |
// displayBoundingRect(halfW, halfH, halfZ, surface, mM.getMVP(), fb, currTime );
|
|
314 | 339 |
/// END DEBUG /////// |
340 |
|
|
341 |
GLES30.glUnmapBuffer(GLES30.GL_TRANSFORM_FEEDBACK_BUFFER); |
|
342 |
*/ |
|
315 | 343 |
} |
316 | 344 |
|
317 | 345 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
Also available in: Unified diff
Progress with Transform Feedback.