I know there are a few of you out there who would like to know what I did to modify Chromium Embedded Framework to support off-screen rendering with a proper alpha channel. There is an issue for it on CEF website where I have added a comment on the subject along with a patch. You can also download the patch here.

To recap - the patch simply adds a flag to the window info structure which is passed along to WebView::SetIsTransparent and adds some code to clear the WebView's canvas before painting. With this you will get your web pages rendering with transparency properly - but there will still be a problem with text. The issue with text is that Chromium uses GDI for its text rendering and GDI will nuke the alpha channel for the pixels filled in by the text rendering. I have seen a couple patches associated with other projects that deal with this issue, but for myself I have simply chosen to build the Chromium code with ENABLE_SKIA_TEXT=1 defined, making Chromium use Skia for font rendering rather than GDI. Problem solved (well enough for me).

I hope this helps some of you other people out there trying to use CEF in this manner.