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/examples/opengl/framebufferobject/glwidget.cpp

    r2 r561  
    22**
    33** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
    4 ** Contact: Qt Software Information ([email protected])
     4** All rights reserved.
     5** Contact: Nokia Corporation ([email protected])
    56**
    67** This file is part of the examples 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
     37** @nokia.com.
    3838** $QT_END_LICENSE$
    3939**
     
    5454    setWindowTitle(tr("OpenGL framebuffer objects"));
    5555    makeCurrent();
    56     fbo = new QGLFramebufferObject(1024, 1024);
     56
     57    if (QGLFramebufferObject::hasOpenGLFramebufferBlit()) {
     58        QGLFramebufferObjectFormat format;
     59        format.setSamples(4);
     60        format.setAttachment(QGLFramebufferObject::CombinedDepthStencil);
     61
     62        render_fbo = new QGLFramebufferObject(512, 512, format);
     63        texture_fbo = new QGLFramebufferObject(512, 512);
     64    } else {
     65        render_fbo = new QGLFramebufferObject(1024, 1024);
     66        texture_fbo = render_fbo;
     67    }
     68
    5769    rot_x = rot_y = rot_z = 0.0f;
    5870    scale = 0.1f;
     
    114126    delete[] wave;
    115127    glDeleteLists(tile_list, 1);
    116     delete fbo;
     128    delete texture_fbo;
     129    if (render_fbo != texture_fbo)
     130        delete render_fbo;
    117131}
    118132
     
    130144
    131145    // render the 'bubbles.svg' file into our framebuffer object
    132     QPainter fbo_painter(fbo);
     146    QPainter fbo_painter(fbo);
    133147    svg_renderer->render(&fbo_painter);
    134148    fbo_painter.end();
     149
     150
     151
     152
     153
     154
    135155
    136156    // draw into the GL widget
     
    146166    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    147167
    148     glBindTexture(GL_TEXTURE_2D, fbo->texture());
     168    glBindTexture(GL_TEXTURE_2D, fbo->texture());
    149169    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
     170
    150171    glEnable(GL_TEXTURE_2D);
    151172    glEnable(GL_MULTISAMPLE);
Note: See TracChangeset for help on using the changeset viewer.