4

EGL 看起来像是有史以来记录最差的 Khronos 项目,我真的找不到关于这个项目的任何具体内容,但它看起来很有希望,最后有一个 GLUT/FreeGlut 的标准化替代方案。

我的意思是,假设我希望我的应用程序在 linux 桌面上的窗口或没有窗口(没有装饰)的情况下使用 EGL 上下文,作为获得该 EGL 上下文的程序员,我应该参考谁?例如,如果我使用 QT,是 QT 应该实现 EGL 吗?许格?我?

4

1 回答 1

2

Mesa的 EGL 实现似乎有效。

我在 X11 和 Win32(至少包括 Mesa 10.4.7)上将它与 SDL 1.2 一起使用以获得 OpenGL ES 1.1 和 2.0 上下文:

SDL_Surface* display = SDL_SetVideoMode( ..., SDL_SWSURFACE );

SDL_SysWMinfo sysInfo;
SDL_VERSION( &sysInfo.version );
SDL_GetWMInfo( &sysInfo );

// use natDisplay with eglGetDisplay();
// use natWindow with eglCreateWindowSurface();

// X11
sysInfo.info.x11.lock_func();
NativeDisplayType natDisplay = sysInfo.info.x11.display;
NativeWindowType natWindow = sysInfo.info.x11.window;
// do EGL context init here
sysInfo.info.x11.unlock_func();

// Win32
NativeDisplayType natDisplay = GetDC(sysInfo.window);
NativeWindowType natWindow = sysInfo.window;
// do EGL context init here
于 2013-01-08T17:13:29.220 回答