Ignore:
Timestamp:
Feb 11, 2010, 11:19:06 PM (15 years ago)
Author:
Dmitry A. Kuminov
Message:

trunk: Merged in qt 4.6.1 sources.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/src/opengl/qglframebufferobject.h

    r2 r561  
    22**
    33** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
    4 ** Contact: Qt Software Information (qt-info@nokia.com)
     4** All rights reserved.
     5** Contact: Nokia Corporation (qt-info@nokia.com)
    56**
    67** This file is part of the QtOpenGL module of the Qt Toolkit.
     
    2122** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
    2223**
    23 ** In addition, as a special exception, Nokia gives you certain
    24 ** additional rights. These rights are described in the Nokia Qt LGPL
    25 ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
    26 ** package.
     24** In addition, as a special exception, Nokia gives you certain additional
     25** rights.  These rights are described in the Nokia Qt LGPL Exception
     26** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
    2727**
    2828** GNU General Public License Usage
     
    3434** met: http://www.gnu.org/copyleft/gpl.html.
    3535**
    36 ** If you are unsure which license is appropriate for your use, please
    37 ** contact the sales department at qt-sales@nokia.com.
     36** If you have questions regarding the use of this file, please contact
     37** Nokia at qt-info@nokia.com.
    3838** $QT_END_LICENSE$
    3939**
     
    5353
    5454class QGLFramebufferObjectPrivate;
     55class QGLFramebufferObjectFormat;
    5556
    5657class Q_OPENGL_EXPORT QGLFramebufferObject : public QPaintDevice
     
    7879#endif
    7980
     81    QGLFramebufferObject(const QSize &size, const QGLFramebufferObjectFormat &format);
     82    QGLFramebufferObject(int width, int height, const QGLFramebufferObjectFormat &format);
     83
    8084#ifdef Q_MAC_COMPAT_GL_FUNCTIONS
    8185    QGLFramebufferObject(const QSize &size, QMacCompatGLenum target = GL_TEXTURE_2D);
     
    9094    virtual ~QGLFramebufferObject();
    9195
     96    QGLFramebufferObjectFormat format() const;
     97
    9298    bool isValid() const;
    9399    bool isBound() const;
    94100    bool bind();
    95101    bool release();
     102
    96103    GLuint texture() const;
    97104    QSize size() const;
     
    111118#endif
    112119
     120    static bool hasOpenGLFramebufferBlit();
     121    static void blitFramebuffer(QGLFramebufferObject *target, const QRect &targetRect,
     122                                QGLFramebufferObject *source, const QRect &sourceRect,
     123                                GLbitfield buffers = GL_COLOR_BUFFER_BIT,
     124                                GLenum filter = GL_NEAREST);
     125
    113126protected:
    114127    int metric(PaintDeviceMetric metric) const;
     
    117130private:
    118131    Q_DISABLE_COPY(QGLFramebufferObject)
    119     QGLFramebufferObjectPrivate *d_ptr;
    120     friend class QGLDrawable;
     132    QScopedPointer<QGLFramebufferObjectPrivate> d_ptr;
     133    friend class QGLPaintDevice;
     134    friend class QGLFBOGLPaintDevice;
     135};
     136
     137class QGLFramebufferObjectFormatPrivate;
     138class Q_OPENGL_EXPORT QGLFramebufferObjectFormat
     139{
     140public:
     141    QGLFramebufferObjectFormat();
     142    QGLFramebufferObjectFormat(const QGLFramebufferObjectFormat &other);
     143    QGLFramebufferObjectFormat &operator=(const QGLFramebufferObjectFormat &other);
     144    ~QGLFramebufferObjectFormat();
     145
     146    void setSamples(int samples);
     147    int samples() const;
     148
     149    void setAttachment(QGLFramebufferObject::Attachment attachment);
     150    QGLFramebufferObject::Attachment attachment() const;
     151
     152    void setTextureTarget(GLenum target);
     153    GLenum textureTarget() const;
     154
     155    void setInternalTextureFormat(GLenum internalTextureFormat);
     156    GLenum internalTextureFormat() const;
     157
     158#ifdef Q_MAC_COMPAT_GL_FUNCTIONS
     159    void setTextureTarget(QMacCompatGLenum target);
     160    void setInternalTextureFormat(QMacCompatGLenum internalTextureFormat);
     161#endif
     162
     163    bool operator==(const QGLFramebufferObjectFormat& other) const;
     164    bool operator!=(const QGLFramebufferObjectFormat& other) const;
     165
     166private:
     167    QGLFramebufferObjectFormatPrivate *d;
     168
     169    void detach();
    121170};
    122171
Note: See TracChangeset for help on using the changeset viewer.