On Montag 04 September 2006 23:01, Stefan Lucke wrote:
> On Donnerstag 22 Juni 2006 02:58, Ville Syrjälä wrote:
> > Hi,
> > 
> > Field based blitting support for matrox cards is now in cvs.
> 
> I know it's late, but I've been busy with other things.
> 
> It still suffers from the same problem I wrote in a private mail
> to Ville on 2006-05-24:
> 
> >> When the OSD is blended to screen surface, it is visible double high
> >> on one field. Sometimes there is a shadow from normal high OSD
> >> visible too.
> This shadow is more likely a shrinked picure of a previous frame.
> Should I make a screen shot to show this ?
> 

I think I found the bug: Whenever blit mode changes from field-blit to
frame-blit or vice versa, destination offsets have to be recalculated.
Attached patch will fix this issue for me and I think I'll get some
feedback on softdevice-devel list soon.

-- 
Stefan Lucke
? mga_fix_01.patch
? mga_fix_02.patch
? mga_trace_01.patch
Index: matrox.c
===================================================================
RCS file: /cvs/directfb/DirectFB/gfxdrivers/matrox/matrox.c,v
retrieving revision 1.101
diff -U 3 -r1.101 matrox.c
--- matrox.c	26 Aug 2006 09:34:19 -0000	1.101
+++ matrox.c	5 Sep 2006 16:15:25 -0000
@@ -705,7 +705,8 @@
 {
      MatroxDriverData *mdrv = (MatroxDriverData*) drv;
      MatroxDeviceData *mdev = (MatroxDeviceData*) dev;
-
+     bool             prev_blit_fields = mdev->blit_fields;
+     
      if (state->modified == SMF_ALL) {
           mdev->valid = 0;
 
@@ -896,7 +897,8 @@
                break;
      }
 
-     if (state->modified & SMF_DESTINATION) {
+     if (prev_blit_fields != mdev->blit_fields ||
+         state->modified & SMF_DESTINATION) {
           matrox_set_destination( mdrv, mdev, state->destination );
           state->modified |= SMF_CLIP;
      }
_______________________________________________
directfb-dev mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev

Reply via email to