Alex Vazquez wrote:
> Hi,
> 
> i'm using directfb 1.0. The hardware it runs on supports five layers; 
> two of them are the video layer and the primary layer. I use the primary 
> layer to draw a semi-transparent gui (osd) over the video.
> 
> The problem i have is that i don't know how to clear the surface of the 
> primary layer keeping the transparent effect over the video. The only 
> way i can clear the primary surface is doing a primary_srfc->Clear 
> (primary_srfc, 0, 0, 0, 255) but that way i can't see the video through 
> the primary layer. I guess it has something to do with the layer/surface 
> configuration.
> 
> This is how i create the primary surface:
> 
>   dsc.flags      = DSDESC_CAPS;
>   dsc.caps      = DSCAPS_PRIMARY | DSCAPS_FLIPPING;
>   DFBCHECK(dfb -> CreateSurface(dfb, &dsc, &primary_srfc));
> 
>   DFBCHECK(primary_srfc -> SetDrawingFlags(primary_srfc, DSDRAW_BLEND));
> 
>   DFBCHECK (primary_srfc -> SetBlittingFlags (primary_srfc, 
> DSBLIT_BLEND_ALPHACHANNEL));
> 
> Then, i draw things and this is how i try to clear it (i also tried one 
> more Flip and one more clear):
> 
>   DFBCHECK (primary_srfc -> Clear (primary_srfc, 0, 0, 0, 0));
>   DFBCHECK (primary_srfc -> Flip (primary_srfc, NULL, DSFLIP_WAITFORSYNC 
> | DSFLIP_BLIT));
>   DFBCHECK (primary_srfc -> Clear (primary_srfc, 0, 0, 0, 0));

The blitting/drawing flags should not influence the Clear(). It could mean
that you have a driver which does not handle state changes properly. Did you
try "no-hardware"?

-- 
Best regards,
   Denis Oliver Kropp

.------------------------------------------.
| DirectFB - Hardware accelerated graphics |
| http://www.directfb.org/                 |
"------------------------------------------"

_______________________________________________
directfb-users mailing list
directfb-users@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-users

Reply via email to