Important: Please read the Qt Code of Conduct -

What does QWidget.setMask() exactly do?

  • the environment in details:
    Qt 5.9.2 with EGLFS backend on a embedded linux board with ARM mali GPU.
    Kernel version 3.10.y.
    what exactly does setMask() do when rendering? what primitives in terms of QPA actions(hope this term is not too wrong) does it corresponding to? I've tried setOpacity(), it works as expected. The board which I work on is a bit special, /dev/fb0 which Qt work on is just one layer of output, there are other layers such as /dev/vo in the background, the whole output engine will automatically alpha blend the /dev/fb0 and /dev/vo to form the final real output. setOpacity() does indicate it work this way, I'd like to know what setMask() does exactly to learn why it does not work. Any guides to the internal Qt codes to find the answers?

  • Lifetime Qt Champion

    Hi and welcome to devnet,

    You should start by taking a look a QWidget's sources to see how setMask works. At the end of the chain, the QEglfsWindow class will be of interest.

Log in to reply