Index: trunk/examples/opengl/hellogl/glwidget.cpp
===================================================================
--- trunk/examples/opengl/hellogl/glwidget.cpp	(revision 168)
+++ trunk/examples/opengl/hellogl/glwidget.cpp	(revision 561)
@@ -2,5 +2,6 @@
 **
 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: Qt Software Information (qt-info@nokia.com)
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
 **
 ** This file is part of the examples of the Qt Toolkit.
@@ -21,8 +22,7 @@
 ** 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.0, included in the file LGPL_EXCEPTION.txt in this
-** package.
+** 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
@@ -34,6 +34,6 @@
 ** met: http://www.gnu.org/copyleft/gpl.html.
 **
-** If you are unsure which license is appropriate for your use, please
-** contact the sales department at qt-sales@nokia.com.
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
 ** $QT_END_LICENSE$
 **
@@ -46,16 +46,21 @@
 
 #include "glwidget.h"
+#include "qtlogo.h"
+
+#ifndef GL_MULTISAMPLE
+#define GL_MULTISAMPLE  0x809D
+#endif
 
 //! [0]
 GLWidget::GLWidget(QWidget *parent)
-    : QGLWidget(parent)
-{
-    object = 0;
+    : QGLWidget(QGLFormat(QGL::SampleBuffers), parent)
+{
+    logo = 0;
     xRot = 0;
     yRot = 0;
     zRot = 0;
 
-    trolltechGreen = QColor::fromCmykF(0.40, 0.0, 1.0, 0.0);
-    trolltechPurple = QColor::fromCmykF(0.39, 0.39, 0.0, 0.0);
+    qtGreen = QColor::fromCmykF(0.40, 0.0, 1.0, 0.0);
+    qtPurple = QColor::fromCmykF(0.39, 0.39, 0.0, 0.0);
 }
 //! [0]
@@ -64,6 +69,4 @@
 GLWidget::~GLWidget()
 {
-    makeCurrent();
-    glDeleteLists(object, 1);
 }
 //! [1]
@@ -84,8 +87,16 @@
 //! [4]
 
+static void qNormalizeAngle(int &angle)
+{
+    while (angle < 0)
+        angle += 360 * 16;
+    while (angle > 360 * 16)
+        angle -= 360 * 16;
+}
+
 //! [5]
 void GLWidget::setXRotation(int angle)
 {
-    normalizeAngle(&angle);
+    qNormalizeAngle(angle);
     if (angle != xRot) {
         xRot = angle;
@@ -98,5 +109,5 @@
 void GLWidget::setYRotation(int angle)
 {
-    normalizeAngle(&angle);
+    qNormalizeAngle(angle);
     if (angle != yRot) {
         yRot = angle;
@@ -108,5 +119,5 @@
 void GLWidget::setZRotation(int angle)
 {
-    normalizeAngle(&angle);
+    qNormalizeAngle(angle);
     if (angle != zRot) {
         zRot = angle;
@@ -119,9 +130,17 @@
 void GLWidget::initializeGL()
 {
-    qglClearColor(trolltechPurple.dark());
-    object = makeObject();
-    glShadeModel(GL_FLAT);
+    qglClearColor(qtPurple.dark());
+
+    logo = new QtLogo(this, 64);
+    logo->setColor(qtGreen.dark());
+
     glEnable(GL_DEPTH_TEST);
     glEnable(GL_CULL_FACE);
+    glShadeModel(GL_SMOOTH);
+    glEnable(GL_LIGHTING);
+    glEnable(GL_LIGHT0);
+    glEnable(GL_MULTISAMPLE);
+    static GLfloat lightPosition[4] = { 0.5, 5.0, 7.0, 1.0 };
+    glLightfv(GL_LIGHT0, GL_POSITION, lightPosition);
 }
 //! [6]
@@ -132,9 +151,9 @@
     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
     glLoadIdentity();
-    glTranslated(0.0, 0.0, -10.0);
-    glRotated(xRot / 16.0, 1.0, 0.0, 0.0);
-    glRotated(yRot / 16.0, 0.0, 1.0, 0.0);
-    glRotated(zRot / 16.0, 0.0, 0.0, 1.0);
-    glCallList(object);
+    glTranslatef(0.0, 0.0, -10.0);
+    glRotatef(xRot / 16.0, 1.0, 0.0, 0.0);
+    glRotatef(yRot / 16.0, 0.0, 1.0, 0.0);
+    glRotatef(zRot / 16.0, 0.0, 0.0, 1.0);
+    logo->draw();
 }
 //! [7]
@@ -148,5 +167,9 @@
     glMatrixMode(GL_PROJECTION);
     glLoadIdentity();
-    glOrtho(-0.5, +0.5, +0.5, -0.5, 4.0, 15.0);
+#ifdef QT_OPENGL_ES_1
+    glOrthof(-0.5, +0.5, -0.5, +0.5, 4.0, 15.0);
+#else
+    glOrtho(-0.5, +0.5, -0.5, +0.5, 4.0, 15.0);
+#endif
     glMatrixMode(GL_MODELVIEW);
 }
@@ -176,91 +199,2 @@
 }
 //! [10]
-
-GLuint GLWidget::makeObject()
-{
-    GLuint list = glGenLists(1);
-    glNewList(list, GL_COMPILE);
-
-    glBegin(GL_QUADS);
-
-    GLdouble x1 = +0.06;
-    GLdouble y1 = -0.14;
-    GLdouble x2 = +0.14;
-    GLdouble y2 = -0.06;
-    GLdouble x3 = +0.08;
-    GLdouble y3 = +0.00;
-    GLdouble x4 = +0.30;
-    GLdouble y4 = +0.22;
-
-    quad(x1, y1, x2, y2, y2, x2, y1, x1);
-    quad(x3, y3, x4, y4, y4, x4, y3, x3);
-
-    extrude(x1, y1, x2, y2);
-    extrude(x2, y2, y2, x2);
-    extrude(y2, x2, y1, x1);
-    extrude(y1, x1, x1, y1);
-    extrude(x3, y3, x4, y4);
-    extrude(x4, y4, y4, x4);
-    extrude(y4, x4, y3, x3);
-
-    const double Pi = 3.14159265358979323846;
-    const int NumSectors = 200;
-
-    for (int i = 0; i < NumSectors; ++i) {
-        double angle1 = (i * 2 * Pi) / NumSectors;
-        GLdouble x5 = 0.30 * sin(angle1);
-        GLdouble y5 = 0.30 * cos(angle1);
-        GLdouble x6 = 0.20 * sin(angle1);
-        GLdouble y6 = 0.20 * cos(angle1);
-
-        double angle2 = ((i + 1) * 2 * Pi) / NumSectors;
-        GLdouble x7 = 0.20 * sin(angle2);
-        GLdouble y7 = 0.20 * cos(angle2);
-        GLdouble x8 = 0.30 * sin(angle2);
-        GLdouble y8 = 0.30 * cos(angle2);
-
-        quad(x5, y5, x6, y6, x7, y7, x8, y8);
-
-        extrude(x6, y6, x7, y7);
-        extrude(x8, y8, x5, y5);
-    }
-
-    glEnd();
-
-    glEndList();
-    return list;
-}
-
-void GLWidget::quad(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2,
-                    GLdouble x3, GLdouble y3, GLdouble x4, GLdouble y4)
-{
-    qglColor(trolltechGreen);
-
-    glVertex3d(x1, y1, -0.05);
-    glVertex3d(x2, y2, -0.05);
-    glVertex3d(x3, y3, -0.05);
-    glVertex3d(x4, y4, -0.05);
-
-    glVertex3d(x4, y4, +0.05);
-    glVertex3d(x3, y3, +0.05);
-    glVertex3d(x2, y2, +0.05);
-    glVertex3d(x1, y1, +0.05);
-}
-
-void GLWidget::extrude(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2)
-{
-    qglColor(trolltechGreen.dark(250 + int(100 * x1)));
-
-    glVertex3d(x1, y1, +0.05);
-    glVertex3d(x2, y2, +0.05);
-    glVertex3d(x2, y2, -0.05);
-    glVertex3d(x1, y1, -0.05);
-}
-
-void GLWidget::normalizeAngle(int *angle)
-{
-    while (*angle < 0)
-        *angle += 360 * 16;
-    while (*angle > 360 * 16)
-        *angle -= 360 * 16;
-}
Index: trunk/examples/opengl/hellogl/glwidget.h
===================================================================
--- trunk/examples/opengl/hellogl/glwidget.h	(revision 168)
+++ trunk/examples/opengl/hellogl/glwidget.h	(revision 561)
@@ -2,5 +2,6 @@
 **
 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: Qt Software Information (qt-info@nokia.com)
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
 **
 ** This file is part of the examples of the Qt Toolkit.
@@ -21,8 +22,7 @@
 ** 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.0, included in the file LGPL_EXCEPTION.txt in this
-** package.
+** 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
@@ -34,6 +34,6 @@
 ** met: http://www.gnu.org/copyleft/gpl.html.
 **
-** If you are unsure which license is appropriate for your use, please
-** contact the sales department at qt-sales@nokia.com.
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
 ** $QT_END_LICENSE$
 **
@@ -44,4 +44,6 @@
 
 #include <QGLWidget>
+
+class QtLogo;
 
 //! [0]
@@ -81,17 +83,11 @@
 //! [3]
 private:
-    GLuint makeObject();
-    void quad(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2,
-              GLdouble x3, GLdouble y3, GLdouble x4, GLdouble y4);
-    void extrude(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
-    void normalizeAngle(int *angle);
-
-    GLuint object;
+    QtLogo *logo;
     int xRot;
     int yRot;
     int zRot;
     QPoint lastPos;
-    QColor trolltechGreen;
-    QColor trolltechPurple;
+    QColor qtGreen;
+    QColor qtPurple;
 };
 //! [3]
Index: trunk/examples/opengl/hellogl/hellogl.pro
===================================================================
--- trunk/examples/opengl/hellogl/hellogl.pro	(revision 168)
+++ trunk/examples/opengl/hellogl/hellogl.pro	(revision 561)
@@ -1,7 +1,12 @@
+VPATH += ../shared
+INCLUDEPATH += ../shared
+
 HEADERS       = glwidget.h \
-                window.h
+                window.h \
+                qtlogo.h
 SOURCES       = glwidget.cpp \
                 main.cpp \
-                window.cpp
+                window.cpp \
+                qtlogo.cpp
 QT           += opengl
 
@@ -11,2 +16,4 @@
 sources.path = $$[QT_INSTALL_EXAMPLES]/opengl/hellogl
 INSTALLS += target sources
+
+symbian: include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
Index: trunk/examples/opengl/hellogl/main.cpp
===================================================================
--- trunk/examples/opengl/hellogl/main.cpp	(revision 168)
+++ trunk/examples/opengl/hellogl/main.cpp	(revision 561)
@@ -2,5 +2,6 @@
 **
 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: Qt Software Information (qt-info@nokia.com)
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
 **
 ** This file is part of the examples of the Qt Toolkit.
@@ -21,8 +22,7 @@
 ** 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.0, included in the file LGPL_EXCEPTION.txt in this
-** package.
+** 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
@@ -34,6 +34,6 @@
 ** met: http://www.gnu.org/copyleft/gpl.html.
 **
-** If you are unsure which license is appropriate for your use, please
-** contact the sales department at qt-sales@nokia.com.
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
 ** $QT_END_LICENSE$
 **
@@ -41,4 +41,5 @@
 
 #include <QApplication>
+#include <QDesktopWidget>
 
 #include "window.h"
@@ -48,5 +49,12 @@
     QApplication app(argc, argv);
     Window window;
-    window.show();
+    window.resize(window.sizeHint());
+    int desktopArea = QApplication::desktop()->width() *
+                     QApplication::desktop()->height();
+    int widgetArea = window.width() * window.height();
+    if (((float)widgetArea / (float)desktopArea) < 0.75f)
+        window.show();
+    else
+        window.showMaximized();
     return app.exec();
 }
Index: trunk/examples/opengl/hellogl/window.cpp
===================================================================
--- trunk/examples/opengl/hellogl/window.cpp	(revision 168)
+++ trunk/examples/opengl/hellogl/window.cpp	(revision 561)
@@ -2,5 +2,6 @@
 **
 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: Qt Software Information (qt-info@nokia.com)
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
 **
 ** This file is part of the examples of the Qt Toolkit.
@@ -21,8 +22,7 @@
 ** 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.0, included in the file LGPL_EXCEPTION.txt in this
-** package.
+** 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
@@ -34,6 +34,6 @@
 ** met: http://www.gnu.org/copyleft/gpl.html.
 **
-** If you are unsure which license is appropriate for your use, please
-** contact the sales department at qt-sales@nokia.com.
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
 ** $QT_END_LICENSE$
 **
@@ -89,2 +89,10 @@
 }
 //! [2]
+
+void Window::keyPressEvent(QKeyEvent *e)
+{
+    if (e->key() == Qt::Key_Escape)
+        close();
+    else
+        QWidget::keyPressEvent(e);
+}
Index: trunk/examples/opengl/hellogl/window.h
===================================================================
--- trunk/examples/opengl/hellogl/window.h	(revision 168)
+++ trunk/examples/opengl/hellogl/window.h	(revision 561)
@@ -2,5 +2,6 @@
 **
 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: Qt Software Information (qt-info@nokia.com)
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
 **
 ** This file is part of the examples of the Qt Toolkit.
@@ -21,8 +22,7 @@
 ** 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.0, included in the file LGPL_EXCEPTION.txt in this
-** package.
+** 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
@@ -34,6 +34,6 @@
 ** met: http://www.gnu.org/copyleft/gpl.html.
 **
-** If you are unsure which license is appropriate for your use, please
-** contact the sales department at qt-sales@nokia.com.
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
 ** $QT_END_LICENSE$
 **
@@ -58,4 +58,7 @@
     Window();
 
+protected:
+    void keyPressEvent(QKeyEvent *event);
+
 private:
     QSlider *createSlider();
