00001 /**************************************************************************** 00002 ** 00003 ** Copyright (C) 2005-2007 Trolltech ASA. All rights reserved. 00004 ** 00005 ** This file is part of the example classes of the Qt Toolkit. 00006 ** 00007 ** This file may be used under the terms of the GNU General Public 00008 ** License version 2.0 as published by the Free Software Foundation 00009 ** and appearing in the file LICENSE.GPL included in the packaging of 00010 ** this file. Please review the following information to ensure GNU 00011 ** General Public Licensing requirements will be met: 00012 ** http://www.trolltech.com/products/qt/opensource.html 00013 ** 00014 ** If you are unsure which license is appropriate for your use, please 00015 ** review the following information: 00016 ** http://www.trolltech.com/products/qt/licensing.html or contact the 00017 ** sales department at sales@trolltech.com. 00018 ** 00019 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 00020 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 00021 ** 00022 ****************************************************************************/ 00023 00024 #include <QtOpenGL> 00025 00026 class GLPixelWidget : public QGLWidget 00027 { 00028 public: 00029 GLPixelWidget(QWidget *parent); 00030 ~GLPixelWidget(); 00031 void initializeGL(); 00032 void resizeGL(int w, int h); 00033 void paintGL(); 00034 void timerEvent(QTimerEvent *) { update(); } 00035 void mousePressEvent(QMouseEvent *) { killTimer(timerId); } 00036 void mouseReleaseEvent(QMouseEvent *) { timerId = startTimer(20); } 00037 00038 void drawCube(int i, GLfloat z, GLfloat ri, GLfloat jmp, GLfloat amp); 00039 void initCommon(); 00040 void initPbuffer(); 00041 00042 private: 00043 GLfloat rot[3], xOffs[3], yOffs[3], xInc[3]; 00044 GLuint pbufferList; 00045 GLuint dynamicTexture; 00046 GLuint cubeTexture; 00047 int timerId; 00048 00049 QGLPixelBuffer *pbuffer; 00050 }; 00051