c++ - 分层窗口、UpdateLayeredWindow 和性能

标签 c++ mfc winapi

我正在使用分层窗口,它们似乎会造成相当大的性能损失(我的一个核心已完全使用)。有什么方法可以调整分层窗口的性能吗? Direct2D 是可行的替代方案吗? (我的分层窗口需要有每个像素的 alpha)。

谢谢, H

最佳答案

在 Vista 和更高版本(在 Aero 下)上,它应该不会对性能产生太大影响,因为操作系统无论如何都使用合成并为此进行了优化(这就是为什么 Microsoft 推荐使用显卡来运行 Vista)。在 XP 上,它肯定会减慢速度,因为它在设计时并未考虑到成熟的 alpha 合成。

对于每像素 alpha,您的意思是您希望窗口的某些部分是透明的吗?如果是,DirectX 根本帮不了你 - DirectX 只会帮助将透明图像渲染到你的窗口背景上,但不会使你的窗口本身透明。

关于c++ - 分层窗口、UpdateLayeredWindow 和性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3169258/

相关文章:

c - 使用 WinAPI 线程的 Winsock 服务器重置第一个连接

c++ - Visual Studio 2015 "cannot instantiate abstract class"构建 openFrameworks 0.9.0 编译失败

c++ - DirectX 10 资源泄漏

c++ - 错误 C2782 : Template parameter Init is ambigous C++ calling a method

c++ - 父类和内部类同名时名称解析错误

c++ - Lock/CriticalSection 与 c++ 中的 volatile 的可见性

c++ - MFC 应用程序在添加列表控件元素时卡住

c# - PostMessage 的字节数组编码

c++ - 如何将 CString 转换或转换为 LPWSTR?

c++ - 如何获取 ShellExecute 调用的 exe 的返回值