我正在尝试为我正在处理的问题进行服务器端渲染。EGL提供了一种定义OpenGL上下文而不需要窗口系统的方法。我已经成功地在我的笔记本电脑上使用EGL进行离屏渲染,但是当我尝试在digitalocean实例上运行代码时,EGL无法初始化。能够在云计算资源上运行此代码是我需要支持的用例之一。
我想知道EGL是否是可行的方法,但我不明白为什么它失败了。它需要GPU吗?这是在虚拟机上运行的问题吗?
以下代码重现了我遇到的问题:
调用eglInitialize后返回的错误代码是EGL_NOT_INITIALIZED,从头文件中得知这意味着“指定的EGL显示连接未被初始化或无法初始化。”默认显示没有错误返回,因此我认为问题可能是它无法被初始化。所以我正在努力找出为什么它没有被初始化。
我想知道EGL是否是可行的方法,但我不明白为什么它失败了。它需要GPU吗?这是在虚拟机上运行的问题吗?
以下代码重现了我遇到的问题:
#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显示连接未被初始化或无法初始化。”默认显示没有错误返回,因此我认为问题可能是它无法被初始化。所以我正在努力找出为什么它没有被初始化。