Я делаю две вещи в своих приложениях. Во-первых, измените эту строку в файле манифеста:
<activity android:name=".YourActivity" android:label="@string/app_name" android:configChanges="keyboardHidden|orientation">
Это остановило его от повторной инициализации всего при вращении.
Во-вторых, переопределите эту функцию в своем производном классе GLSurfaceView.Renderer:
public void onSurfaceChanged(GL10 gl10, int width, int height)
{
gl10.viewport(0, 0, width, height);
//setup your matrices here
}
Это настроит ваш порт просмотра, но вам придется обновить там и свои матрицы, чтобы учесть новую геометрию экрана. Вам на самом деле не нужно добавлять дополнительное вращение к вашим матрицам, просто переустановите матрицу проекта в методе onSurfaceChanged.
НТН.