summaryrefslogtreecommitdiffstats
path: root/demos
diff options
context:
space:
mode:
Diffstat (limited to 'demos')
-rw-r--r--demos/boxes/glbuffers.cpp2
-rw-r--r--demos/boxes/scene.cpp33
-rw-r--r--demos/boxes/trackball.cpp14
-rw-r--r--demos/embedded/fluidlauncher/pictureflow.cpp4
-rw-r--r--demos/embedded/fluidlauncher/pictureflow.h2
-rw-r--r--demos/qtdemo/colors.cpp2
-rw-r--r--demos/qtdemo/menumanager.cpp7
-rw-r--r--demos/qtdemo/xml/examples.xml2
8 files changed, 40 insertions, 26 deletions
diff --git a/demos/boxes/glbuffers.cpp b/demos/boxes/glbuffers.cpp
index a3d26f6..3b16d17 100644
--- a/demos/boxes/glbuffers.cpp
+++ b/demos/boxes/glbuffers.cpp
@@ -372,7 +372,7 @@ void GLRenderTargetCube::getViewMatrix(QMatrix4x4& mat, int face)
{-1.0f, -1.0f, +1.0f},
};
- memset(mat.data(), 0, sizeof(float) * 16);
+ mat.fill(0.0f);
for (int i = 0; i < 3; ++i)
mat(i, perm[face][i]) = signs[face][i];
mat(3, 3) = 1.0f;
diff --git a/demos/boxes/scene.cpp b/demos/boxes/scene.cpp
index 2a7ca0e..0975fc5 100644
--- a/demos/boxes/scene.cpp
+++ b/demos/boxes/scene.cpp
@@ -649,6 +649,24 @@ void Scene::initGL()
m_renderOptions->emitParameterChanged();
}
+static void loadMatrix(const QMatrix4x4& m)
+{
+ GLfloat mat[16];
+ const qreal *data = m.constData();
+ for (int index = 0; index < 16; ++index)
+ mat[index] = data[index];
+ glLoadMatrixf(mat);
+}
+
+static void multMatrix(const QMatrix4x4& m)
+{
+ GLfloat mat[16];
+ const qreal *data = m.constData();
+ for (int index = 0; index < 16; ++index)
+ mat[index] = data[index];
+ glMultMatrixf(mat);
+}
+
// If one of the boxes should not be rendered, set excludeBox to its index.
// If the main box should not be rendered, set excludeBox to -1.
void Scene::renderBoxes(const QMatrix4x4 &view, int excludeBox)
@@ -673,7 +691,7 @@ void Scene::renderBoxes(const QMatrix4x4 &view, int excludeBox)
viewRotation(3, 0) = viewRotation(3, 1) = viewRotation(3, 2) = 0.0f;
viewRotation(0, 3) = viewRotation(1, 3) = viewRotation(2, 3) = 0.0f;
viewRotation(3, 3) = 1.0f;
- glLoadMatrixf(viewRotation.data());
+ loadMatrix(viewRotation);
glScalef(20.0f, 20.0f, 20.0f);
// Don't render the environment if the environment texture can't be set for the correct sampler.
@@ -688,7 +706,7 @@ void Scene::renderBoxes(const QMatrix4x4 &view, int excludeBox)
m_environment->unbind();
}
- glLoadMatrixf(view.data());
+ loadMatrix(view);
glEnable(GL_CULL_FACE);
glEnable(GL_LIGHTING);
@@ -700,9 +718,7 @@ void Scene::renderBoxes(const QMatrix4x4 &view, int excludeBox)
glPushMatrix();
QMatrix4x4 m;
m.rotate(m_trackBalls[1].rotation());
- m = m.transposed();
-
- glMultMatrixf(m.data());
+ multMatrix(m);
glRotatef(360.0f * i / m_programs.size(), 0.0f, 0.0f, 1.0f);
glTranslatef(2.0f, 0.0f, 0.0f);
@@ -735,8 +751,7 @@ void Scene::renderBoxes(const QMatrix4x4 &view, int excludeBox)
if (-1 != excludeBox) {
QMatrix4x4 m;
m.rotate(m_trackBalls[0].rotation());
- m = m.transposed();
- glMultMatrixf(m.data());
+ multMatrix(m);
if (glActiveTexture) {
if (m_dynamicCubemap)
@@ -842,7 +857,7 @@ void Scene::renderCubemaps()
glMatrixMode(GL_PROJECTION);
glPushMatrix();
- glLoadMatrixf(mat.data());
+ loadMatrix(mat);
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
@@ -862,7 +877,7 @@ void Scene::renderCubemaps()
GLRenderTargetCube::getViewMatrix(mat, face);
QVector4D v = QVector4D(-center.x(), -center.y(), -center.z(), 1.0);
- mat.setColumn(3, v * mat);
+ mat.setColumn(3, mat * v);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
renderBoxes(mat, i);
diff --git a/demos/boxes/trackball.cpp b/demos/boxes/trackball.cpp
index 9898441..60de6af 100644
--- a/demos/boxes/trackball.cpp
+++ b/demos/boxes/trackball.cpp
@@ -92,9 +92,9 @@ void TrackBall::move(const QPointF& p, const QQuaternion &transformation)
{
QLineF delta(m_lastPos, p);
m_angularVelocity = 180*delta.length() / (PI*msecs);
- m_axis = QVector3D(delta.dy(), -delta.dx(), 0.0f).normalized();
+ m_axis = QVector3D(-delta.dy(), delta.dx(), 0.0f).normalized();
m_axis = transformation.rotateVector(m_axis);
- m_rotation *= QQuaternion::fromAxisAndAngle(m_axis, delta.length());
+ m_rotation = QQuaternion::fromAxisAndAngle(m_axis, 180 / PI * delta.length()) * m_rotation;
}
break;
case Sphere:
@@ -113,13 +113,13 @@ void TrackBall::move(const QPointF& p, const QQuaternion &transformation)
else
currentPos3D.normalize();
- m_axis = QVector3D::crossProduct(currentPos3D, lastPos3D);
- float angle = asin(sqrt(QVector3D::dotProduct(m_axis, m_axis)));
+ m_axis = QVector3D::crossProduct(lastPos3D, currentPos3D);
+ float angle = 180 / PI * asin(sqrt(QVector3D::dotProduct(m_axis, m_axis)));
- m_angularVelocity = 180*angle / (PI*msecs);
+ m_angularVelocity = angle / msecs;
m_axis.normalize();
m_axis = transformation.rotateVector(m_axis);
- m_rotation *= QQuaternion::fromAxisAndAngle(m_axis, angle);
+ m_rotation = QQuaternion::fromAxisAndAngle(m_axis, angle) * m_rotation;
}
break;
}
@@ -155,6 +155,6 @@ QQuaternion TrackBall::rotation() const
QTime currentTime = QTime::currentTime();
float angle = m_angularVelocity * m_lastTime.msecsTo(currentTime);
- return m_rotation * QQuaternion::fromAxisAndAngle(m_axis, angle);
+ return QQuaternion::fromAxisAndAngle(m_axis, angle) * m_rotation;
}
diff --git a/demos/embedded/fluidlauncher/pictureflow.cpp b/demos/embedded/fluidlauncher/pictureflow.cpp
index 9eeaa26..293ef99 100644
--- a/demos/embedded/fluidlauncher/pictureflow.cpp
+++ b/demos/embedded/fluidlauncher/pictureflow.cpp
@@ -3,10 +3,6 @@
** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
** Contact: Nokia Corporation (qt-info@nokia.com)
**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** This is a version of the Pictureflow animated image show widget modified by Nokia.
-**
** This file is part of the ActiveQt framework of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
diff --git a/demos/embedded/fluidlauncher/pictureflow.h b/demos/embedded/fluidlauncher/pictureflow.h
index 7ae2a88..8fc145c 100644
--- a/demos/embedded/fluidlauncher/pictureflow.h
+++ b/demos/embedded/fluidlauncher/pictureflow.h
@@ -3,7 +3,7 @@
** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
** Contact: Nokia Corporation (qt-info@nokia.com)
**
-** This is a version of the Pictureflow animated image show widget modified by Nokia.
+** This file is part of the ActiveQt framework of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
diff --git a/demos/qtdemo/colors.cpp b/demos/qtdemo/colors.cpp
index e63417c..455ba0c 100644
--- a/demos/qtdemo/colors.cpp
+++ b/demos/qtdemo/colors.cpp
@@ -274,6 +274,8 @@ void Colors::parseArgs(int argc, char *argv[])
+ "[-low] [-ticker-letters<int>] [-ticker-speed<float>] [-no-ticker-morph] "
+ "[-ticker-morph-speed<float>] [-ticker-text<string>]");
exit(0);
+ } else if (s == "-verbose") {
+ // this option was already handled above
} else{
QMessageBox::warning(0, "QtDemo", QString("Unrecognized argument:\n") + s);
exit(0);
diff --git a/demos/qtdemo/menumanager.cpp b/demos/qtdemo/menumanager.cpp
index 12796dc..88eaeb3 100644
--- a/demos/qtdemo/menumanager.cpp
+++ b/demos/qtdemo/menumanager.cpp
@@ -324,9 +324,10 @@ void MenuManager::launchExample(const QString &name)
#ifdef Q_OS_WIN
//make sure it finds the dlls on windows
- QString curpath = QString::fromLocal8Bit(qgetenv("PATH").constData());
- QString newpath = QString("PATH=%1;%2").arg(QLibraryInfo::location(QLibraryInfo::BinariesPath), curpath);
- process->setEnvironment(QStringList(newpath));
+ QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
+ env.insert(QLatin1String("PATH"), QLibraryInfo::location(QLibraryInfo::BinariesPath)
+ + QLatin1Char(';') + env.value(QLatin1String("Path")));
+ process->setProcessEnvironment(env);
#endif
if (info[name]["changedirectory"] != "false"){
diff --git a/demos/qtdemo/xml/examples.xml b/demos/qtdemo/xml/examples.xml
index 77006c2..b545e1d 100644
--- a/demos/qtdemo/xml/examples.xml
+++ b/demos/qtdemo/xml/examples.xml
@@ -25,7 +25,7 @@
<example filename="appchooser" name="Appchooser" />
<example filename="easing" name="Easing Curves" />
<example filename="moveblocks" name="Moving Blocks" />
- <example filename="states" name="UI States" />
+ <example filename="states" name="States" />
<example filename="stickman" name="Stickman" />
</category>
<category dirname="qtconcurrent" name="Concurrent Programming">