00001 /**************************************************************************** 00002 ** 00003 ** Copyright (C) 1992-2006 Trolltech ASA. All rights reserved. 00004 ** 00005 ** This file is part of the QtOpenGL module 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 #ifndef QGLFRAMEBUFFEROBJECT_H 00025 #define QGLFRAMEBUFFEROBJECT_H 00026 00027 #include <QtOpenGL/qgl.h> 00028 #include <QtGui/qpaintdevice.h> 00029 00030 QT_BEGIN_HEADER 00031 00032 QT_MODULE(OpenGL) 00033 00034 class QGLFramebufferObjectPrivate; 00035 00036 class Q_OPENGL_EXPORT QGLFramebufferObject : public QPaintDevice 00037 { 00038 Q_DECLARE_PRIVATE(QGLFramebufferObject) 00039 public: 00040 QGLFramebufferObject(const QSize &size, GLenum target = GL_TEXTURE_2D); 00041 QGLFramebufferObject(int width, int height, GLenum target = GL_TEXTURE_2D); 00042 virtual ~QGLFramebufferObject(); 00043 00044 bool isValid() const; 00045 bool bind(); 00046 bool release(); 00047 GLuint texture() const; 00048 QSize size() const; 00049 QImage toImage() const; 00050 00051 QPaintEngine *paintEngine() const; 00052 GLuint handle() const; 00053 00054 static bool hasOpenGLFramebufferObjects(); 00055 00056 protected: 00057 int metric(PaintDeviceMetric metric) const; 00058 int devType() const { return QInternal::FramebufferObject; } 00059 00060 private: 00061 Q_DISABLE_COPY(QGLFramebufferObject) 00062 QGLFramebufferObjectPrivate *d_ptr; 00063 friend class QGLDrawable; 00064 }; 00065 00066 QT_END_HEADER 00067 #endif // QGLFRAMEBUFFEROBJECT_H
1.5.1