On Montag 08 Mai 2006 18:54, Ville Syrjälä wrote:
> On Sun, May 07, 2006 at 10:52:54PM +0200, Stefan Lucke wrote:
> > 
> > Ok, here is the latest one (done against DirectFB cvs from 2006-04-14).
> > But I'd like to have a comment from Ville, as I count him as _the_
> > reference of matrox programming.
> 
> :)
> 
> I actually experimented with something similar some time ago but I 
> didn't get the patch into a good enough shape so it was left gathering 
> dust on my HD. My approach was done without a new blitting flag. My idea 
> was that a blit should handle the fields properly without any flags. 
> I've attached the patch. I just excavated it from my source tree which 
> was a real mess so it might not even compile.

I tested your patch. I applies with a few offsets and compiles clean.
There are 2 issues:
- I guess the restore of registers is missing. Had a similary behaviour
  when dropping register restore from my patch. I'm doing:
    scrSurface->SetBlittingFlags(DSBLIT_NOFX);
    scrSurface->StretchBlit(videoSurface, &src, &dst);
    if (OSDpresent)
    {
      scrSurface->SetBlittingFlags(DSBLIT_BLEND_ALPHACHANNEL);
      scrSurface->StretchBlit(osdSurface, &osdsrc, &osddest);
    }
  So the OSD is at double high, partly out of screen.
- When OSD disappears there are a few strechblits of video witch
  results in half high video on TV

Your patch does detect interlaced source correct, without setting
this DSCAPS_INTERLACED video shows as without patch.

> 
> The code is also a little strange as it tries to avoid writing to TEXORG 
> because that will flush the texture cache. It also allows one to swap 
> the fields by specifying differently aligned y-coordinates to source and 
> destination. Unfortunately these two features also made the code do 
> wrong things. Currently it leaves *ORG registers pointing to field 0 but 
> it can start blitting from using field 1 coordinates. Now that I think 
> about it it might be best to solve the problem by not switching *ORG for 
> different fields but instead just modify the blit coordinates.
> 
> Maybe the whole idea of flagless field blit is too much :) There are 
> certainly some unresolved issues like what to do with separated -> 
> progressive stretch blit. Also the code is getting more and more complex 
> due to all these fields and planes.
> 
> -- 
> Ville Syrjälä
> [EMAIL PROTECTED]
> http://www.sci.fi/~syrjala/
> 

-- 
Stefan Lucke

_______________________________________________
directfb-dev mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev

Reply via email to