Я пытаюсь выполнить рендеринг на стороне сервера для проблемы, над которой я работаю.EGL предоставляет способ определения контекста для OpenGL без необходимости использования оконной системы.Мне удалось успешно выполнить рендеринг вне экрана с помощью EGL на моем ноутбуке, но при попытке запустить код на экземпляре в digitalocean EGL не удается инициализировать.Возможность запуска этого кода на вычислительном ресурсе от облачного провайдера - один из вариантов использования, которые мне нужно поддерживать.
Я хочу знать, является ли EGL жизнеспособным подходом, но я не понимаю, почему он терпит неудачу.Требуется ли графический процессор?Это проблема с запуском на виртуальной машине?
Следующий код воспроизводит проблему, с которой я столкнулся,
#include <EGL/egl.h>
#include <assert.h>
int main(int argc, char** argv) {
EGLDisplay display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
assert(display != EGL_NO_DISPLAY);
EGLBoolean result = eglInitialize(display, NULL, NULL);
//assert(result != EGL_FALSE);
EGLint errcode = eglGetError();
assert(errcode == EGL_SUCCESS);
return 0;
}
Код ошибки, возвращаемый после вызова eglInitialize: EGL_NOT_INITIALIZED и из заголовка, это означает, что «EGL не инициализирован или не может быть инициализирован для указанного подключения дисплея EGL».Отображение по умолчанию возвращается без ошибок, поэтому я предполагаю, что проблема заключается в том, что он не может быть инициализирован.Поэтому я пытаюсь понять, почему не было инициализировано.