From 710aa7f8fbd72ee303c3348aa3aaf12d6984964d Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Wed, 27 Apr 2011 10:05:25 +0200 Subject: Specify swap behavior preserved bit in openvg engine. Unlike OpenGL, the EGL_SWAP_BEHAVIOR_PRESERVED_BIT was not set for the EGL configuration used with OpenVG. Yet the preserved swap was enabled still, which, according to the EGL spec, should fail. To make sure it still works with other EGL implementations, the bit is now set in the configuration. Reviewed-by: Jani Hautakangas --- src/openvg/qwindowsurface_vgegl.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/openvg/qwindowsurface_vgegl.cpp b/src/openvg/qwindowsurface_vgegl.cpp index 866453f..3205a11 100644 --- a/src/openvg/qwindowsurface_vgegl.cpp +++ b/src/openvg/qwindowsurface_vgegl.cpp @@ -269,19 +269,20 @@ static QEglContext *createContext(QPaintDevice *device) configProps.setPixelFormat(QImage::Format_ARGB32); // XXX configProps.setValue(EGL_ALPHA_MASK_SIZE, 1); #ifdef EGL_VG_ALPHA_FORMAT_PRE_BIT - configProps.setValue(EGL_SURFACE_TYPE, EGL_WINDOW_BIT | - EGL_VG_ALPHA_FORMAT_PRE_BIT); + configProps.setValue(EGL_SURFACE_TYPE, EGL_WINDOW_BIT + | EGL_SWAP_BEHAVIOR_PRESERVED_BIT + | EGL_VG_ALPHA_FORMAT_PRE_BIT); configProps.setRenderableType(QEgl::OpenVG); if (!context->chooseConfig(configProps)) { // Try again without the "pre" bit. - configProps.setValue(EGL_SURFACE_TYPE, EGL_WINDOW_BIT); + configProps.setValue(EGL_SURFACE_TYPE, EGL_WINDOW_BIT | EGL_SWAP_BEHAVIOR_PRESERVED_BIT); if (!context->chooseConfig(configProps)) { delete context; return 0; } } #else - configProps.setValue(EGL_SURFACE_TYPE, EGL_WINDOW_BIT); + configProps.setValue(EGL_SURFACE_TYPE, EGL_WINDOW_BIT | EGL_SWAP_BEHAVIOR_PRESERVED_BIT); configProps.setRenderableType(QEgl::OpenVG); if (!context->chooseConfig(configProps)) { delete context; -- cgit v0.12