EGL看起来是历史上记录最差的Khronos项目,我实际上找不到关于这个项目的具体信息,但看起来很有希望,最后还有GLUT / FreeGlut的标准化替代方案。
我的观点是,假设我想在Linux桌面上的窗口或没有窗口(没有装饰)的情况下为我的应用程序创建一个EGL上下文,作为程序员我应该参考获取该EGL上下文?例如,如果我使用QT,QT是否应该实现EGL? Xorg的?自己?
答案 0 :(得分:2)
Mesa的EGL实现似乎有效。
我在X11和Win32上使用SDL 1.2(至少包括Mesa 10.4.7)以获得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