Hi,

On 05/12/2015 23:28, Axel Jäger via Interest wrote:
Hello,
I am trying to start a new application and want to start with the most
modern possible codebase so I am looking into different options. The
application I want to develop consists of a large OpenGL-View togehter with
some slider next to it to change some parameters of the view. I have a large
experience in building widget based applications in Qt but just for the fun,
I want to go for QML way.

I found this example that shows how to combine OpenGL-Drawing with with
QML-Items:

http://doc.qt.io/qt-5/qtquick-scenegraph-openglunderqml-example.html

Then I found the Qt Quick Controls template in QtCreator that uses
QQuickApplicationEngine which seems even more sophisticated than just using
a QQuickView with a QML-File as a root item.
I tried adopting the first example to use QQuickApplicationEngine by
changing the main-method according to the template and changed the main.qml
to use ApplicationWindow instead of Item as the root object. The effect is
that I see all the QML Items in a window but the custom opengl drawing is
not displayed. I see from the debugger that the opengl drawing code is
executed.


Attached you will find my modified example. I guess that I just did
something very stupid and the viewport of my custom opengl items is
something like 0x0.
I would be very happy if there was a an example that uses
QQuickApplicationEngine to load a qml-file with an ApplicationWindow and
that does some OpenGL drawing besides QtQuick based controlls.
Any help is greatly appriciated.

You're almost there. The clue is if you change the rendering to be done as a result of the afterRendering() signal instead of beforeRendering() it works. So that means the GL code is all fine. So, something must either be clearing or drawing on top of your GL rendering.

It turns out that the ApplicationWindow by default paints itself with the widget colour. You can use a style to disable this like so:

ApplicationWindow {
    visible: true
    width: 320
    height: 480
    style: ApplicationWindowStyle {
        background: Item {}
    }

    Squircle { ... }

    ...
}

Then it works as expected.

Cheers,

Sean

--
Dr Sean Harmer | [email protected] | Managing Director UK
KDAB (UK) Ltd, a KDAB Group company
Tel. +44 (0)1625 809908; Sweden (HQ) +46-563-540090
Mobile: +44 (0)7545 140604
KDAB - Qt Experts

_______________________________________________
Interest mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to