我看到过类似这样的东西,想知道是否可能,比如说我运行我的应用程序并且它会在下面显示渲染结果。
所以基本上是在屏幕上进行渲染而没有窗口。
这个可能吗?还是说是谎言?
注:希望在Windows和C++中实现。
我几年前写了一个开源项目,用于在桌面背景上实现这个功能。它被称为Uberdash。如果您遵循窗口层次结构,桌面只是一个位于某种“背景”容器中的窗口。然后有一个主容器和一个前置容器。前置容器是窗口变成全屏或“始终置顶”的方式。您可以尝试使用Aero合成将具有alpha的窗口呈现在前置容器中,但是您需要将事件传递给较低的窗口。它看起来不太好。
另外,一些显卡技术中有一个称为覆盖/下层的技术。您曾经可以直接渲染到覆盖层,您的GPU会直接应用它,而不会干扰主存储器。因此,即使您进行屏幕截图,您的覆盖/下层也不会出现在屏幕截图中。不幸的是,MS在Vista中禁止了这项技术......