On Feb 12, 2008 8:49 PM, MVallevand <[EMAIL PROTECTED]> wrote:
> On Feb 12, 2008 8:27 PM, Denis Oliver Kropp <[EMAIL PROTECTED]> wrote:
> > You might wanna set the configuration, at least to set ARGB for transparency
> > over video (assuming an STB kind of device). Please run dfbinfo.
Still no luck but also no errors while it runs. The init looks much
cleaner and I now think I understand what is going on. It also works
with my previous manual code for updating primary which is a great.
DFBCHECK(DirectFBInit( &argc, &argv ));
DFBCHECK(DirectFBCreate( &dfb ));
DFBCHECK(dfb->GetDisplayLayer( dfb, DLID_PRIMARY, &osd_layer ));
osd_layer->SetCooperativeLevel(osd_layer, DLSCL_EXCLUSIVE);
DFBCHECK(osd_layer->GetSurface(osd_layer, &primary ));
osd_layer->SetOpacity( osd_layer, 0 );
DFBCHECK(dfb->GetDisplayLayer( dfb, 1, &bgnd_layer ));
DFBCHECK(bgnd_layer->SetCooperativeLevel(bgnd_layer, DLSCL_EXCLUSIVE));
bgnd_layer->SetOpacity( bgnd_layer, 255);
DFBCHECK(bgnd_layer->GetSurface(bgnd_layer, &secondary));
however the following still doesn't display anything on secondary
(u16) *dst;
if (secondary->Lock(secondary, DSLF_WRITE, (void**)(&dst), &pitch)
==DFB_OK) {
int i,j,pitch;
unsigned char y0,y1,u,v,r,g,b;
for (i=0;i<h;i++) {
for (j=0;j<pitch/2;j+=2) {
y0 = *ptr1++;
y1 = *ptr1++;
u = *ptr2++;
v = *ptr2++;
*(dst+j) = (u16) PIXEL_UYVY(y0,u,v);
*(dst+j+1) = (u16) PIXEL_UYVY(y1,u,v);
}
dst += pitch/2 ;
}
secondary->Unlock (secondary);
// primary->Blit(primary,secondary,NULL,0,0);
}
Martin
_______________________________________________
directfb-users mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-users