summaryrefslogtreecommitdiffstats
path: root/tests/auto/threed/qglrender/tst_qglrender.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/threed/qglrender/tst_qglrender.cpp')
-rw-r--r--tests/auto/threed/qglrender/tst_qglrender.cpp259
1 files changed, 0 insertions, 259 deletions
diff --git a/tests/auto/threed/qglrender/tst_qglrender.cpp b/tests/auto/threed/qglrender/tst_qglrender.cpp
deleted file mode 100644
index 150396d5..00000000
--- a/tests/auto/threed/qglrender/tst_qglrender.cpp
+++ /dev/null
@@ -1,259 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtQuick3D module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtTest/QtTest>
-
-#include "qglrenderorder.h"
-#include "qglrendersequencer.h"
-#include "qglrenderordercomparator.h"
-#include "qglscenenode.h"
-#include "qglpainter.h"
-#include "qglbuilder.h"
-#include "qglview.h"
-
-class tst_QGLRender : public QObject
-{
- Q_OBJECT
-public:
- tst_QGLRender() {}
- ~tst_QGLRender() {}
-
-private slots:
- void create();
- void values();
- void repo();
- void sequence();
-};
-
-void tst_QGLRender::create()
-{
- QGLSceneNode node;
- QGLSceneNode node2;
- QGLMaterialCollection pal;
- node.setPalette(&pal);
- node2.setPalette(&pal);
-
- QGLRenderState s;
- QGLRenderOrder order(&node, s);
- QGLRenderOrder other(order); // copy constructor
- QCOMPARE(order.node(), &node);
- QCOMPARE(order.node(), other.node());
- QGLRenderOrderComparator cmp;
- QVERIFY(cmp.isEqualTo(order, other)); // operator==
-
- QGLRenderOrder other2(&node2, s);
- QVERIFY(cmp.isEqualTo(other2, order)); // same because nodes have same values
- other2 = order; // operator=
- QVERIFY(cmp.isEqualTo(other2, order)); // same again
-
- QGLRenderState state0;
- QGLRenderOrder other3(&node2, state0);
- QVERIFY(cmp.isEqualTo(other2, other3));
-}
-
-void tst_QGLRender::values()
-{
- QGLSceneNode node; // by default has QGL::FlatColor
- QGLSceneNode node2;
- QGLMaterialCollection pal;
- node.setPalette(&pal);
- node2.setPalette(&pal);
- node2.setEffect(QGL::LitMaterial);
-
- QGLRenderState s;
- QGLRenderOrder order(&node, s);
- QGLRenderOrder other(&node2, s);
- QGLRenderOrderComparator cmp;
- QVERIFY(!cmp.isEqualTo(other, order));
- QVERIFY(cmp.isLessThan(order, other));
-
- QGLRenderState state;
- QGLMaterial *mat = new QGLMaterial;
- mat->setAmbientColor(Qt::blue);
- int ix = pal.addMaterial(mat);
- QGLSceneNode node3;
- node3.setPalette(&pal);
- node3.setMaterialIndex(ix);
- node3.setEffect(QGL::LitMaterial);
- state.updateFrom(&node3);
- QGLRenderOrder other2(&node, state);
- QVERIFY(other2.effectiveHasEffect());
- QCOMPARE(other2.effectiveMaterial(), mat);
- QCOMPARE(other2.effectiveStandardEffect(), QGL::LitMaterial);
- QCOMPARE(other2.effectiveUserEffect(), (QGLAbstractEffect*)0);
- QVERIFY(cmp.isLessThan(order, other2));
- QVERIFY(cmp.isLessThan(other, other2));
-}
-
-void tst_QGLRender::repo()
-{
- QGLSceneNode node; // by default has QGL::FlatColor
- QGLSceneNode node2;
- QGLMaterialCollection pal;
- node.setPalette(&pal);
- node2.setPalette(&pal);
- node2.setEffect(QGL::LitDecalTexture2D);
-
- QGLRenderState s;
- QGLRenderOrder order(&node, s);
- QGLRenderOrder other(&node2, s);
- QGLRenderOrder order2(&node, s);
- QGLRenderOrderComparator cmp;
- QVERIFY(!cmp.isEqualTo(other, order));
- QVERIFY(cmp.isLessThan(order, other));
- QVERIFY(cmp.isEqualTo(order2, order));
- QCOMPARE(order2.node(), order.node());
-}
-
-class TestPainter : public QGLPainter
-{
-public:
- TestPainter(QGLWidget *w) : QGLPainter(w) {}
- void draw(QGL::DrawingMode mode, const QGLIndexBuffer& indices,
- int offset, int count)
- {
- m_starts.append(offset);
- m_counts.append(count);
- QGLPainter::draw(mode, indices, offset, count);
- }
- QList<int> starts() const { return m_starts; }
- QList<int> counts() const { return m_counts; }
-private:
- QList<int> m_starts;
- QList<int> m_counts;
-};
-
-class TestView : public QGLView
-{
-public:
- TestView(QGLSceneNode *node)
- : m_node(node)
- {}
- void paintGL(QGLPainter *painter)
- {
- painter->setEye(QGL::NoEye);
- painter->setCamera(camera());
- m_node->draw(painter);
- }
-private:
- QGLSceneNode *m_node;
-};
-
-void tst_QGLRender::sequence()
-{
- QGLMaterialCollection *palette = new QGLMaterialCollection;
-
- // create a yellow lit material
- QGLMaterial *mat = new QGLMaterial;
- mat->setAmbientColor(Qt::yellow);
- int ix0 = palette->addMaterial(mat);
-
- // create a blue lit material
- mat = new QGLMaterial;
- mat->setAmbientColor(Qt::blue);
- int ix1 = palette->addMaterial(mat);
-
- // create a grey textured material
- int tx0;
- {
- QImage uv(1024, 1024, QImage::Format_ARGB32);
- uv.fill(qRgba(196, 196, 196, 196));
- mat = new QGLMaterial;
- mat->setAmbientColor(Qt::gray);
- QGLTexture2D *tex = new QGLTexture2D;
- tex->setImage(uv);
- mat->setTexture(tex);
- tx0 = palette->addMaterial(mat);
- }
-
- QGLSceneNode *scene = new QGLSceneNode;
- scene->setPalette(palette);
- QGLSceneNode *node = 0;
- QGLSceneNode *prim;
- {
- QGLBuilder builder(palette);
- QVector3D a(-1.0f, -1.0f, 0.0f);
- QVector3D b(1.0f, -1.0f, 0.0f);
- QVector3D c(1.0f, 1.0f, 0.0f);
- QGeometryData p;
- p.appendVertex(a, b, c);
- p.generateTextureCoordinates();
- builder.addTriangles(p);
- prim = builder.currentNode();
- prim->setMaterialIndex(ix0);
- builder.newSection();
- QVector3D d(-1.2f, -1.2f, 0.0f);
- QVector3D e(1.2f, -1.2f, 0.0f);
- QVector3D f(1.2f, 1.2f, 0.0f);
- QVector3D g(-1.2f, 1.2f, 0.0f);
- QGeometryData q;
- q.appendVertex(d, e, f, g);
- q.generateTextureCoordinates();
- builder.addQuads(q);
- prim = builder.currentNode();
- prim->setMaterialIndex(ix1);
- node = builder.finalizedSceneNode();
- }
-
- scene->addNode(node);
- QGLSceneNode *cl = prim->clone(scene);
- cl->setMaterialIndex(tx0);
- cl->setEffect(QGL::LitDecalTexture2D);
-
- TestView widget(scene);
- if (!widget.isValid())
- QSKIP("GL Implementation not valid", SkipSingle);
-
- TestPainter *ptr = new TestPainter(&widget);
-
- widget.paintGL(ptr);
-
- QList<int> starts = ptr->starts();
- QList<int> counts = ptr->counts();
- QCOMPARE(starts.at(0), 0);
- QCOMPARE(counts.at(0), 3);
- QCOMPARE(starts.at(1), 3);
- QCOMPARE(counts.at(1), 6);
-}
-
-QTEST_MAIN(tst_QGLRender)
-
-#include "tst_qglrender.moc"