Wednesday, August 19, 2015

i.MX6 Qt Quick2 display mirroring and scaling

This is about  screen mirroring and scaling with Qt Quick2 content on the i.MX6.


The way I did it was to use the IPU's to scale and copy out a grabbed screen image to the second display. The event mechanism was triggered by a Quick property in the Window item.

The linked file isn't the exact source code that went into production, but it shows the how  the mirror / scaling can be done. It contains a nasty goto/label thing ... useful in the context since if something breaks, the IPU tasks needs to be shutdown and not to be started again. 

The performance is quite good thanks to the high performance IPU's. There is some load on the CPU when doing the "grab", but it isn't a problem on a Quad i.MX6


 The sourcecode below can be used under the LGPL v2 or later license. The complete code package is available on request.



qsgthreadedrenderloop.cpp

Friday, August 14, 2015

Qt Declarative 2d on i.MX7

Time for some updates on the Qt Declarative 2d project.

I have recently focused on changing the rendering mechanism to a custom frame buffer hitting solution. The heart of it is a ARM assembler routine for alpha blending that composes the the graphics on to the "window" backbuffer. The assembler runs in circles around Qt's drawImage,
which was the primary composing mechanism I used before the assembler routine.

I am also lucky to have a i.MX7 board for certifying Qt Declarative 2d on. It runs very nicely.

The rssnews demo running on the i.MX7 using Qt Declarative 2d with the new rendering engine:



If you have hardware that you would like that to be certified, please contact me at:

michael.grunditz@prevas.se.