After a chat on irc today, this unexpected behaviour popped up again. It's bit me a few times, as well as people in irc.
import pygame surf = pygame.Surface((100, 100), pygame.SRCALPHA) flags = surf.get_flags() depth = surf.get_bitsize() assert(depth == 32) assert(flags & pygame.SRCALPHA == pygame.SRCALPHA) You would expect that surface to have the SRCALPHA flag if the surface was 32bit right? It doesn't at the moment. But is there a good reason why it does not? I can understand that if the surface returned was 16bit, or 8bit that the SRCALPHA flag is not set. However if it's 32bit, then I think it probably should be set. What do you think? Is there something we're missing? Can you see something breaking if I change this? So that if SRCALPHA is specified, and the bitsize is 32, then use the SRCALPHA flag. If someone specifies the SRCALPHA flag I think they expect it to be used - especially if the surface is 32 bit anyway.
