In Pygame, there is a special_flags argument to surface.blit. This let you combine pixels in ways different than simply copying them. For example, the multiply mode lets you multiply the pixels together.
How do I achieve this using SDL from C? I've looked at the SDL documentation, and I don't see any obvious ways of doing this.