This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi,
I am using an OMAP3530 and wanting to overlay graphics over video. I have seen that using the sysfs commands I can set a colour key or global transparency, which both work well. Sadly, this is not what I would like. The graphic is rendered in 32bit ARGB form and so I would like the alpha component to act as a blending value for each pixel on screen. This is to achieve semi-transparent graphics and nice anti-aliasing.
How can this sort of blending be achieved with the DSS?
Thanks,
Andy
I have solved the problem.. to anyone interested, this is what I did:
Firstly, the SGX must render the graphics application as ARGB8888 32-bit pixels. Next, the frame buffer used by the graphics application, /dev/fb0 must be configured so that its format matches the format of the SGX output, ARGB. This can be achieved using the 'fbset' application:
# fbset -fb /dev/fb0 -rgba 8/16,8/8,8/0,8/24 -depth 32
Calling fbset should now give the following output:
mode "720x574-25"
# D: 13.500 MHz, H: 15.625 kHz, V: 25.000 Hz
geometry 720 574 720 574 32
timings 74074 12 68 5 41 64 5
rgba 8/16,8/8,8/0,8/24
endmode
Now all that is required is to set the 'global alpha value' for the overlay manager you are using, which can be achieved using the sysfs interface. In my case, this was manager1 for TV. (Also make sure your global alpha value for overlay0 (graphics) is 255):
# echo "1" > /sys/devices/platform/omapdss/manager1/alpha_blending_enabled
# echo "255" > /sys/devices/platform/omapdss/overlay0/global_alpha
I hope this helps!
Andy