У меня есть очень простой подкласс GLRenderer, который рисует кучу полигонов на экране. На моем Nexus One с установленным 2.1 я вижу именно то, что ожидаю. На моем G1 с установленным 1.6 у меня отображается только glClearColor. Я могу изменить цвет и увидеть, что моя функция onDrawFrame хотя бы частично функционирует.
Я не могу понять хорошее объяснение, поэтому я вставляю свой код onDrawFrame:
public void onDrawFrame(GL10 gl) {
gl.glClearColor(1.0f, 1.00f, 1.0f, 1.0f);
gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
gl.glLoadIdentity();
gl.glScalef(zoomLevel, zoomLevel, 1.0f);
gl.glTranslatef(offsetX, offsetY, -1);
gl.glVertexPointer(3, GL10.GL_FLOAT, 0, boothVerticies);
int i = 0;
for (Polygon b : allPolygons) {
if (b.indicies != null) {
gl.glColor4f(0.6f, 0.6f, 0.6f, 1.0f);
gl.glDrawElements(GL10.GL_TRIANGLE_FAN, b.numberOfVerticies, GL10.GL_UNSIGNED_SHORT, b.indicies);
gl.glColor4f(0.0f, 0.0f, 0.0f, 1.0f);
gl.glDrawElements(GL10.GL_LINE_LOOP, b.numberOfVerticies, GL10.GL_UNSIGNED_SHORT, b.indicies);
if (i++ > 20) break;
}
}
}
Моя структура Polygon имеет ShortBuffer, называемый индикаторами, а numberOfVerticies отслеживает количество точек в многоугольнике.
У кого-нибудь есть идеи, почему это может хорошо работать на моем Nexus One, но не на G1?