Revision 5c604561
Added by Leszek Koltunski about 7 years ago
src/main/java/org/distorted/examples/feedback/FeedbackRenderer.java | ||
---|---|---|
42 | 42 |
private final int BYTESFLOAT = 4; |
43 | 43 |
private final int POSITION = 3; |
44 | 44 |
|
45 |
private final boolean USEPOINTS=true;
|
|
45 |
private final boolean USEPOINTS=false;
|
|
46 | 46 |
|
47 | 47 |
private GLSurfaceView mView; |
48 | 48 |
private DistortedProgram mFeedbackProgram; |
... | ... | |
68 | 68 |
|
69 | 69 |
GLES30.glEnable(GLES30.GL_RASTERIZER_DISCARD); |
70 | 70 |
GLES30.glBeginTransformFeedback( USEPOINTS ? GLES30.GL_POINTS : GLES30.GL_TRIANGLES); |
71 |
GLES30.glDrawArrays( USEPOINTS ? GLES30.GL_POINTS : GLES30.GL_TRIANGLE_STRIP, 0, mVertices);
|
|
71 |
GLES30.glDrawArrays( USEPOINTS ? GLES30.GL_POINTS : GLES30.GL_TRIANGLES, 0, mVertices);
|
|
72 | 72 |
|
73 | 73 |
int error = GLES30.glGetError(); |
74 | 74 |
|
... | ... | |
81 | 81 |
GLES30.glDisable(GLES30.GL_RASTERIZER_DISCARD); |
82 | 82 |
GLES30.glFlush(); |
83 | 83 |
|
84 |
int numVertices = 3*(mVertices); |
|
85 |
|
|
86 |
Buffer mappedBuffer = GLES30.glMapBufferRange(GLES30.GL_TRANSFORM_FEEDBACK_BUFFER, 0, numVertices*POSITION*BYTESFLOAT, GLES30.GL_MAP_READ_BIT); |
|
84 |
Buffer mappedBuffer = GLES30.glMapBufferRange(GLES30.GL_TRANSFORM_FEEDBACK_BUFFER, 0, mVertices*POSITION*BYTESFLOAT, GLES30.GL_MAP_READ_BIT); |
|
87 | 85 |
FloatBuffer fb = ((ByteBuffer) mappedBuffer).order(ByteOrder.nativeOrder()).asFloatBuffer(); |
88 | 86 |
String msg = ""; |
89 | 87 |
|
90 |
for(int i=0; i<numVertices*POSITION; i++) msg += (" "+fb.get(i));
|
|
88 |
for(int i=0; i<mVertices*POSITION; i++) msg += (" "+fb.get(i)); |
|
91 | 89 |
|
92 | 90 |
android.util.Log.d( "Feedback", msg); |
93 | 91 |
|
... | ... | |
132 | 130 |
android.util.Log.e("Feedback", "exception creating feedback program: "+ex.getMessage()); |
133 | 131 |
} |
134 | 132 |
|
135 |
float[] floatData = { 1.0f,4.0f,9.0f, 16.0f,25.0f,36.0f, 49.0f,64.0f,81.0f, 100.0f,121.0f,144.0f}; |
|
133 |
float[] floatData = { 1.0f, 4.0f, 9.0f, |
|
134 |
16.0f, 25.0f, 36.0f, |
|
135 |
49.0f, 64.0f, 81.0f, |
|
136 |
100.0f,121.0f,144.0f, |
|
137 |
1.0f, 4.0f, 9.0f, |
|
138 |
16.0f, 25.0f, 36.0f |
|
139 |
}; |
|
140 |
|
|
136 | 141 |
mVertices = floatData.length/POSITION; |
137 | 142 |
FloatBuffer data = ByteBuffer.allocateDirect(mVertices*POSITION*BYTESFLOAT).order(ByteOrder.nativeOrder()).asFloatBuffer(); |
138 | 143 |
data.put(floatData).position(0); |
... | ... | |
146 | 151 |
mTBO = new int[1]; |
147 | 152 |
GLES30.glGenBuffers(1, mTBO, 0); |
148 | 153 |
GLES30.glBindBuffer(GLES30.GL_TRANSFORM_FEEDBACK_BUFFER, mTBO[0]); |
149 |
GLES30.glBufferData(GLES30.GL_TRANSFORM_FEEDBACK_BUFFER, 3*(mVertices)*POSITION*BYTESFLOAT, null, GLES30.GL_STATIC_READ);
|
|
154 |
GLES30.glBufferData(GLES30.GL_TRANSFORM_FEEDBACK_BUFFER, mVertices*POSITION*BYTESFLOAT, null, GLES30.GL_STATIC_READ);
|
|
150 | 155 |
GLES30.glBindBuffer(GLES30.GL_TRANSFORM_FEEDBACK_BUFFER, 0); |
151 | 156 |
} |
152 | 157 |
} |
Also available in: Unified diff
Beginnings of support for DistortedEffects.drawPrivFeedback()