Thanks all for your help, WebKit is working lovely now
on my platform.

Thanks again
Rachel

--- Claudio Ciccani <[EMAIL PROTECTED]> wrote:

> 
> Il giorno ven, 29/02/2008 alle 23.58 +0100, Denis
> Oliver Kropp ha
> scritto:
> > Rachel Bassett wrote:
> > > By the way the change I made to cairo 1.4.12,
> was in
> > > cairo-directfb-surface.c in function
> > > _cairo_directfb_surface_clone_similar() where
> code
> > > says .....
> > >         if (image_src->format ==
> CAIRO_FORMAT_A1) {
> > >             /* A1 -> A8 */
> > >             for (i = 0; i < height; i++) {
> > >                 for (j = src_x; j < src_x +
> width;
> > > j++)
> > >                     dst[j] = (src[j>>3] & (1 <<
> > > (j&7))) ? 0xff : 0x00;
> > >                 dst += pitch;
> > >                 src += image_src->stride;
> > >             }
> > >         }
> > >         else {
> > >       /* A8 -> A8 */
> > >             for (i = 0; i < height; i++) {
> > >                 direct_memcpy( dst+src_x,
> src+src_x,
> > > sizeof(*dst)*width );
> > >                 dst += pitch;
> > >                 src += image_src->stride;
> > >             }
> > >         }
> > > 
> > > where I changed the line direct_memcpy(
> dst+src_x,
> > > src+src_x, sizeof(*dst)*width ); to
> direct_memcpy(
> > > dst+src_x, src+src_x, (sizeof(*dst)*width)*4 );
> as
> > > *dst is an unsigned char and therefore a size of
> 1 x
> > > by width (in pixels).
> > 
> > Seems to be fixed, even in official git tree :)
> > 
> > 
> >   655         if (image_src->format ==
> CAIRO_FORMAT_A1) {
> >   656             /* A1 -> A8 */
> >   657             for (i = 0; i < height; i++) {
> >   658                 for (j = src_x; j < src_x +
> width; j++)
> >   659                     dst[j] = (src[j>>3] & (1
> << (j&7))) ? 0xff : 0x00;
> >   660                 dst += pitch;
> >   661                 src += image_src->stride;
> >   662             }
> >   663         }
> >   664         else {
> >   665             int len;
> >   666
> >   667             if (image_src->format ==
> CAIRO_FORMAT_A8) {
> >   668                 dst += src_x;
> >   669                 src += src_x;
> >   670                 len  = width;
> >   671             } else {
> >   672                 dst += src_x * 4;
> >   673                 src += src_x * 4;
> >   674                 len  = width * 4;
> >   675             }
> >   676
> >   677             for (i = 0; i < height; i++) {
> >   678                 direct_memcpy (dst+src_x,
> src+src_x, len);
> >   679                 dst += pitch;
> >   680                 src += image_src->stride;
> >   681             }
> >   682         }
> > 
> 
> Arrghh... either in the new backend there is a bug
> in clone_similar()!! 
> Look at the "src_x" being added twice to both "dst"
> and "src"!
> 
> Just committed a fix to the cairo repo. Please,
> update your copy.
>  
> 
> -- 
> Claudio Ciccani
> [EMAIL PROTECTED]
> [EMAIL PROTECTED]
> http://directfb.org
> 
> 



      __________________________________________________________
Sent from Yahoo! Mail.
A Smarter Inbox. http://uk.docs.yahoo.com/nowyoucan.html

_______________________________________________
directfb-users mailing list
directfb-users@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-users

Reply via email to