Stefan Lucke wrote: > On Samstag 06 Mai 2006 13:13, Stefan Lucke wrote: > >>Hi, >> >>I'm trying to implement the blitting flag DSBLIT_INTERLACED. >>That should be a solution for a 4:3 TVout downscaleing problem. >>Discussion first starts here: >>http://mail.directfb.org/pipermail/directfb-users/2005-October/000770.html >> >>When forced to do a separate stretchblit for each field, it works. >>But for some unkown reason, I could not get SetBlittingFlags(value) >>to be passed to matrox driver. >> >> scrSurface->SetBlittingFlags(DSBLIT_INTERLACED); >> scrSurface->StretchBlit(videoSurface, &src, &dst); >> > > > Oh damm compiler !!!! > > I added a trace fprintf() and saw DSBLIT_INTERLACED arrived in matroc.c > > So I changed: > mdev->blit_interlaced = flags & DSBLIT_INTERLACED; > > to > mdev->blit_interlaced = (flags & DSBLIT_INTERLACED) ? true : false; > > And SetBlittingFlags() works (test is now successfull) !! > > But I guess many other code parts don*t work as expected, > as 'bool bvalue = flags & MASK' is quite common in DirectFB code.
Yes, as Direct's bool is 8 bit now, only flags in the lowest eight bit will result in true. Does it work in C++ because the compiler takes care of converting it to bool BEFORE converting it to 8 bit? Anyways, all places must be corrected. I'm still not sure what looks better, "(expr) ? true : false" or "!!(expr)", or even a macro. -- Best regards, Denis Oliver Kropp .------------------------------------------. | DirectFB - Hardware accelerated graphics | | http://www.directfb.org/ | "------------------------------------------" _______________________________________________ directfb-dev mailing list [email protected] http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev
