Масштабирование вида поверхности OpenGL для различных точек на дюйм

У меня есть устройство с разрешением 800x480. Когда я создаю GLSurfaceView, я получаю вызов onSurfaceChanged с 533x320 (очевидно, с примененным модификатором 1.5 HDPI), и поверхность масштабируется. Поэтому, когда я рисую линию толщиной в 1 пиксель, это выглядит очень плохо, и у меня не может быть точного рендеринга.

Я хочу иметь поверхность с собственным разрешением (800x480).

Представление создается таким образом (как в примерах NDK OpenGL) в Activity onCreate :

    this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON |
            WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
            WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
            WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);

    view = new MyGLSurfaceView(this);
    setContentView(view);

Я не использую макеты и т. Д.

8
задан Mark 7 February 2012 в 18:38
поделиться