编辑:由于我的问题是由我的错误造成的,因此我将重新表述这个问题。
我在基于这里找到的代码的C++应用程序中,在窗口内托管了一个Silverlight。现在,我想将控件的内容复制到内存中,以便在自己的渲染器中使用该内容。我的问题是,当我将“EnableGPUAcceleration”设置为true时,BitBlt停止工作,我只得到黑色。
我觉得理论上应该有一种方法可以复制具有alpha通道的GPU加速的Silverlight控件的内容,例如使用glReadPixels之类的东西。
有人知道如何复制非无窗口gpu加速的Silverlight控件的带alpha的内容吗?
另一个问题是,窗口必须可见,没有其他窗口可以重叠它,否则我就得不到正确的内容。我希望托管窗口是不可见的。
可以在这里找到工作示例代码(尽管没有我正在努力让其工作的实际BitBlt)。