2013-01-08 53 views
3

EGL看起來像有史以來記錄最差的Khronos項目,我從字面上找不到任何關於這個項目的具體內容,但它看起來很有前途,最後還有一個GLUT/FreeGlut的標準化替代品。我的觀點是,假設我需要一個EGL上下文爲我的應用程序在Linux桌面上的窗口或沒有窗口(沒有裝飾),作爲我應該參考獲取該EGL上下文的程序員?例如,如果我使用QT,QT是否應該實現EGL? Xorg的?我?從程序員的角度來實現EGL是可能的嗎?

+3

眼下EGL主要與使用移動設備上的OpenGL ES,例如Android和iPhone。有些項目可以在桌面系統上使用OpenGL ES,我認爲即使是使用完整OpenGL和EGL的項目......您可能會發現這個問題有趣:http://stackoverflow.com/q/7017239/27130 –

回答

2

Mesa的EGL實現似乎工作。

我已經與SDL 1.2用它在X11和Win32(至少直至幷包括梅薩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 
相關問題