Я использую opengles для создания собственного дисплея на Android.
У меня есть один монитор, и я хочу отобразить на нем две поверхности (первая - это Android, а вторая - мой собственный дисплей).
Примечание. Разрешение монитора (1920x1080)
.
Для этого я смог установить нестандартный размер для моего системного интерфейса Android слева (1280x1080). Так что теперь у меня есть свободное место справа (840x1080) для другого дисплея.
Мне удалось создать зеленую поверхность с этим разрешением (840x1080), проблема в том, что она идет слева, поэтому она скрывает систему Android. Я хотел бы применить перевод 1280 пикселей, чтобы он располагался справа.
Вот мой код:
const EGLint attribs[] = {
EGL_RED_SIZE, 8,
EGL_GREEN_SIZE, 8,
EGL_BLUE_SIZE, 8,
EGL_DEPTH_SIZE, 0,
EGL_NONE
};
EGLint w, h;
EGLint numConfigs;
EGLConfig config;
EGLSurface surface;
EGLContext context;
EGLDisplay display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
eglInitialize(display, NULL, NULL);
eglChooseConfig(display, attribs, &config, 1, &numConfigs);
if ((surface = eglCreateWindowSurface(display, config, s.get(), NULL)) == EGL_NO_SURFACE) {
ALOGD("initSurface() eglCreateWindowSurface failed");
return;
}
context = eglCreateContext(display, config, NULL, NULL);
eglQuerySurface(display, surface, EGL_WIDTH, &w);
eglQuerySurface(display, surface, EGL_HEIGHT, &h);
ALOGD("Surface size is w = %d h = %d", w, h);
if (eglMakeCurrent(display, surface, surface, context) == EGL_FALSE) {
ALOGD("initSurface() eglMakeCurrent failed");
return ;
}
glShadeModel(GL_FLAT);
glDisable(GL_DITHER);
glDisable(GL_SCISSOR_TEST);
glClearColor(0, 1, 0, 1);
glClear(GL_COLOR_BUFFER_BIT);
eglSwapBuffers(display, surface);
Какая функция мне нужна, чтобы применить этот перевод с открытыми окнами?