C#将GDI+与OpenGL/DDirectX相结合



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

问题:我想在一组控件上覆盖一个半透明(不规则形状)面板。目前,我将盖板卡在相关控件的区域。这样做效果很好,结果看起来也不错,但过程太慢了。

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

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

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

或者,要获得更简单的方法,请尝试WPF/Silverlight!默认情况下,它是可自定义和可剥皮的,并且基于DX。

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

你有没有试着在控件上打开DoubleBuferring,看看这是否能提高你的性能?

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

最新更新