2
У меня есть класс, который определяет, следует ли рисовать квадрат или нет через логическое значение. Проблема в том, что квадрат остается, даже если логическое значение false. Мой вопрос: как удалить рисованный квадрат, если логическое значение ложное?Очистка экрана OpenGL в Android.
public void onDrawFrame(GL10 unused) {
// Draw background color
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
// Set the camera position (View matrix)
Matrix.setLookAtM(mVMatrix, 0, 0, 0, -3, 0f, 0f, 0f, 0f, 1.0f, 0.0f);
// Calculate the projection and view transformation
Matrix.multiplyMM(mMVPMatrix, 0, mProjMatrix, 0, mVMatrix, 0);
// Draw square
Matrix.setRotateM(mRotationMatrix, 0, mAngle, 0, 0, -1.0f);
// Combine the rotation matrix with the projection and camera view
Matrix.multiplyMM(mMVPMatrix, 0, mRotationMatrix, 0, mMVPMatrix, 0);
if (drawObject == true) {
mSquare.draw(mMVPMatrix);
}
// Draw Square
}
Является ли код, который рисует квадрат в методе 'draw()', который вы вызываете, или где комментарий 'Draw Square' есть? Я предположил в методе 'draw()', но я никогда не знаю ... – Geobits
Да, в методе рисования. Извините, этот комментарий был неуместным. –
Вы используете 'RENDERMODE_CONTINUOUSLY' или' RENDERMODE_WHEN_DIRTY'? Если вы используете последнее - убедитесь, что 'onDrawFrame()' фактически был вызван, так как ваше логическое значение изменилось. Использование команды 'glClear()', поскольку вы должны очистить экран при вызове. – Jave