always (re-)set VertexAttribArray state, solves issue with gl hanging on S3

This commit is contained in:
Hannes Janetzek 2012-11-19 14:21:04 +01:00
parent adc808f505
commit 64c56ce7df
3 changed files with 31 additions and 28 deletions

View File

@ -91,16 +91,16 @@ public final class LineRenderer {
GLES20.glUseProgram(lineProgram[mode]);
int va = hLineVertexPosition[mode];
if (!GLRenderer.vertexArray[va]) {
GLES20.glEnableVertexAttribArray(va);
GLRenderer.vertexArray[va] = true;
}
//if (!GLRenderer.vertexArray[va]) {
GLES20.glEnableVertexAttribArray(va);
// GLRenderer.vertexArray[va] = true;
//}
va = hLineTexturePosition[mode];
if (!GLRenderer.vertexArray[va]) {
GLES20.glEnableVertexAttribArray(va);
GLRenderer.vertexArray[va] = true;
}
//if (!GLRenderer.vertexArray[va]) {
GLES20.glEnableVertexAttribArray(va);
// GLRenderer.vertexArray[va] = true;
//}
// GLES20.glEnableVertexAttribArray(hLineVertexPosition[mode]);
// GLES20.glEnableVertexAttribArray(hLineTexturePosition[mode]);
@ -215,8 +215,8 @@ public final class LineRenderer {
}
// GLES20.glDisableVertexAttribArray(hLineVertexPosition[mode]);
// GLES20.glDisableVertexAttribArray(hLineTexturePosition[mode]);
GLES20.glDisableVertexAttribArray(hLineVertexPosition[mode]);
GLES20.glDisableVertexAttribArray(hLineTexturePosition[mode]);
return l;
}

View File

@ -169,15 +169,15 @@ public final class PolygonRenderer {
glUseProgram(polygonProgram);
int va = hPolygonVertexPosition;
if (!GLRenderer.vertexArray[va]) {
GLES20.glEnableVertexAttribArray(va);
GLRenderer.vertexArray[va] = true;
}
va = va == 0 ? 1 : 0;
if (GLRenderer.vertexArray[va]) {
GLES20.glDisableVertexAttribArray(va);
GLRenderer.vertexArray[va] = false;
}
//if (!GLRenderer.vertexArray[va]) {
GLES20.glEnableVertexAttribArray(va);
// GLRenderer.vertexArray[va] = true;
//}
//va = va == 0 ? 1 : 0;
//if (GLRenderer.vertexArray[va]) {
// GLES20.glDisableVertexAttribArray(va);
// GLRenderer.vertexArray[va] = false;
//}
// GLES20.glEnableVertexAttribArray(hPolygonVertexPosition);
glVertexAttribPointer(hPolygonVertexPosition, 2, GLES20.GL_SHORT,
@ -299,7 +299,7 @@ public final class PolygonRenderer {
if (clip && first)
drawDepthClip();
// GLES20.glDisableVertexAttribArray(hPolygonVertexPosition);
GLES20.glDisableVertexAttribArray(hPolygonVertexPosition);
return l;
}

View File

@ -98,16 +98,16 @@ public final class TextureRenderer {
GLES20.glUseProgram(mTextureProgram);
int va = hTextureTexCoord;
if (!GLRenderer.vertexArray[va]) {
GLES20.glEnableVertexAttribArray(va);
GLRenderer.vertexArray[va] = true;
}
//if (!GLRenderer.vertexArray[va]) {
GLES20.glEnableVertexAttribArray(va);
// GLRenderer.vertexArray[va] = true;
//}
va = hTextureVertex;
if (!GLRenderer.vertexArray[va]) {
GLES20.glEnableVertexAttribArray(va);
GLRenderer.vertexArray[va] = true;
}
//if (!GLRenderer.vertexArray[va]) {
GLES20.glEnableVertexAttribArray(va);
// GLRenderer.vertexArray[va] = true;
//}
TextureLayer tl = (TextureLayer) layer;
@ -155,6 +155,9 @@ public final class TextureRenderer {
// GlUtils.checkGlError("< draw texture");
GLES20.glDisableVertexAttribArray(hTextureVertex);
GLES20.glDisableVertexAttribArray(hTextureTexCoord);
return layer.next;
}
}