2008/3/14, Nikita Egorov <[EMAIL PROTECTED]>: > > > > It assumes that the source x coordinate is aligned to 8 pixels, because > > there might be functions not handling the phase properly, but the > > warning > > could also be obsolete and all functions support unaligned sources. > > > Are you sure ? I just saw the latest generic.c and not found any > changes.. > > static void Bop_a1_set_alphapixel_Aop_rgb16( GenefxState *gfxs ) > { > int i; > int w = gfxs->length; > u8 *S = gfxs->Bop[0]; > u16 *D = gfxs->Aop[0]; > u16 Cop = gfxs->Cop; > > for (i=0; i<w; i++) { > if (S[i>>3] & (0x80 >> (i&7))) > D[i] = Cop; > } > } > > When the start pixel is not aligned onto 1 byte then output picture will > be wrong. Or I am not right ? > > My version of the function was : > > int i = gfxs->Xphase >> 13;/* !!!!!!! */ > int w = gfxs->length + i; /* !!!!!! */ > for (; i<w; i++,j++) { /* !!!!!!! */ > > "Xphase" I set in Bop_xy() > > int alignment = DFB_PIXELFORMAT_ALIGNMENT(gfxs->src_format); > > if ( alignment )/*only A1,A4*/ > gfxs->Xphase = ((x & alignment)<<16)/(alignment+1); > > I will be very glad if you was able to fix it by other way :) > -- > Best Regards > Nikita Egorov > [EMAIL PROTECTED] > [EMAIL PROTECTED] >
I'm sorry, I forgot new index "j", of course... :( My full text of the function is: static void Bop_a1_set_alphapixel_Aop_rgb16( GenefxState *gfxs ) { int i = gfxs->Xphase >> 13; int j = 0; int w = gfxs->length + i; u8 *S = gfxs->Bop[0]; u16 *D = gfxs->Aop[0]; u16 Cop = gfxs->Cop; for (; i<w; i++,j++) { if (S[i>>3] & (0x80 >> (i&7))) D[j] = Cop; } } -- Best Regards Nikita Egorov [EMAIL PROTECTED] [EMAIL PROTECTED]
_______________________________________________ directfb-users mailing list directfb-users@directfb.org http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-users