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. Can I bypass framebuffer with Qt?
Forum Updated to NodeBB v4.3 + New Features

Can I bypass framebuffer with Qt?

Scheduled Pinned Locked Moved Mobile and Embedded
14 Posts 3 Posters 6.7k Views 1 Watching
  • 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.
  • SGaistS Offline
    SGaistS Offline
    SGaist
    Lifetime Qt Champion
    wrote on last edited by
    #2

    Hi and welcome to DevNet,

    I don't have a ready made answer to give you but did you take a look at "QScreen":http://qt-project.org/doc/qt-4.8/qscreen.html ? It might be a starting point

    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
    0
    • J Offline
      J Offline
      jwilkie
      wrote on last edited by
      #3

      Right, I have looked at QScreen and I've found this blurb regarding custom drivers:
      "Custom screen drivers can be implemented by subclassing the QScreen class and creating a screen driver plugin (derived from QScreenDriverPlugin). The default implementation of the QScreenDriverFactory class will automatically detect the plugin, and load the driver into the server application at run-time using Qt's plugin system.
      When rendering, the default behavior is for each client to render its widgets as well as its decorations into memory, while the server copies the memory content to the device's framebuffer using the screen driver. See the Qt for Embedded Linux Architecture overview for details (note that it is possible for the clients to manipulate and control the underlying hardware directly as well)."

      So it sounds promising. But digging around on the web I haven't seen or heard about an example that isn't using the linux framebuffer. That's why I asked.
      Thanks.

      1 Reply Last reply
      0
      • D Offline
        D Offline
        davem
        wrote on last edited by
        #4

        Take a look at the gfxdriver plugins sources. For example, I recall the eglnullws plugin derives a QScreen class for a fullscreen EGL context without referencing the linux framebuffer.

        1 Reply Last reply
        0
        • J Offline
          J Offline
          jwilkie
          wrote on last edited by
          #5

          Hey guys, back at it again after a hiatus.
          So I've built my custom screen class and plugin and made a .so library as a result. My question now is how to go about installing it. I've tried putting this library in:
          targetfs/usr/lib/qt/plugins folder and then running my application with the switch -display -<name> with name being in the keys() routine in the plugin. But it fails with: driver not found. So I'm probably missing some installation instructions. It is a totally custom driver so I'm not using any of the Qt built in ones. Do I need to run a configure script entry such as "./configure -qt-gfx-<name>" ?
          It seems I don't because those commands enable some of the built in drivers.

          Any hints on this I'd appreciate it, thanks!

          1 Reply Last reply
          0
          • SGaistS Offline
            SGaistS Offline
            SGaist
            Lifetime Qt Champion
            wrote on last edited by
            #6

            Did you also create a "QScreenDriverPlugin":http://qt-project.org/doc/qt-4.8/qscreendriverplugin.html ?

            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
            0
            • J Offline
              J Offline
              jwilkie
              wrote on last edited by
              #7

              Yes I did create a class that inherits QScreenDriverPlugin. And it references my custom QScreen. So I built those into a .so file and I installed it in usr/lib/qt/plugins. But still, the driver doesn't seem to be recognized.

              1 Reply Last reply
              0
              • J Offline
                J Offline
                jwilkie
                wrote on last edited by
                #8

                Another possible hint.. After my failed attempt at running my application, I noticed that a file got created "Trolltech.conf" and in it some info about my custom driver "libpebble.so" that it doesn't seem to like?

                cat Trolltech.conf

                [Qt Plugin Cache 4.7.false]
                usr\lib\qt\plugins\gfxdrivers\libpebble.so=40704, 0, arm linux g++-4 full-config, 2013-04-18T19:55:30

                1 Reply Last reply
                0
                • SGaistS Offline
                  SGaistS Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote on last edited by
                  #9

                  I thought there was something more ! Have a look at "this":http://qt-project.org/doc/qt-4.8/deployment-plugins.html#loading-and-verifying-plugins-dynamically there are some advice to deploy the plugins and troubleshoot them.

                  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
                  0
                  • J Offline
                    J Offline
                    jwilkie
                    wrote on last edited by
                    #10

                    Thanks SGaist, this Deploying Plugins page has some helpful trouble shooting tips. I need to make sure I am building my application and Qt libraries in the same mode and version. Going to revisit my build process.

                    1 Reply Last reply
                    0
                    • SGaistS Offline
                      SGaistS Offline
                      SGaist
                      Lifetime Qt Champion
                      wrote on last edited by
                      #11

                      You're welcome !

                      And don't forget to clear the cache (always worth a try)

                      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
                      0
                      • J Offline
                        J Offline
                        jwilkie
                        wrote on last edited by
                        #12

                        Ok, how do I clear the cache?

                        1 Reply Last reply
                        0
                        • SGaistS Offline
                          SGaistS Offline
                          SGaist
                          Lifetime Qt Champion
                          wrote on last edited by
                          #13

                          IIRC, theres is a config file created in the home directory .config/ something that you can simply remove.

                          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
                          0
                          • J Offline
                            J Offline
                            jwilkie
                            wrote on last edited by
                            #14

                            ok. on my target it was /root/Settings/Trolltech.conf (I'm using Qt 4.7.4).

                            So I got Qt to recognize my driver, what helped me was the env variable QT_DEBUG_PLUGINS. With that set it would show me the errors when it was loading my plugin, and that pointed me to the problems.

                            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