Ok, I have been informed there is are PyGame blits not derived from SDL, so that explains that.
{pygame_AlphaBlit, pygame_Blit} from clip above looks like Seems oblivious (sic) now it's pointed out. On Sat, Aug 16, 2008 at 4:37 PM, Nicholas Dudfield <[EMAIL PROTECTED]>wrote: > I had a little play with the test_blit_to_self.py: > > SDL VERSION: > > 1.2.13 prebuilts > > PYGAME: > > Mingw compiled, svn r 1619 > > OBSERVATIONS: > > Unmodified the test wouldn't run at all as noted earlier. > > I don't know if it's any help but I noticed after commenting out the > "blitting screen to self" section that I could get the "blitting surface to > self" test and "blitting surface to screen" to run the full 100 cycles if I > instantiated the Surface `a` with pygame.SRCALPHA flags. > > Also, if using BLEND_RGB_ADD flags "blitting screen to self" worked. Also > screen.copy() worked as a source... but eh. > > CONCLUSIONS: > > s.blit(s, (0,0)) works if SRCALPHA bits set for s > screen.blit(screen, step, None, pygame.BLEND_RGB_ADD) > > Is that any help for you guys in debugging?? I have no C-fu or I would have > a tinker myself. > > Cheers. > > ps... attached modified version of test with "use alpha blit" changes > > > pps. > > This is in surface.c around line 1996.... ?? > > /* see if we should handle alpha ourselves */ > if (dst->format->Amask && (dst->flags & SDL_SRCALPHA) && > !(src->format->Amask && !(src->flags & SDL_SRCALPHA)) && > /* special case, SDL works */ > (dst->format->BytesPerPixel == 2 || dst->format->BytesPerPixel == > 4)) > { > result = pygame_AlphaBlit (src, srcrect, dst, dstrect, the_args); > } > else if (the_args != 0) > { > result = pygame_Blit (src, srcrect, dst, dstrect, the_args); > } > else > { > result = SDL_BlitSurface (src, srcrect, dst, dstrect); > } > > >