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

Reply via email to