Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. How to write custom screen driver using Qt 5.8 without using framebuffer?
Forum Update on Monday, May 27th 2025

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

Scheduled Pinned Locked Moved Unsolved Mobile and Embedded
14 Posts 3 Posters 3.8k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Offline
    A Offline
    Avanish Singh
    wrote on 14 Mar 2017, 04:13 last edited by
    #1

    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?

    1 Reply Last reply
    0
    • S Offline
      S Offline
      SGaist
      Lifetime Qt Champion
      wrote on 14 Mar 2017, 22:47 last edited by
      #2

      Hi and welcome to devnet,

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

      Hope it helps

      Interested in AI ? www.idiap.ch
      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

      1 Reply Last reply
      3
      • A Offline
        A Offline
        Avanish Singh
        wrote on 16 Mar 2017, 03:59 last edited by
        #3

        @SGaist : Thanks

        1 Reply Last reply
        1
        • A Offline
          A Offline
          Avanish Singh
          wrote on 22 Jun 2017, 05:43 last edited by
          #4

          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.
          N 1 Reply Last reply 4 Dec 2017, 13:40
          0
          • A Avanish Singh
            22 Jun 2017, 05:43

            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.
            N Offline
            N Offline
            nlazovic
            wrote on 4 Dec 2017, 13:40 last edited by nlazovic 12 Apr 2017, 13:44
            #5

            [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();
            		}		
            	}	
            	
            }
            
            1 Reply Last reply
            0
            • S Offline
              S Offline
              SGaist
              Lifetime Qt Champion
              wrote on 4 Dec 2017, 21:18 last edited by
              #6

              Hi,

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

              Interested in AI ? www.idiap.ch
              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

              N 1 Reply Last reply 5 Dec 2017, 03:19
              0
              • S SGaist
                4 Dec 2017, 21:18

                Hi,

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

                N Offline
                N Offline
                nlazovic
                wrote on 5 Dec 2017, 03:19 last edited by nlazovic 12 May 2017, 04:36
                #7

                @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
                
                1 Reply Last reply
                0
                • S Offline
                  S Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote on 5 Dec 2017, 22:16 last edited by
                  #8

                  Did you modify Qt or wrote your own QPA ?

                  Interested in AI ? www.idiap.ch
                  Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                  N 1 Reply Last reply 5 Dec 2017, 23:24
                  0
                  • S SGaist
                    5 Dec 2017, 22:16

                    Did you modify Qt or wrote your own QPA ?

                    N Offline
                    N Offline
                    nlazovic
                    wrote on 5 Dec 2017, 23:24 last edited by
                    #9

                    @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.

                    1 Reply Last reply
                    0
                    • S Offline
                      S Offline
                      SGaist
                      Lifetime Qt Champion
                      wrote on 7 Dec 2017, 22:24 last edited by
                      #10

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

                      Interested in AI ? www.idiap.ch
                      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                      N 1 Reply Last reply 8 Dec 2017, 06:36
                      1
                      • S SGaist
                        7 Dec 2017, 22:24

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

                        N Offline
                        N Offline
                        nlazovic
                        wrote on 8 Dec 2017, 06:36 last edited by
                        #11

                        @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"
                        
                        1 Reply Last reply
                        0
                        • S Offline
                          S Offline
                          SGaist
                          Lifetime Qt Champion
                          wrote on 8 Dec 2017, 21:41 last edited by
                          #12

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

                          Interested in AI ? www.idiap.ch
                          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                          N 1 Reply Last reply 9 Dec 2017, 01:46
                          0
                          • S SGaist
                            8 Dec 2017, 21:41

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

                            N Offline
                            N Offline
                            nlazovic
                            wrote on 9 Dec 2017, 01:46 last edited by nlazovic 12 Sept 2017, 01:46
                            #13

                            @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

                            N 1 Reply Last reply 9 Dec 2017, 06:22
                            0
                            • N nlazovic
                              9 Dec 2017, 01:46

                              @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

                              N Offline
                              N Offline
                              nlazovic
                              wrote on 9 Dec 2017, 06:22 last edited by
                              #14

                              @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

                              1 Reply Last reply
                              0

                              • Login

                              • Login or register to search.
                              • First post
                                Last post
                              0
                              • Categories
                              • Recent
                              • Tags
                              • Popular
                              • Users
                              • Groups
                              • Search
                              • Get Qt Extensions
                              • Unsolved