I'm working on getting our Effect Essentials for After Effects package working with After Effects for Windows. Right now I'm working on getting the HSV Manipulator plugin ported over. It has an HSV color wheel which it displays and allows the user to choose a range of color to apply the effect to.
So I have the color wheel stored in one HBITMAP, and a mask for it stored in another. I'm attempting to use the MaskBlt () function to copy the color wheel to the screen using the mask. Where the mask is 0, I want the pixels that were already there to remain there. Where the mask is 1, I want the pixels from the color wheel to show through. This is basic graphics programming. But there doesn't appear to be a "ROP" (short for raster operator) that I can pass to MaskBlt () which performs the single most common masking operation!
I can invert the destination and "AND" it with the source. That's something I can think of absolutely no reason to do, but it's there just in case I need it. However, I can't show the destination in some parts and show the source in other parts. At least not without making special arrangements in the source image, like making the transparent areas a particular color, that I better not have used anywhere else in the image. The problem with that? I'm drawing an HSV Color wheel which needs to display every color possible!
How do Windows programmers put up with this shit? It's made even worse by the fact that MaskBlt () isn't even implemented on Windows 95, 98, or ME. So it turns out that I can't use MaskBlt () anyway because After Effects runs under 98 and ME! It's like Microsoft doesn't want me to be able to write good software for their platform.
