[Solved] Applications running with OpenGL graphicssystem problem (Windows EC7)



  • After solving my "previous OpenGL problem":http://developer.qt.nokia.com/forums/viewthread/10757/, I've ran into a new one.

    I'm executing an application (either my own one or the example "animatedtiles") on Windows EC7 on a Blaze development platform. When I'm running it without OpenGL it looks fine. But when I'm using OpenGL as a graphicssystem, only the newly drawn parts are visible, the rest of the screen is black.

    I've got the following output:
    Load module....
    ...
    Load module: qglgraphicssystemd4.dll
    Load module: QtOpenGLd4.dll
    Load module: LIBGLESV2.dll
    ...
    Found SGX/MBX driver, enabling FullClearOnEveryFrame
    Found v1.4 driver, enabling brokenTexSubImage
    Found non-Nokia v1.4 driver, enabling brokenFBOReadBack
    QGLWindowSurface: Using plain widget as window surface QGLWindowSurface(0x455e40)
    Load module: glslcompiler.dll
    Load module: USC.dll

    I don't know if this problem is caused by Qt or OpenGL. Has maybe anyone experienced a similar problem?



  • I can't say anything about your own application (as you don't give any details), but QGraphicsView based applications (like AnimatedTiles) need the viewport update mode changed. In AnimatedTiles you will need to change this line:

    @
    view->setViewportUpdateMode(QGraphicsView::BoundingRectViewportUpdate);

    to:

    view->setViewportUpdateMode( QGraphicsView::FullViewportUpdate );
    @

    Basically, OpenGL needs to do a full redraw for every frame. This code change changes the update mode of the viewport accordingly.

    [EDIT: code formatting, Volker]



  • Thank you very much, now the AnimatedTiles example is working perfectly fine!

    Sadly, my example application is now fully black, nothing is drawn anymore.

    All I'm doing is adding a QDeclarativeView to the main window:

    @
    QVBoxLayout* poLayout = new QVBoxLayout();
    QDeclarativeView* view = new QDeclarativeView();
    view->setSource(QUrl("qrc:/img/SpinningIcon.qml"));
    view->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
    view->setViewportUpdateMode(QGraphicsView::FullViewportUpdate);

    poLayout->addWidget(view);
    

    @

    The SpinningIcon.qml draws a rotating image which moves around the screen.



  • The QDeclarativeView is drawn perfectly fine, also in my other examples now.
    But I've still got a problem with the widgets drawn outside the QDeclarativeView. There is a black border around the QDeclarativeView and only the text updates of the labels are drawn. The rest of the screen is black.

    I've also got an examples without a QDeclarativeView, just two labels with text updates and some input fields. Only the labels with the text updates are drawn, the rest of the screen is black.

    Does somebody know what the problem could be? Thank you in advance!



  • I do not have that problem when running the application in full screen mode.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.