Я получаю некоторые странные значения для ширины / высоты в следующем коде, в результате чего получается либо растянутая картинка, либо картинка вообще отсутствует.
public void onSurfaceChanged(GL10 gl, int w, int h) {
screenHeight = h; // actual height in pixels
screenWidth = w; // actual width in pixels
worldWidth = 20; // width of the projection (20 units)
worldHeight = (int) (worldWidth * (screenHeight / screenWidth));
gl.glMatrixMode(GL10.GL_PROJECTION);
gl.glViewport(0, 0, screenWidth, screenHeight); //new viewport
gl.glLoadIdentity();
GLU.gluOrtho2D(gl, 0, worldWidth, 0, worldHeight); set the 2D projection
Итак, я зарегистрировал переменные, они из портретного режима:
screenHeight = 455
screenWidth = 320
worldHeight = 20
worldWidth = 20
, в то время как (worldWidth * (screenHeight / screenWidth)
должно дать 20 * 455/320 = 28 для worldHeight.
Это становится еще более странным в ландшафтном режиме, где worldHeight внезапно становится равным 0.
Что я делаю не так?