> > > The only result is OSD only with videoLayer->SetLevel(-1) or
> > > video only when called with +1 ("-- with alpha .." is printed).
> >
> > Which pixelformat is your OSD? It should have an alpha channel :)
>
> osdLayer is set by: osdLayer=dfb->GetDisplayLayer(DLID_PRIMARY);
Can you add some code to print out the _final_ layer and surface
settings for the primary layer? If you're only seeing the OSD, I'm
convinced you do not have all of:
DLOP_ALPHACHANNEL set on the PRIMARY
DLOP_OPACITY NOT set on either layer
DSPF_ARGB or DSPF_AiRGB pixelformat on the primary (the latter being
easier to use)
Graphics in the surface that are not entirely opaque
VIA Unichrome Video layer set to level -1
> (I know it looks ugly but it is here (setting/changeing surface
> info is done in SetParams())):
> http://cvs.berlios.de/cgi-bin/viewcvs.cgi/softdevice/softdevice/video-dfb.c?rev=1.60&content-type=text/vnd.viewcvs-markup
... which doesn't set DLOP_ALPHACHANNEL on the primary anywhere, as
far as I can tell.
> So its either the sequence of settings of some capabiliies or some other
> magic :-( .
You should be able to check whether it's the sequence of settings by
printing out the final settings that your code ends up configuring.
> From directfb code I do not understand the dfb_layers_hook_primary()
> function around line 491 in unichrome/unichrome.c .
> Does it set or retrieve function pointers.
Both.
> If it sets some function pointers I've no
> clue where member's of ucOldPrimaryFuncs were set.
By DirectFB, not the gfxdriver.
If you're convinced there's a bug in the driver and not in the client
code, put printfs in uc_overlay.c and uc_primary.c to show what gets
written to the V_ALPHA_CONTROL register.
Mark
_______________________________________________
directfb-dev mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev