PvrEglWindowSurface::~PvrEglWindowSurface() { // Release the PvrQwsDrawable. If it is bound to an EGLSurface, // then it will stay around until a new PvrEglWindowSurface is // created for the widget. If it is not bound to an EGLSurface, // it will be destroyed immediately. if (drawable && pvrQwsReleaseWindow(drawable)) pvrQwsDestroyDrawable(drawable); delete pdevice; }
/* Delete a specific drawable */ static WSEGLError wseglDeleteDrawable(WSEGLDrawableHandle _drawable) { PvrQwsDrawable *drawable = (PvrQwsDrawable *)_drawable; if (!drawable || drawable->type == PvrQwsScreen) return WSEGL_SUCCESS; if (pvrQwsDisplay.numFlipBuffers == 0) pvrQwsFreeBuffers(drawable); if (pvrQwsReleaseWindow(drawable)) pvrQwsDestroyDrawable(drawable); return WSEGL_SUCCESS; }