Опытный
 
Профиль
Группа: Участник
Сообщений: 315
Регистрация: 1.11.2005
Где: Воронеж
Репутация: нет Всего: нет
|
Здравствуйте. Не отображается цвет. Выводится белый прямоугольник, а по идее должен быть разноцветным. Код | public class MyRenderer implements GLSurfaceView.Renderer { private Context context; private int vboId; private int texId; public MyRenderer(Context context) { this.context = context; } @Override protected void finalize() { int[] buffers = { this.vboId }; GLES20.glDeleteBuffers(1, buffers, 0); } @Override public void onDrawFrame(GL10 gl) { GL11 gl11 = (GL11)gl; GLES20.glClearColor(0f, 0f, 0f, 1f); GLES20.glClear(GL10.GL_COLOR_BUFFER_BIT); gl.glEnableClientState(GL10.GL_VERTEX_ARRAY); gl.glEnableClientState(GL10.GL_COLOR_ARRAY); GLES20.glBindBuffer(GLES20.GL_ARRAY_BUFFER, this.vboId); gl11.glVertexPointer(3, GL11.GL_FLOAT, 6 * 4, 0); gl11.glColorPointer(3, GL11.GL_FLOAT, 6 * 4, 12); GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4); GLES20.glBindBuffer(GLES20.GL_ARRAY_BUFFER, 0); gl.glDisableClientState(GL10.GL_VERTEX_ARRAY); gl.glDisableClientState(GL10.GL_COLOR_ARRAY); }
@Override public void onSurfaceChanged(GL10 gl, int width, int height) { GLES20.glViewport(0, 0, width, height); }
@Override public void onSurfaceCreated(GL10 gl, EGLConfig config) { createVertexBuffer(gl); } private void createVertexBuffer(GL10 gl) { float[] coords = { -0.5f, -0.5f, 0f, 0f, 0f, 1f, -0.5f, 0.5f, 0f, 0f, 1f, 1f, 0.5f, -0.5f, 0f, 1f, 0f, 1f, 0.5f, 0.5f, 0f, 1f, 1f, 1f }; int size = 6 * 4 * 4; ByteBuffer buffer = ByteBuffer.allocateDirect(size); buffer.order(ByteOrder.nativeOrder()); FloatBuffer vbo = buffer.asFloatBuffer(); vbo.put(coords); vbo.position(0); int[] buffers = new int[1]; GLES20.glGenBuffers(1, buffers, 0); this.vboId = buffers[0]; GLES20.glBindBuffer(GLES20.GL_ARRAY_BUFFER, this.vboId); GLES20.glBufferData(GLES20.GL_ARRAY_BUFFER, size, vbo, GLES20.GL_STATIC_DRAW); GLES20.glBindBuffer(GLES20.GL_ARRAY_BUFFER, 0); buffer.clear(); }
}
|
В массиве у меня сначала координаты, а потом цвета. Если пишу gl.glColor4f(1f, 0f, 0f, 1f) то цвет есть. ЗЫ Я понимаю, что раз пользую желе 2.0, то лучше бы сразу делать на шейдерах, но увы, пока не заставлю работать так, совесть не позволит перейти на шейдеры. :((( Спасибо за внимание.
|