【发布时间】:2023-04-05 22:49:02
【问题描述】:
我一直在编写一个小型桌面小工具类型的应用程序,它在屏幕底部显示滚动文本(类似于旧的 CNN 新闻行情),但是 GDI 的性能并不令人满意(高达 8-12 % 在四核上,20% 在单核上),即使在我尝试清除瓶颈之后。
我正在考虑使用 OpenGL 来渲染所有内容,但我不知道这是否是一个合理的选择,要求用户为这样的小型应用程序提供硬件加速。
有人对此有意见吗?
【问题讨论】:
我一直在编写一个小型桌面小工具类型的应用程序,它在屏幕底部显示滚动文本(类似于旧的 CNN 新闻行情),但是 GDI 的性能并不令人满意(高达 8-12 % 在四核上,20% 在单核上),即使在我尝试清除瓶颈之后。
我正在考虑使用 OpenGL 来渲染所有内容,但我不知道这是否是一个合理的选择,要求用户为这样的小型应用程序提供硬件加速。
有人对此有意见吗?
【问题讨论】:
如果您对使用 OpenGL 感到满意,并且您的目标用户对 OpenGL 带来的额外依赖项感到满意,那么我建议您使用它。 :)
就继续使用 GDI 而言,我会确保您尽可能多地渲染文本几次(通过渲染到位图等技术,然后只滚动它)。
如果这两个选项中的任何一个听起来都不吸引人,那么总会有 DirectX。
【讨论】:
您可以在 WPF 中编写应用程序并让 WPF 为您处理加速(它由 DirectX 提供支持)。
【讨论】:
我不想为这样的程序安装 open gl。你说你“试图”消除瓶颈,但听起来你并不成功。就像 lzcd 提到的那样,除了不断地重新绘制之外,还有其他方法可以滚动文本。为什么不直接绘制位图并滚动它?
【讨论】: