QT_BEGIN_NAMESPACE EGLNativeDisplayType QEgl::nativeDisplay() { HDC myDc = GetDC(0); if (!myDc) { qWarning("QEglContext::nativeDisplay(): WinCE display is not open"); return EGLNativeDisplayType(EGL_DEFAULT_DISPLAY); } return EGLNativeDisplayType(myDc); }
QT_BEGIN_NAMESPACE EGLNativeDisplayType QEgl::nativeDisplay() { Display *xdpy = QX11Info::display(); if (!xdpy) { qWarning("QEglContext::getDisplay(): X11 display is not open"); return EGLNativeDisplayType(EGL_DEFAULT_DISPLAY); } return EGLNativeDisplayType(xdpy); }
EGLDisplay QEgl::display() { static EGLDisplay dpy = EGL_NO_DISPLAY; if (!QEglContextTracker::displayOpened()) { dpy = eglGetDisplay(nativeDisplay()); QEglContextTracker::setDisplayOpened(); if (dpy == EGL_NO_DISPLAY) { qWarning("QEgl::display(): Falling back to EGL_DEFAULT_DISPLAY"); dpy = eglGetDisplay(EGLNativeDisplayType(EGL_DEFAULT_DISPLAY)); } if (dpy == EGL_NO_DISPLAY) { qWarning("QEgl::display(): Can't even open the default display"); return EGL_NO_DISPLAY; } if (!eglInitialize(dpy, NULL, NULL)) { qWarning() << "QEgl::display(): Cannot initialize EGL display:" << QEgl::errorString(); return EGL_NO_DISPLAY; } // Resolve the egl extension function pointers: #if (defined(EGL_KHR_image) || defined(EGL_KHR_image_base)) && !defined(EGL_EGLEXT_PROTOTYPES) if (QEgl::hasExtension("EGL_KHR_image") || QEgl::hasExtension("EGL_KHR_image_base")) { qt_eglCreateImageKHR = (_eglCreateImageKHR) eglGetProcAddress("eglCreateImageKHR"); qt_eglDestroyImageKHR = (_eglDestroyImageKHR) eglGetProcAddress("eglDestroyImageKHR"); } #endif if (QEgl::hasExtension("EGL_NOK_swap_region2")) { qt_eglSwapBuffersRegion2NOK = (_eglSwapBuffersRegion2NOK) eglGetProcAddress("eglSwapBuffersRegion2NOK"); } } return dpy; }
EGLDisplay QEglContext::getDisplay(QPaintDevice *device) { EGLDisplay dpy = 0; HWND win = (static_cast<QWidget*>(device))->winId(); HDC myDc = GetDC(win); if (!myDc) { qWarning("QEglContext::defaultDisplay(): WinCE display is not open"); } dpy = eglGetDisplay(EGLNativeDisplayType(myDc)); if (dpy == EGL_NO_DISPLAY) { qWarning("QEglContext::defaultDisplay(): Falling back to EGL_DEFAULT_DISPLAY"); dpy = eglGetDisplay(EGL_DEFAULT_DISPLAY); } return dpy; }
EGLNativeDisplayType QEgl::nativeDisplay() { return EGLNativeDisplayType(EGL_DEFAULT_DISPLAY); }