summaryrefslogtreecommitdiffstats
path: root/tests/manual/qopenglwidget/openglwidget
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@theqtcompany.com>2016-01-27 18:12:44 +0100
committerLaszlo Agocs <laszlo.agocs@theqtcompany.com>2016-02-01 08:49:26 +0000
commit920472c85f6a5cd96344c28dbba0f199c34c6c10 (patch)
tree681cfae36f9df7406459f3509a384eb0b5a290ab /tests/manual/qopenglwidget/openglwidget
parent758b7b0d88742db7db223a69d689e235e6272f85 (diff)
Fix clipRect interpretation in composited backingstores
Empty clipRect means "clip away completely", not "no clipping". Task-number: QTBUG-50719 Change-Id: I6a9dd66130716a921fe9fc245582274e3c9718fe Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
Diffstat (limited to 'tests/manual/qopenglwidget/openglwidget')
-rw-r--r--tests/manual/qopenglwidget/openglwidget/main.cpp7
-rw-r--r--tests/manual/qopenglwidget/openglwidget/openglwidget.cpp12
-rw-r--r--tests/manual/qopenglwidget/openglwidget/openglwidget.h2
3 files changed, 20 insertions, 1 deletions
diff --git a/tests/manual/qopenglwidget/openglwidget/main.cpp b/tests/manual/qopenglwidget/openglwidget/main.cpp
index a56cea1dfe..3844ca3d0f 100644
--- a/tests/manual/qopenglwidget/openglwidget/main.cpp
+++ b/tests/manual/qopenglwidget/openglwidget/main.cpp
@@ -181,6 +181,13 @@ int main(int argc, char *argv[])
glw3->setObjectName("GL widget in scroll area (possibly native)");
glw3->setFormat(format);
glw3->setFixedSize(600, 600);
+ OpenGLWidget *glw3child = new OpenGLWidget(0);
+ const float glw3ClearColor[] = { 0.5f, 0.2f, 0.8f };
+ glw3child->setClearColor(glw3ClearColor);
+ glw3child->setObjectName("Child widget of GL Widget in scroll area");
+ glw3child->setFormat(format);
+ glw3child->setParent(glw3);
+ glw3child->setGeometry(500, 500, 100, 100); // lower right corner of parent
QScrollArea *sa = new QScrollArea;
sa->setWidget(glw3);
sa->setMinimumSize(100, 100);
diff --git a/tests/manual/qopenglwidget/openglwidget/openglwidget.cpp b/tests/manual/qopenglwidget/openglwidget/openglwidget.cpp
index 4d2463b84d..95e2b31405 100644
--- a/tests/manual/qopenglwidget/openglwidget/openglwidget.cpp
+++ b/tests/manual/qopenglwidget/openglwidget/openglwidget.cpp
@@ -78,6 +78,8 @@ public:
int m_interval;
QVector3D m_rotAxis;
+
+ float clearColor[3];
};
@@ -85,6 +87,7 @@ OpenGLWidget::OpenGLWidget(int interval, const QVector3D &rotAxis, QWidget *pare
: QOpenGLWidget(parent)
{
d.reset(new OpenGLWidgetPrivate(this));
+ d->clearColor[0] = d->clearColor[1] = d->clearColor[2] = 0.0f;
d->m_interval = interval;
d->m_rotAxis = rotAxis;
if (interval > 0) {
@@ -151,7 +154,7 @@ void OpenGLWidgetPrivate::render()
const qreal retinaScale = q->devicePixelRatio();
glViewport(0, 0, width() * retinaScale, height() * retinaScale);
- glClearColor(0.0, 0.0, 0.0, 1.0);
+ glClearColor(clearColor[0], clearColor[1], clearColor[2], 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
m_program->bind();
@@ -194,3 +197,10 @@ void OpenGLWidgetPrivate::render()
if (m_interval <= 0)
q->update();
}
+
+void OpenGLWidget::setClearColor(const float *c)
+{
+ d->clearColor[0] = c[0];
+ d->clearColor[1] = c[1];
+ d->clearColor[2] = c[2];
+}
diff --git a/tests/manual/qopenglwidget/openglwidget/openglwidget.h b/tests/manual/qopenglwidget/openglwidget/openglwidget.h
index a1d5490845..1b9a66d877 100644
--- a/tests/manual/qopenglwidget/openglwidget/openglwidget.h
+++ b/tests/manual/qopenglwidget/openglwidget/openglwidget.h
@@ -49,6 +49,8 @@ public:
void resizeGL(int w, int h);
void paintGL();
+ void setClearColor(const float *c);
+
private:
QScopedPointer<OpenGLWidgetPrivate> d;
};