On Dienstag, 15. November 2005 21:34, Mark Adams wrote:
> > I guess that the changes to unichrome/uc_overlay.c will break
> > softdevice. For VIA I have currently the following special code:
> >
> >          if (isVIAUnichrome)
> >            videoLayer->SetLevel(1);
> 
> You could be right.  I assume softdevice wants the primary layer on top?
> 

I want the video layer alpha blended with surface from primary layer.
OSD is drawn on that. 

> Unfortunately, the existing implementation of levels was broken
> because it had a positive value as being below the primary.  The
> documentation for SetLevel is clear that it should be the other way
> around.
> 
> You'll now need videoLayer->SetLevel(-1).

And check that (+1 vs. -1) at compile time against what ?
It would be best if no SetLevel() call would be required at all.
If there is a different behaviour of some hardware, the DirectFB API
should make that behaviour uniform.

Alpha handling on VIA is stange too, as that chipset doesn't seem
to support ARGB (only AiRGB = (255-A)RGB).

> 
> You'll also need to set DLOP_ALPHACHANNEL on the primary layer to get
> the behaviour you want.  This is necessary in order to support OPACITY
> as an alternative.  These options will fail on earlier versions
> (assuming you weren't setting DFB_CLE266_UNDERLAY) so you will need to
> check the primary's capabilities for DLCAPS_ALPHACHANNEL.

Setting of DLOP_ALPHACHANNEL is already checked for DLCAPS_ALPHACHANNEL
and DFB_CLE266_UNDERLAY wasn't used. Never heard about that enviroment
variable before you mentioned that.

> 
> > Lets see what will happen if pubilc cvs access is back.
> 
> You can always get a tarball from the web site if it's not:
> http://www.directfb.org/cgi-bin/viewcvs.cgi/DirectFB/gfxdrivers/unichrome/unichrome.tar.gz?tarball=1
> 

-- 
Stefan Lucke


_______________________________________________
directfb-dev mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev

Reply via email to