am 829a2e5b: Merge "opengl translator: fixed EGL regression"
* commit '829a2e5b9a0f3bea21c643aaf1bc5668bcb2a4c6': opengl translator: fixed EGL regression
This commit is contained in:
@@ -399,11 +399,13 @@ bool validNativeWin(EGLNativeDisplayType dpy,EGLNativeWindowType win) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool validNativeWin(EGLNativeDisplayType dpy,EGLNativeSurfaceType win) {
|
bool validNativeWin(EGLNativeDisplayType dpy,EGLNativeSurfaceType win) {
|
||||||
|
if (!win) return false;
|
||||||
return validNativeWin(dpy,win->getHwnd());
|
return validNativeWin(dpy,win->getHwnd());
|
||||||
}
|
}
|
||||||
|
|
||||||
bool validNativePixmap(EGLNativeDisplayType dpy,EGLNativeSurfaceType pix) {
|
bool validNativePixmap(EGLNativeDisplayType dpy,EGLNativeSurfaceType pix) {
|
||||||
BITMAP bm;
|
BITMAP bm;
|
||||||
|
if (!pix) return false;
|
||||||
return GetObject(pix->getBmap(), sizeof(BITMAP), (LPSTR)&bm);
|
return GetObject(pix->getBmap(), sizeof(BITMAP), (LPSTR)&bm);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -465,6 +467,7 @@ EGLNativeSurfaceType createPbufferSurface(EGLNativeDisplayType display,EglConfig
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool releasePbuffer(EGLNativeDisplayType display,EGLNativeSurfaceType pb) {
|
bool releasePbuffer(EGLNativeDisplayType display,EGLNativeSurfaceType pb) {
|
||||||
|
if (!pb) return false;
|
||||||
if(!s_wglExtProcs->wglReleasePbufferDCARB || !s_wglExtProcs->wglDestroyPbufferARB) return false;
|
if(!s_wglExtProcs->wglReleasePbufferDCARB || !s_wglExtProcs->wglDestroyPbufferARB) return false;
|
||||||
if(!s_wglExtProcs->wglReleasePbufferDCARB(pb->getPbuffer(),pb->getDC()) || !s_wglExtProcs->wglDestroyPbufferARB(pb->getPbuffer())){
|
if(!s_wglExtProcs->wglReleasePbufferDCARB(pb->getPbuffer(),pb->getDC()) || !s_wglExtProcs->wglDestroyPbufferARB(pb->getPbuffer())){
|
||||||
DWORD err = GetLastError();
|
DWORD err = GetLastError();
|
||||||
@@ -524,7 +527,7 @@ bool makeCurrent(EGLNativeDisplayType display,EglSurface* read,EglSurface* draw,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void swapBuffers(EGLNativeDisplayType display,EGLNativeSurfaceType srfc){
|
void swapBuffers(EGLNativeDisplayType display,EGLNativeSurfaceType srfc){
|
||||||
if(!SwapBuffers(srfc->getDC())) {
|
if(srfc && !SwapBuffers(srfc->getDC())) {
|
||||||
DWORD err = GetLastError();
|
DWORD err = GetLastError();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -175,6 +175,7 @@ bool validNativeWin(EGLNativeDisplayType dpy,EGLNativeWindowType win) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool validNativeWin(EGLNativeDisplayType dpy,EGLNativeSurfaceType win) {
|
bool validNativeWin(EGLNativeDisplayType dpy,EGLNativeSurfaceType win) {
|
||||||
|
if (!win) return false;
|
||||||
return validNativeWin(dpy,win->srfc());
|
return validNativeWin(dpy,win->srfc());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -183,7 +184,7 @@ bool validNativePixmap(EGLNativeDisplayType dpy,EGLNativeSurfaceType pix) {
|
|||||||
int tmp;
|
int tmp;
|
||||||
unsigned int utmp;
|
unsigned int utmp;
|
||||||
ErrorHandler handler(dpy);
|
ErrorHandler handler(dpy);
|
||||||
if(!XGetGeometry(dpy,pix->srfc(),&root,&tmp,&tmp,&utmp,&utmp,&utmp,&utmp)) return false;
|
if(!XGetGeometry(dpy,pix ? pix->srfc() : NULL,&root,&tmp,&tmp,&utmp,&utmp,&utmp,&utmp)) return false;
|
||||||
return handler.getLastError() == 0;
|
return handler.getLastError() == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -227,6 +228,7 @@ EGLNativeSurfaceType createPbufferSurface(EGLNativeDisplayType dpy,EglConfig* cf
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool releasePbuffer(EGLNativeDisplayType dis,EGLNativeSurfaceType pb) {
|
bool releasePbuffer(EGLNativeDisplayType dis,EGLNativeSurfaceType pb) {
|
||||||
|
if (!pb) return false;
|
||||||
glXDestroyPbuffer(dis,pb->srfc());
|
glXDestroyPbuffer(dis,pb->srfc());
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -258,7 +260,9 @@ bool makeCurrent(EGLNativeDisplayType dpy,EglSurface* read,EglSurface* draw,EGLN
|
|||||||
}
|
}
|
||||||
|
|
||||||
void swapBuffers(EGLNativeDisplayType dpy,EGLNativeSurfaceType srfc){
|
void swapBuffers(EGLNativeDisplayType dpy,EGLNativeSurfaceType srfc){
|
||||||
glXSwapBuffers(dpy,srfc->srfc());
|
if (srfc) {
|
||||||
|
glXSwapBuffers(dpy,srfc->srfc());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void waitNative() {
|
void waitNative() {
|
||||||
@@ -273,7 +277,7 @@ void swapInterval(EGLNativeDisplayType dpy,EGLNativeSurfaceType win,int interval
|
|||||||
if(strstr(extensions,"EXT_swap_control")) {
|
if(strstr(extensions,"EXT_swap_control")) {
|
||||||
glXSwapIntervalEXT = (GLXSWAPINTERVALEXT)glXGetProcAddress((const GLubyte*)"glXSwapIntervalEXT");
|
glXSwapIntervalEXT = (GLXSWAPINTERVALEXT)glXGetProcAddress((const GLubyte*)"glXSwapIntervalEXT");
|
||||||
}
|
}
|
||||||
if(glXSwapIntervalEXT) {
|
if(glXSwapIntervalEXT && win) {
|
||||||
glXSwapIntervalEXT(dpy,win->srfc(),interval);
|
glXSwapIntervalEXT(dpy,win->srfc(),interval);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -286,5 +290,8 @@ EGLNativeSurfaceType createPixmapSurface(EGLNativePixmapType pix){
|
|||||||
return new SrfcInfo(pix,SrfcInfo::PIXMAP);
|
return new SrfcInfo(pix,SrfcInfo::PIXMAP);
|
||||||
}
|
}
|
||||||
|
|
||||||
void destroySurface(EGLNativeSurfaceType srfc){};
|
void destroySurface(EGLNativeSurfaceType srfc){
|
||||||
|
delete srfc;
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user