What's the best way to draw alpha blended shapes. Like Ellipse API, Rect API, etc.

I was thinking Bitblt the source image, draw shape on it, alphablend back to source.

But there has to be a beter way? Hopefully?