tests/auto/qgl/tst_qgl.cpp
changeset 19 fcece45ef507
parent 18 2f34d5167611
child 30 5dc02b23752f
--- a/tests/auto/qgl/tst_qgl.cpp	Fri Apr 16 15:50:13 2010 +0300
+++ b/tests/auto/qgl/tst_qgl.cpp	Mon May 03 13:17:34 2010 +0300
@@ -998,8 +998,7 @@
     QGLFramebufferObjectFormat fboFormat;
     fboFormat.setAttachment(QGLFramebufferObject::NoAttachment);
 
-    // Don't complicate things by using NPOT:
-    QGLFramebufferObject *fbo = new QGLFramebufferObject(256, 128, fboFormat);
+    QGLFramebufferObject *fbo = new QGLFramebufferObject(200, 100, fboFormat);
 
     fbo->bind();
 
@@ -1036,6 +1035,11 @@
     // Don't complicate things by using NPOT:
     QGLFramebufferObject *fbo = new QGLFramebufferObject(256, 128, fboFormat);
 
+    if (fbo->attachment() != QGLFramebufferObject::CombinedDepthStencil) {
+        delete fbo;
+        QSKIP("FBOs missing combined depth~stencil support", SkipSingle);
+    }
+
     QPainter fboPainter;
     bool painterBegun = fboPainter.begin(fbo);
     QVERIFY(painterBegun);
@@ -1098,6 +1102,16 @@
     QGLFramebufferObject *fbo2 = new QGLFramebufferObject(256, 128, fboFormat);
     QGLFramebufferObject *fbo3 = new QGLFramebufferObject(256, 128, fboFormat);
 
+    if ( (fbo1->attachment() != QGLFramebufferObject::CombinedDepthStencil) ||
+         (fbo2->attachment() != QGLFramebufferObject::CombinedDepthStencil) ||
+         (fbo3->attachment() != QGLFramebufferObject::CombinedDepthStencil)    )
+    {
+        delete fbo1;
+        delete fbo2;
+        delete fbo3;
+        QSKIP("FBOs missing combined depth~stencil support", SkipSingle);
+    }
+
     QPainter fbo1Painter;
     QPainter fbo2Painter;
     QPainter fbo3Painter;
@@ -1203,8 +1217,8 @@
         QPainter widgetPainter;
         widgetPainterBeginOk = widgetPainter.begin(this);
         QGLFramebufferObjectFormat fboFormat;
-        fboFormat.setAttachment(QGLFramebufferObject::CombinedDepthStencil);
-        QGLFramebufferObject *fbo = new QGLFramebufferObject(128, 128, fboFormat);
+        fboFormat.setAttachment(QGLFramebufferObject::NoAttachment);
+        QGLFramebufferObject *fbo = new QGLFramebufferObject(100, 100, fboFormat);
 
         QPainter fboPainter;
         fboPainterBeginOk = fboPainter.begin(fbo);
@@ -1228,7 +1242,7 @@
 #ifdef Q_WS_QWS
     w.setWindowFlags(Qt::FramelessWindowHint);
 #endif
-    w.resize(128, 128);
+    w.resize(100, 100);
     w.show();
 
 #ifdef Q_WS_X11
@@ -1340,6 +1354,10 @@
     QImage reference(fb.size(), QImage::Format_RGB32);
     reference.fill(0xffff0000);
 
+#ifdef QGL_EGL
+    QSKIP("renderPixmap() not yet supported under EGL", SkipAll);
+#endif
+
     QFUZZY_COMPARE_IMAGES(fb, reference);
 }