How to write custom screen driver using Qt 5.8 without using framebuffer?



  • In my previous project we used Qt 4.8 , and we used QScreenDriverPlugin for custom screen driver implementation without using frame buffer.
    Currently we move to Qt 5.8 and as in this version QScreenDriverPlugin has been removed.
    So, could you please tell me how could i write my custom screen driver using Qt 5.8 without using frame buffer?


  • Lifetime Qt Champion

    Hi and welcome to devnet,

    You're likely looking for the Qt Platform Abstraction documentation.

    Hope it helps



  • @SGaist : Thanks



  • For Development of QPA plugin using Qt 5.8 following basic classed are needed:

    1. QPlatformIntegartionPlugin:
      * Entry point for the plugin
      * Factory Class
      *QPlatformIntegration creates it by calling the createPlatformWindow method. It doesn’t care
      for the contents of the window.
    2. QPlatformScreen:
      This class represents your visual/physical displays ( i.e. monitors ).
      3)QPlatformWindow :
      *This class provides an abstraction used by QWindow for all it’s top-level windows.
      • Interface to the windowing system
      • It's about the window, not about the surface or content
    3. QPlatformBackingStore :
      • A handler for painting and flushing
      • It's about the surface or content, not the window(inner portion of the window)
    4. QPixmapData:
      • Stores pixmap data.
    5. QPlatformFontDatabase:
      • Interface to your platform fontdatabase.
      • Create and returns QFontEngine.


  • [0_1512394999226_main.cpp](Uploading 100%) @Avanish-Singh @SGaist
    I tried doing similar (BTW using QT5.9) and QPlatformBackingStore instance is just never being invoked. We also tried minimalegl plugin (one that comes with QT source) and same issue "QPlatformBackingStore instance is just never being invoked"
    Any ideas why ?

    sample app
    main.cpp

    #include <QQmlApplicationEngine>
    #include <QDir>
    #include <QGuiApplication>
    #include <QQmlEngine>
    #include <QQmlFileSelector>
    #include <QQuickView> 
    
    int main(int argc, char *argv[])
    {
    
        QGuiApplication::setAttribute(Qt::AA_ShareOpenGLContexts, true);
        QGuiApplication app(argc, argv);
        QQmlApplicationEngine engine;
        engine.load(QUrl(QStringLiteral("qrc:///demos/hw2/main.qml")));
    
        return app.exec();
    }
    

    main.qml

    import QtQuick 2.5
    import QtQuick.Window 2.2
    import QtMultimedia 5.5
    
    Window {
        id: w
        visible: true
        visibility: Window.FullScreen
        color: "#000000";	//default bkg color is black
    
    	Rectangle {
    		id: r1
    		x: 100; y: 100
    		width: 400; height: 200
    		color: "#646464"
    
    		Text {
    			anchors.centerIn: parent
    			text: "Hello, World1!"
    		}
    
    	}
    	
    	Rectangle {
    		id: r2
    		x: 600; y: 100
    		width: 400; height: 200
    		color: "#646464"
    
    		Text {
    			anchors.centerIn: parent
    			text: "Hello, World2!"
    		}
    
    	}	
    	VideoOutput {
        id: diVideo
    	x: 400; y: 400
    	width: 400; height: 200
        source: mediaPlayer
    	
    		MediaPlayer {
    			id: mediaPlayer
    			autoLoad: true
    			source: "file:///root/Downloads/movies/SampleVideo_1280x720_20mb.mp4"
    		}	   
    		
            Component.onCompleted: {
    			mediaPlayer.play();
    		}		
    	}	
    	
    }
    

  • Lifetime Qt Champion

    Hi,

    You don't give enough details. What platform are you on ? How are you starting your application ?



  • @SGaist
    I built QT 5.9.3 for Odroid XU4.
    When I start my app with "./myapp -platform eglfs" all renders ok on attached HDMI monitor.
    When I start my app with "./myapp -platform minimalegl" I see that that no debug logs comes out of (not even from a constructor)

    QMinimalEglBackingStore modified to save to image

    #include "qminimaleglbackingstore.h"
    
    #include <QtGui/QOpenGLContext>
    #include <QtGui/QOpenGLPaintDevice>
    
    QT_BEGIN_NAMESPACE
    
    QMinimalEglBackingStore::QMinimalEglBackingStore(QWindow *window)
        : QPlatformBackingStore(window)
        , m_context(new QOpenGLContext)
        , m_device(0)
    {
        qWarning("QMinimalEglBackingStore::QMinimalEglBackingStore", window);
    	
        m_context->setFormat(window->requestedFormat());
        m_context->setScreen(window->screen());
        m_context->create();
    }
    
    QMinimalEglBackingStore::~QMinimalEglBackingStore()
    {
        delete m_context;
    }
    
    QPaintDevice *QMinimalEglBackingStore::paintDevice()
    {
        return m_device;
    }
    
    void QMinimalEglBackingStore::flush(QWindow *window, const QRegion &region, const QPoint &offset)
    {
        Q_UNUSED(region);
        Q_UNUSED(offset);
    
        qWarning("QEglBackingStore::flush %p", window);
    
        static int c = 0;
        //save frame as image
        QOpenGLFramebufferObject fbo(size());
        qDebug()<<"bind success? : "<<fbo.bind();
        QImage frameImage = fbo.toImage();
        QString filename = QString("output%1.png").arg(c++, 4, 10, QLatin1Char('0'));
        qDebug() << "QMinimalEglBackingStore::flush() saving contents to" << filename.toLocal8Bit().constData();
        frameImage.save(filename);
    
        m_context->swapBuffers(window);
    }
    
    void QMinimalEglBackingStore::beginPaint(const QRegion &)
    {
        m_context->makeCurrent(window());
        m_device = new QOpenGLPaintDevice(window()->size());
    }
    
    void QMinimalEglBackingStore::endPaint()
    {
        delete m_device;
    }
    
    void QMinimalEglBackingStore::resize(const QSize &size, const QRegion &staticContents)
    {
        Q_UNUSED(size);
        Q_UNUSED(staticContents);
    }
    
    QT_END_NAMESPACE
    

  • Lifetime Qt Champion

    Did you modify Qt or wrote your own QPA ?



  • @SGaist
    no. used minimalegl plugin as it came from QT source code (qtbase/src/plugins/platforms/minimalegl). Just added few debug lines to check calls being made.


  • Lifetime Qt Champion

    You should set the QT_DEBUG_PLUGINS environment variable to 1 and start your application again to see what happens with it.



  • @SGaist

    running app with
    export QT_DEBUG_PLUGINS=1
    ./myapp -platform minimalegl

    From log I can only figure out that

    QPlatformBackingStore *QMinimalEglIntegration::createPlatformBackingStore(QWindow *window) const
    

    is not invoked.

    log

    App started
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/local/qt5xu4/plugins/platforms" ...
    QFactoryLoader::QFactoryLoader() looking at "/usr/local/qt5xu4/plugins/platforms/libdsccstreamerplatform.so"
    Found metadata in lib /usr/local/qt5xu4/plugins/platforms/libdsccstreamerplatform.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "dsccstreamerplatform"
            ]
        },
        "className": "QMinimalEglIntegrationPlugin",
        "debug": true,
        "version": 329987
    }
    
    
    Got keys from plugin meta data ("dsccstreamerplatform")
    QFactoryLoader::QFactoryLoader() looking at "/usr/local/qt5xu4/plugins/platforms/libphantom.so"
    Found metadata in lib /usr/local/qt5xu4/plugins/platforms/libphantom.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "phantom"
            ]
        },
        "className": "PhantomIntegrationPlugin",
        "debug": false,
        "version": 329987
    }
    
    
    Got keys from plugin meta data ("phantom")
    QFactoryLoader::QFactoryLoader() looking at "/usr/local/qt5xu4/plugins/platforms/libqeglfs.so"
    Found metadata in lib /usr/local/qt5xu4/plugins/platforms/libqeglfs.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "eglfs"
            ]
        },
        "className": "QEglFSIntegrationPlugin",
        "debug": false,
        "version": 329987
    }
    
    
    Got keys from plugin meta data ("eglfs")
    QFactoryLoader::QFactoryLoader() looking at "/usr/local/qt5xu4/plugins/platforms/libqlinuxfb.so"
    Found metadata in lib /usr/local/qt5xu4/plugins/platforms/libqlinuxfb.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "linuxfb"
            ]
        },
        "className": "QLinuxFbIntegrationPlugin",
        "debug": false,
        "version": 329987
    }
    
    
    Got keys from plugin meta data ("linuxfb")
    QFactoryLoader::QFactoryLoader() looking at "/usr/local/qt5xu4/plugins/platforms/libqminimal.so"
    Found metadata in lib /usr/local/qt5xu4/plugins/platforms/libqminimal.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "minimal"
            ]
        },
        "className": "QMinimalIntegrationPlugin",
        "debug": false,
        "version": 329987
    }
    
    
    Got keys from plugin meta data ("minimal")
    QFactoryLoader::QFactoryLoader() looking at "/usr/local/qt5xu4/plugins/platforms/libqminimalegl.so"
    Found metadata in lib /usr/local/qt5xu4/plugins/platforms/libqminimalegl.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "minimalegl"
            ]
        },
        "className": "QMinimalEglIntegrationPlugin",
        "debug": false,
        "version": 329987
    }
    
    
    Got keys from plugin meta data ("minimalegl")
    QFactoryLoader::QFactoryLoader() looking at "/usr/local/qt5xu4/plugins/platforms/libqoffscreen.so"
    Found metadata in lib /usr/local/qt5xu4/plugins/platforms/libqoffscreen.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "offscreen"
            ]
        },
        "className": "QOffscreenIntegrationPlugin",
        "debug": false,
        "version": 329987
    }
    
    
    Got keys from plugin meta data ("offscreen")
    QFactoryLoader::QFactoryLoader() looking at "/usr/local/qt5xu4/plugins/platforms/libqvnc.so"
    Found metadata in lib /usr/local/qt5xu4/plugins/platforms/libqvnc.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "vnc"
            ]
        },
        "className": "QVncIntegrationPlugin",
        "debug": false,
        "version": 329987
    }
    
    
    Got keys from plugin meta data ("vnc")
    QFactoryLoader::QFactoryLoader() looking at "/usr/local/qt5xu4/plugins/platforms/libqxcb.so"
    Found metadata in lib /usr/local/qt5xu4/plugins/platforms/libqxcb.so, metadata=
    {
        "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
        "MetaData": {
            "Keys": [
                "xcb"
            ]
        },
        "className": "QXcbIntegrationPlugin",
        "debug": false,
        "version": 329987
    }
    
    
    Got keys from plugin meta data ("xcb")
    QFactoryLoader::QFactoryLoader() checking directory path "/root/qt5build/qt5/dscctests/test2/platforms" ...
    loaded library "/usr/local/qt5xu4/plugins/platforms/libqminimalegl.so"
    QEglScreen 0x361a8
    
    Opened display 0x37ee8
    
    Initialized display 1 4
    
    	EGL_BUFFER_SIZE: 32
    	EGL_ALPHA_SIZE: 8
    	EGL_BLUE_SIZE: 8
    	EGL_GREEN_SIZE: 8
    	EGL_RED_SIZE: 8
    	EGL_DEPTH_SIZE: 24
    	EGL_STENCIL_SIZE: 8
    	EGL_CONFIG_CAVEAT: 12344
    	EGL_CONFIG_ID: 3
    	EGL_LEVEL: 0
    	EGL_MAX_PBUFFER_HEIGHT: 8192
    	EGL_MAX_PBUFFER_PIXELS: 67108864
    	EGL_MAX_PBUFFER_WIDTH: 8192
    	EGL_NATIVE_RENDERABLE: 0
    	EGL_NATIVE_VISUAL_ID: 0
    	EGL_NATIVE_VISUAL_TYPE: 12344
    	EGL_SAMPLES: 0
    	EGL_SAMPLE_BUFFERS: 0
    	EGL_SURFACE_TYPE: 1031
    	EGL_TRANSPARENT_TYPE: 12344
    	EGL_TRANSPARENT_BLUE_VALUE: 0
    	EGL_TRANSPARENT_GREEN_VALUE: 0
    	EGL_TRANSPARENT_RED_VALUE: 0
    	EGL_BIND_TO_TEXTURE_RGB: 0
    	EGL_BIND_TO_TEXTURE_RGBA: 1
    	EGL_MIN_SWAP_INTERVAL: 0
    	EGL_MAX_SWAP_INTERVAL: 0
    QMinimalEglIntegration
    
    Found metadata in lib /usr/local/qt5xu4/qml/QtQuick.2/libqtquick2plugin.so, metadata=
    {
        "IID": "org.qt-project.Qt.QQmlExtensionInterface/1.0",
        "MetaData": {
        },
        "className": "QtQuick2Plugin",
        "debug": false,
        "uri": [
            "QtQuick.2"
        ],
        "version": 329987
    }
    
    
    loaded library "/usr/local/qt5xu4/qml/QtQuick.2/libqtquick2plugin.so"
    Found metadata in lib /usr/local/qt5xu4/qml/QtQuick/Window.2/libwindowplugin.so, metadata=
    {
        "IID": "org.qt-project.Qt.QQmlExtensionInterface/1.0",
        "MetaData": {
        },
        "className": "QtQuick2WindowPlugin",
        "debug": false,
        "uri": [
            "QtQuick.Window.2"
        ],
        "version": 329987
    }
    
    
    loaded library "/usr/local/qt5xu4/qml/QtQuick/Window.2/libwindowplugin.so"
    Found metadata in lib /usr/local/qt5xu4/qml/QtMultimedia/libdeclarative_multimedia.so, metadata=
    {
        "IID": "org.qt-project.Qt.QQmlExtensionInterface/1.0",
        "MetaData": {
        },
        "className": "QMultimediaDeclarativeModule",
        "debug": false,
        "uri": [
            "QtMultimedia"
        ],
        "version": 329987
    }
    
    
    loaded library "/usr/local/qt5xu4/qml/QtMultimedia/libdeclarative_multimedia.so"
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/local/qt5xu4/plugins/mediaservice" ...
    QFactoryLoader::QFactoryLoader() looking at "/usr/local/qt5xu4/plugins/mediaservice/libgstaudiodecoder.so"
    Found metadata in lib /usr/local/qt5xu4/plugins/mediaservice/libgstaudiodecoder.so, metadata=
    {
        "IID": "org.qt-project.qt.mediaserviceproviderfactory/5.0",
        "MetaData": {
            "Keys": [
                "gstreameraudiodecode"
            ],
            "Services": [
                "org.qt-project.qt.audiodecode"
            ]
        },
        "className": "QGstreamerAudioDecoderServicePlugin",
        "debug": false,
        "version": 329987
    }
    
    
    Got keys from plugin meta data ("gstreameraudiodecode")
    QFactoryLoader::QFactoryLoader() looking at "/usr/local/qt5xu4/plugins/mediaservice/libgstcamerabin.so"
    Found metadata in lib /usr/local/qt5xu4/plugins/mediaservice/libgstcamerabin.so, metadata=
    {
        "IID": "org.qt-project.qt.mediaserviceproviderfactory/5.0",
        "MetaData": {
            "Keys": [
                "gstreamercamerabin"
            ],
            "Services": [
                "org.qt-project.qt.camera"
            ]
        },
        "className": "CameraBinServicePlugin",
        "debug": false,
        "version": 329987
    }
    
    
    Got keys from plugin meta data ("gstreamercamerabin")
    QFactoryLoader::QFactoryLoader() looking at "/usr/local/qt5xu4/plugins/mediaservice/libgstmediacapture.so"
    Found metadata in lib /usr/local/qt5xu4/plugins/mediaservice/libgstmediacapture.so, metadata=
    {
        "IID": "org.qt-project.qt.mediaserviceproviderfactory/5.0",
        "MetaData": {
            "Keys": [
                "gstreamermediacapture"
            ],
            "Services": [
                "org.qt-project.qt.audiosource"
            ]
        },
        "className": "QGstreamerCaptureServicePlugin",
        "debug": false,
        "version": 329987
    }
    
    
    Got keys from plugin meta data ("gstreamermediacapture")
    QFactoryLoader::QFactoryLoader() looking at "/usr/local/qt5xu4/plugins/mediaservice/libgstmediaplayer.so"
    Found metadata in lib /usr/local/qt5xu4/plugins/mediaservice/libgstmediaplayer.so, metadata=
    {
        "IID": "org.qt-project.qt.mediaserviceproviderfactory/5.0",
        "MetaData": {
            "Keys": [
                "gstreamermediaplayer"
            ],
            "Services": [
                "org.qt-project.qt.mediaplayer"
            ]
        },
        "className": "QGstreamerPlayerServicePlugin",
        "debug": false,
        "version": 329987
    }
    
    
    Got keys from plugin meta data ("gstreamermediaplayer")
    QFactoryLoader::QFactoryLoader() checking directory path "/root/qt5build/qt5/dscctests/test2/mediaservice" ...
    loaded library "/usr/local/qt5xu4/plugins/mediaservice/libgstmediaplayer.so"
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/local/qt5xu4/plugins/resourcepolicy" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/root/qt5build/qt5/dscctests/test2/resourcepolicy" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/local/qt5xu4/plugins/video/declarativevideobackend" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/root/qt5build/qt5/dscctests/test2/video/declarativevideobackend" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/local/qt5xu4/plugins/video/videonode" ...
    QFactoryLoader::QFactoryLoader() looking at "/usr/local/qt5xu4/plugins/video/videonode/libeglvideonode.so"
    Found metadata in lib /usr/local/qt5xu4/plugins/video/videonode/libeglvideonode.so, metadata=
    {
        "IID": "org.qt-project.qt.sgvideonodefactory/5.2",
        "MetaData": {
            "Keys": [
                "egl"
            ]
        },
        "className": "QSGVideoNodeFactory_EGL",
        "debug": false,
        "version": 329987
    }
    
    
    Got keys from plugin meta data ("egl")
    QFactoryLoader::QFactoryLoader() checking directory path "/root/qt5build/qt5/dscctests/test2/video/videonode" ...
    loaded library "/usr/local/qt5xu4/plugins/video/videonode/libeglvideonode.so"
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/local/qt5xu4/plugins/video/gstvideorenderer" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/root/qt5build/qt5/dscctests/test2/video/gstvideorenderer" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/local/qt5xu4/plugins/imageformats" ...
    QFactoryLoader::QFactoryLoader() looking at "/usr/local/qt5xu4/plugins/imageformats/libqgif.so"
    Found metadata in lib /usr/local/qt5xu4/plugins/imageformats/libqgif.so, metadata=
    {
        "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
        "MetaData": {
            "Keys": [
                "gif"
            ],
            "MimeTypes": [
                "image/gif"
            ]
        },
        "className": "QGifPlugin",
        "debug": false,
        "version": 329987
    }
    
    
    Got keys from plugin meta data ("gif")
    QFactoryLoader::QFactoryLoader() looking at "/usr/local/qt5xu4/plugins/imageformats/libqicns.so"
    Found metadata in lib /usr/local/qt5xu4/plugins/imageformats/libqicns.so, metadata=
    {
        "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
        "MetaData": {
            "Keys": [
                "icns"
            ],
            "MimeTypes": [
                "image/x-icns"
            ]
        },
        "className": "QICNSPlugin",
        "debug": false,
        "version": 329987
    }
    
    
    Got keys from plugin meta data ("icns")
    QFactoryLoader::QFactoryLoader() looking at "/usr/local/qt5xu4/plugins/imageformats/libqico.so"
    Found metadata in lib /usr/local/qt5xu4/plugins/imageformats/libqico.so, metadata=
    {
        "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
        "MetaData": {
            "Keys": [
                "ico",
                "cur"
            ],
            "MimeTypes": [
                "image/vnd.microsoft.icon"
            ]
        },
        "className": "QICOPlugin",
        "debug": false,
        "version": 329987
    }
    
    
    Got keys from plugin meta data ("ico", "cur")
    QFactoryLoader::QFactoryLoader() looking at "/usr/local/qt5xu4/plugins/imageformats/libqjpeg.so"
    Found metadata in lib /usr/local/qt5xu4/plugins/imageformats/libqjpeg.so, metadata=
    {
        "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
        "MetaData": {
            "Keys": [
                "jpg",
                "jpeg"
            ],
            "MimeTypes": [
                "image/jpeg",
                "image/jpeg"
            ]
        },
        "className": "QJpegPlugin",
        "debug": false,
        "version": 329987
    }
    
    
    Got keys from plugin meta data ("jpg", "jpeg")
    QFactoryLoader::QFactoryLoader() looking at "/usr/local/qt5xu4/plugins/imageformats/libqtga.so"
    Found metadata in lib /usr/local/qt5xu4/plugins/imageformats/libqtga.so, metadata=
    {
        "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
        "MetaData": {
            "Keys": [
                "tga"
            ],
            "MimeTypes": [
                "image/x-tga"
            ]
        },
        "className": "QTgaPlugin",
        "debug": false,
        "version": 329987
    }
    
    
    Got keys from plugin meta data ("tga")
    QFactoryLoader::QFactoryLoader() looking at "/usr/local/qt5xu4/plugins/imageformats/libqtiff.so"
    Found metadata in lib /usr/local/qt5xu4/plugins/imageformats/libqtiff.so, metadata=
    {
        "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
        "MetaData": {
            "Keys": [
                "tiff",
                "tif"
            ],
            "MimeTypes": [
                "image/tiff",
                "image/tiff"
            ]
        },
        "className": "QTiffPlugin",
        "debug": false,
        "version": 329987
    }
    
    
    Got keys from plugin meta data ("tiff", "tif")
    QFactoryLoader::QFactoryLoader() looking at "/usr/local/qt5xu4/plugins/imageformats/libqwbmp.so"
    Found metadata in lib /usr/local/qt5xu4/plugins/imageformats/libqwbmp.so, metadata=
    {
        "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
        "MetaData": {
            "Keys": [
                "wbmp"
            ],
            "MimeTypes": [
                "image/vnd.wap.wbmp"
            ]
        },
        "className": "QWbmpPlugin",
        "debug": false,
        "version": 329987
    }
    
    
    Got keys from plugin meta data ("wbmp")
    QFactoryLoader::QFactoryLoader() looking at "/usr/local/qt5xu4/plugins/imageformats/libqwebp.so"
    Found metadata in lib /usr/local/qt5xu4/plugins/imageformats/libqwebp.so, metadata=
    {
        "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
        "MetaData": {
            "Keys": [
                "webp"
            ],
            "MimeTypes": [
                "image/webp"
            ]
        },
        "className": "QWebpPlugin",
        "debug": false,
        "version": 329987
    }
    
    
    Got keys from plugin meta data ("webp")
    QFactoryLoader::QFactoryLoader() checking directory path "/root/qt5build/qt5/dscctests/test2/imageformats" ...
    loaded library "/usr/local/qt5xu4/plugins/imageformats/libqgif.so"
    AL lib: (WW) alc_initconfig: Failed to initialize backend "pulse"
    AL lib: (EE) ALCplaybackAlsa_open: Could not open playback device 'default': Device or resource busy
    loaded library "/usr/local/qt5xu4/plugins/imageformats/libqicns.so"
    loaded library "/usr/local/qt5xu4/plugins/imageformats/libqico.so"
    loaded library "/usr/local/qt5xu4/plugins/imageformats/libqjpeg.so"
    loaded library "/usr/local/qt5xu4/plugins/imageformats/libqtga.so"
    loaded library "/usr/local/qt5xu4/plugins/imageformats/libqtiff.so"
    loaded library "/usr/local/qt5xu4/plugins/imageformats/libqwbmp.so"
    loaded library "/usr/local/qt5xu4/plugins/imageformats/libqwebp.so"
    QMinimalEglIntegration::createPlatformWindow 0x157228
    
    QEglWindow 0x3e6570: 0x157228 0x1
    
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/local/qt5xu4/plugins/accessible" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/root/qt5build/qt5/dscctests/test2/accessible" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/local/qt5xu4/plugins/accessiblebridge" ...
    QFactoryLoader::QFactoryLoader() checking directory path "/root/qt5build/qt5/dscctests/test2/accessiblebridge" ...
    Warning: "Failed to connect: Connection refused"
    

  • Lifetime Qt Champion

    Might be a silly question but did you thought to call make install after building your custom version of the plugin ?



  • @SGaist
    :) of course

    root@odroid:~/qt5build/qt5/qtbase/src/plugins/platforms/minimalegl# make
    make: Nothing to be done for 'first'.
    root@odroid:~/qt5build/qt5/qtbase/src/plugins/platforms/minimalegl# make install
    /root/qt5build/qt5/qtbase/bin/qmake -install qinstall -exe ../../../../plugins/platforms/libqminimalegl.so /usr/local/qt5xu4/plugins/platforms/libqminimalegl.so
    strip --strip-unneeded /usr/local/qt5xu4/plugins/platforms/libqminimalegl.so
    /root/qt5build/qt5/qtbase/bin/qmake -install qinstall /root/qt5build/qt5/qtbase/lib/cmake/Qt5Gui/Qt5Gui_QMinimalEglIntegrationPlugin.cmake /usr/local/qt5xu4/lib/cmake/Qt5Gui/Qt5Gui_QMinimalEglIntegrationPlugin.cmake
    root@odroid:~/qt5build/qt5/qtbase/src/plugins/platforms/minimalegl#

    nenad



  • @nlazovic

    we did few experiments with QT samples (running with 0platfomr minimalegl), to see if / which one will instantiate QMinimalEglBackingStore. Below are the results.
    Some do, some dont. could not figure out pattern :(

    example /qtbase/examples/opengl/cube, QMinimalEglBackingStore instantiated !!!
    using QApplication / QWidget
    C++ only

    example /qtmultimedia/examples/multimediawidgets/videowidget, QMinimalEglBackingStore instantiated !!!
    using QApplication / QWidget
    C++ only

    example /qtdeclarative/examples/quick/quickwidgets/quickwidget, QMinimalEglBackingStore instantiated !!!
    using QApplication / QMainWindow
    C++/QML
    App crashes “Segmentation fault”

    example /qtdeclarative/examples/quick/quickwidgets/qquickviewcomparison, QMinimalEglBackingStore instantiated !!!
    using QApplication / QWidget
    C++/QML
    App crashes “Segmentation fault” / This plugin does not support propagateSizeHints()

    example /qtdeclarative/examples/quick/embeddedinwidgets, QMinimalEglBackingStore instantiated !!!
    using QApplication / QMainWindow
    C++/QML
    Something fails ?

    example /qtmultimedia/examples/multimedia/video/qmlvideo, QMinimalEglBackingStore NOT instantiated
    using QGuiApplication / QQuickView
    C++/QML

    example /qtquickcontrols/examples/quickcontrols/controls/filesystembrowser, QMinimalEglBackingStore NOT instantiated
    using QApplication / QQmlApplicationEngine
    C++/QML

    example /qtquickcontrols/examples/quickcontrols/controls/tableview, QMinimalEglBackingStore NOT instantiated
    Using QtQuickControlsApplication / QQmlApplicationEngine
    C++/QML

    example /qtquickcontrols/examples/quickcontrols/controls/touch, QMinimalEglBackingStore NOT instantiated
    Using QtQuickControlsApplication / QQmlApplicationEngine
    C++/QML

    example / qt3d/examples/qt3d/materials, QMinimalEglBackingStore NOT instantiated
    using QGuiApplication / Qt3DQuickWindow
    C++/QML


Log in to reply
 

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