Now I can add local alpha with following code:
ioctl(fb0_fd, FBIOBLANK, FB_BLANK_NORMAL);
loc_alpha.enable = 1;
loc_alpha.alpha_in_pixel = 1;
result = ioctl(fb0_fd, MXCFB_SET_LOC_ALPHA, &loc_alpha);
if (result < 0)
{
printf("fb ioctl MXCFB_SET_LOC_ALPHA fail\n");
//goto err1;
}
ioctl(fb0_fd, MXCFB_WAIT_FOR_VSYNC, 0);
ioctl(fb0_fd, FBIOBLANK, FB_BLANK_UNBLANK)
But with this settings, I can only see the video and QT program at the same time in 16bpp mode(But the qt text above video is not very clear).
root@freescale ~$ fbset
mode "1280x720-60"
# D: 74.250 MHz, H: 45.000 kHz, V: 60.000 Hz
geometry 1280 720 1280 720 16
timings 13468 220 110 20 5 40 5
accel false
rgba 5/11,6/5,5/0,0/0
endmode
root@freescale ~$ fbset -fb /dev/fb2
mode "1280x720-54"
# D: 64.998 MHz, H: 40.624 kHz, V: 53.594 Hz
geometry 1280 720 1280 768 16
timings 15385 220 40 21 7 60 10
accel false
rgba 5/11,6/5,5/0,0/0
endmode
After I change the kernel command line to 32bpp:
console=ttymxc1,115200 video=mxcfb0:dev=hdmi,1280x720M@60,if=RGB24,bpp=32
or using fbset -depth 32,
then I can only see the QT graphic and I cann't see the video.
How can I make the correct settings to let QT and video be visible at the same time? I want to use QT widget's transparency to control the alpha effect.
Regards,