2

背景:我目前在我的 C# 项目中使用自定义控件(基本控件只是绘制自定义外观(使用 gdi+?))。这些控件中的大多数都具有用于不规则形状等的透明段。

问题:我希望在一组控件上覆盖一个半透明(不规则形状)面板。目前我将覆盖面板剪辑到所涉及的控件区域。这工作正常,结果看起来不错,但是过程太慢了。

问题:有什么方法可以通过混合一点 OpenGL/DirectX 并让视频卡执行所有必要的渲染而不是依赖相当慢的 CPU 来加快渲染过程?

4

3 回答 3

3

AFAIK 你不能真正混合 GDI+ 和 OpenGL/DX。

如果您的性能变慢并且绝对确定它是 GDI+ 中的瓶颈,而不是您的代码中的瓶颈,那么放弃 GDI+ 并用 DX/OGL 替换它可能是有意义的。(不过,您必须编写自己的控件,这将是 @$$ 的一大痛点)

或者,对于更简单的方法,试试 WPF/Silverlight!默认情况下它是可定制的和可换肤的,它基于 DX。

于 2008-11-07T09:23:28.103 回答
2

看看 WPF 和 Silverlight。你晚上会睡得更好。

于 2008-11-07T22:19:17.743 回答
0

您是否尝试在控件上打开 DoubleBuferring 以查看这是否可以提高性能?

http://www.codeproject.com/KB/graphics/DoubleBuffering.aspx

于 2008-11-07T16:32:10.267 回答