Я использую glsurfaceview и его рендерер для отображения GLES на весь экран устройства. Это работает, как и ожидалось.
Теперь я хочу добавить возможность «увеличения» выходного размера. Под этим я подразумеваю (например) рендеринг GLES в области просмотра на четверть экрана, а затем растягивание на весь экран при отображении. Это позволит более медленным шейдерам рендериться быстрее с небольшой блочностью.
В настоящее время я могу уменьшить размер GLES, изменив glViewPort, и он отображается в левом нижнем углу экрана. Как я могу растянуть эту нижнюю четверть, чтобы заполнить весь экран?
Большое спасибо за любые советы/ответы.
Решение после еще нескольких проб и ошибок и поиска в Google. Это делается для рендеринга изображения размером в четверть на весь экран.
Сразу после создания glsurfaceview;
glSurfaceView.getHolder().setFixedSize(glWidth,glHeight);
glHeight и glWidth — это внутренний размер рендеринга GLES. Таким образом, чтобы отобразить изображение на 1/4 экрана, используйте glWidth=screenWidth/2 и glHeight=screenHeight/2.
А затем в onSurfaceChanged установите glViewPort;
glViewport(0, 0, screenWidth/2, screenHeight/2);
Бинго. Более быстрый рендеринг (но 2x2 блочных пикселя).
Надеюсь, что это поможет кому-то еще с этой проблемой.