Right, I didn't know where else to put this, so I thought I'd put it here.

I just got some time together and created a small test project to check some times on Windows API methods, and transparent drawing with it. Actually, I only checked BitBlt vs. Canvas.Draw(which is actually VCL), and bitblt won easily.

So, I went on with it(trying to draw transparent by creating a mask on the fly), and when I was done, I ran it, and it seemed a bit slow(FYI, it was 28-30 FPS, on a 1024*800 window(no fullscreen)......). After doing some speed tests, I noticed that the blitting itself took 1 milliseconds(rounded down) in total, BUT making the mask image took a whopping 30-35 milliseconds(!). It seems that making a TBitmap monochrome takes almost all of that time(approx. 29-34 milliseconds). SO, I'd like to know if there is any way of making a bitmap monochrome faster, or if there is any way to bypass the monochromization(is that a word) altogether without having to manually create and load masks.