在 Android NDK 中创建以半分辨率呈现的全屏应用程序的最佳方法是什么?

What is the best way for creating a fullscreen app in Android NDK which renders in half resolution?

初始化我的 EGL\GLES 上下文时,我使用全屏。然后,我的应用程序以一半的分辨率呈现,最后使用简单的绘图将其显示到屏幕上。

但是,出于性能原因,是否可以在任意分辨率(例如全分辨率的一半)中初始化我的上下文并让 driver\hardware 处理 blit 到全屏?

您可以为此使用 android hardware scaler

您使用它的方式取决于您是从 java 还是本机 C++ 代码初始化 EGL:

// java
surfaceView.getHolder().setFixedSize(1280, 720);

// native
int32_t ret = ANativeWindow_setBuffersGeometry(window, 1280, 720, 0);

与使用渲染目标相比,使用硬件缩放器通常可以提供更好的缩放质量、更好的性能和更少的能源使用。