У меня есть метод, который должен рисовать один барабан игрового автомата, но он, кажется, не рисует ничего, что я вижу:
void drawreel(GL10 gl) {
float increment = 0.03f;
for (float angle = 0; angle < 2.0f * Math.PI; angle += increment) {
FloatBuffer vfb = MyDirectBuffer.getFloatBuffer(100);
FloatBuffer tfb = MyDirectBuffer.getFloatBuffer(100);
FloatBuffer nfb = MyDirectBuffer.getFloatBuffer(100);
float y = (float) Math.sin(angle);
float z = (float) Math.cos(angle);
float texturey = (float) (1.0f - angle / (2.0f * Math.PI));
texturey = getYtexture(texturey);
tfb.put(0);
tfb.put(texturey);
nfb.put(0);
nfb.put(y);
nfb.put(z);
vfb.put(-0.39f);
vfb.put(y);
vfb.put(z);
tfb.put(1);
tfb.put(texturey);
nfb.put(0);
nfb.put(y);
nfb.put(z);
vfb.put(0.39f);
vfb.put(y);
vfb.put(z);
float nexty = (float) Math.sin(angle + increment);
float nextz = (float) Math.cos(angle + increment);
texturey = (float) (texturey - increment / (2 * Math.PI));
tfb.put(1);
tfb.put(texturey);
nfb.put(0);
nfb.put(nexty);
nfb.put(nextz);
vfb.put(0.39f);
vfb.put(nexty);
vfb.put(nextz);
tfb.put(0);
tfb.put(texturey);
nfb.put(0);
nfb.put(nexty);
nfb.put(nextz);
vfb.put(-0.39f);
vfb.put(nexty);
vfb.put(nextz);
gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
//gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
//gl.glEnableClientState(GL10.GL_NORMAL_ARRAY);
gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, tfb);
gl.glNormalPointer(GL10.GL_FLOAT, 0, nfb);
gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vfb);
gl.glDrawArrays(GL10.GL_TRIANGLE_FAN, 0, 4);
int error = gl.glGetError();
gl.glDisableClientState(GL10.GL_NORMAL_ARRAY);
gl.glDisableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
}
}
Кроме того, вот еще один метод, который вызывается:
static FloatBuffer getFloatBuffer(int numFloats)
{
ByteBuffer buffer = ByteBuffer.allocateDirect(numFloats);
buffer.order(ByteOrder.nativeOrder());
FloatBuffer newFloatBuffer = buffer.asFloatBuffer();
return newFloatBuffer;
}
Я вызвал glGetError, и он, кажется, всегда возвращает 0, что указывает на отсутствие ошибки.
Кто-нибудь знает, как я могу понять, почему ничто, кажется, не рисует в drawreel?
Спасибо.