Qt Application Not Initially Displayed

Friedrich, Eugen (ADITG/SW1) efriedrich at de.adit-jv.com
Tue Sep 27 16:33:16 EDT 2016


Hello Justin,

are the destination and source regions correctly set up? You can see it with LayerManagerControl set scene.

If the ivi-surface is created this has no width and height only after application will attach the buffer to it and commit this to the compositor.


Best regards

Eugen Friedrich
Software Group I (ADITG/SW1)

Tel. +49 5121 49 6921
>-----Original Message-----
>From: genivi-ivi-layer-management [mailto:genivi-ivi-layer-management-
>bounces at mailman1.genivi.org] On Behalf Of Justin Noel
>Sent: Tuesday, September 27, 2016 8:51 PM
>To: genivi-ivi-layer-management at lists.genivi.org
>Subject: Qt Application Not Initially Displayed
>
>As I am testing the launcher for the GDP I notice that some
>applications are not being displayed if I stack the surfaces/layers on
>a ilmNotification surface callback. There seems to be a timing issue
>as the surfaces always gets displayed if I wait 500ms before handling
>the callback. Here is my workflow:
>
>Start an application via systemd
>    Wait for surfaces to be created
>Callback is called on a thread with a new surface in it's parameters
>    Callback posts an event to the event loop copying the surfaceId
>Event handler on main thread is called to add / show the surface
>    Some accounting takes place
>    Layer is created if necessary
>    Layer and Screen are restacked to show this new surface
>
>I modeled my code after the gdp-hmi launcher and the ILM examples. Qt
>hello world applications fail to be displayed. If after some time I
>restack the layer/screen the application appears and work normally.
>The EGL Navigation and Input examples always show without the need for
>a second stacking.
>
>I was able to get Qt applications to be initially displayed by doing
>one of two things:
>
>1) Place a msleep(500) in the callback before posting my event. This
>suggests maybe the surface it not fully initialized when I'm doing the
>stacking. However, LayerManagerControl get scene displays the correct
>stack.
>
>2) Cause Qt to re-expose the window. I stumbled across this when I
>notice some Qt apps worked.
>
>    a) Cause Qt to re-expose the application via a showFullScreen()
>           Window {
>                visible: true
>                Component.onCompleted: showFullScreen()
>           }
>
>     b) This might suggest only full screen works, but if I reverse
>full screen and normal it also works
>           Window {
>               visible: true
>               visibility: Window.FullScreen
>               Component.onCompleted: show()
>
>     c) It does not work without an actual transition of window state.
>So calling show() again doesn't work
>
>Has anyone run across this behavior before? Thanks!
>
>-Justin
>_______________________________________________
>genivi-ivi-layer-management mailing list
>genivi-ivi-layer-management at mailman1.genivi.org
>http://lists.genivi.org/cgi-bin/mailman/listinfo/genivi-ivi-layer-management


More information about the genivi-ivi-layer-management mailing list