具有软件回退的.NET / Mono HW加速图形

时间:2011-12-14 23:55:56

标签: .net graphics mono hardware-acceleration fallback

背景

据我所知,如果可能,WPF会进行硬件加速绘图,如果用户没有DirectX 9+,则会回退到软件渲染。这是一个非常有趣的想法,我甚至喜欢XAML的想法。

我不喜欢它的原因,以及为什么我甚至不打算学习它,是因为虽然Windows Forms是Microsoft技术,并且不如WPF,但它是跨平台的{{3对于WPF来说,这是不正确的,而且可能永远不会 关于Linux / OS X的.NET WinForms包装器是否会在未来出现专利砖墙,这是Mono,但这超出了这个问题的范围。

问题

.NET Mono 是否有任何可以让我使用基本的硬件对于没有所需GPU /驱动程序的系统,使用软件回退进行加速(想想alpha合成,快速像素操作等)?

简而言之:非古老桌面和现代笔记本电脑上的快速图形,但低端debate和类似设备上的可用图形。 这不适用于游戏开发

进一步说明

有一些技巧可以让GDI +更快。 netbooks可以大大改善Set / GetPixel 使用的像素格式可以极大地改善渲染,raw pointer access(32位,8位Alpha和RGB值32bppPArgb)。
Pre-multiplied by the alpha other可以获得更快的速度,但托管GDI +在某些方面仍然很慢。

我意识到的框架

  • tricks - AFAIK不支持Mono。是的。共享软件免费版。
  • Unity3D - 看起来有点复杂,似乎不支持软件渲染。
  • TAO Framework - 活跃,发达,优于TAO,但也没有软件后备。
  • OpenTK - 与上述问题相同。
  • SDL.NET - 与上述相同。
  • MonoXNA - “它完全是跨平台的,使用D3D,OpenGL及其自己的软件渲染器”。
  • Irrlicht / Silverlight - Moonlight建议。阿尔法质量,无论如何都没有任何支持。
  • dthorpe - 建议Mono.Cairo
  • Mark H - 高质量,高效的软件渲染,使用非正式AGG在C ++中实现。
  • C# port - 食人魔港口。支持单声道,开源,似乎还活着。有前途的。

我目前的选择是尝试Irrlicht,但仅仅因为我看不到其他选择。有吗?
此外,即使它似乎支持软件渲染,我也不知道它的状态是Axiom3D,它的支持链接是.NET/Mono wrapper

目前没人。

此外还有一个问题:我不知道如何在图形库周围“抽象”。如果我进一步意识到我做出了错误的选择,我将不知道该怎么做。

请原谅这个问题的长度。


编辑:由于这个问题有两个非常有建设性的答案,我会等几天,然后选出最受欢迎的答案作为接受的答案。

在另一则新闻中,OpenGL似乎是forum post,无论是OS供应商还是第三方,这些实现都将被OpenGL框架用于缺少第三方驱动程序。

3 个答案:

答案 0 :(得分:5)

cairo怎么样?它有多个后端,包括OpenGL,GDI,X和Quartz,几乎可以在任何设备上运行。 Mono.Cairo为它实现了.NET包装器,但我不确定这是否允许通过代码切换后端,或者是否需要为每个系统重建。

Cairo用作Moonlight,Gtk +和Mono的System.Drawing实现的后端。

答案 1 :(得分:4)

您的阵容中未提及的一个框架集是Silverlight。它在Windows上加速了硬件,而Moonlight现在在Linux上加速硬件加速。不确定软件的后备,但我认为它们必须有后备,因为它们都是为消费者的广泛使用而设计的。

答案 2 :(得分:1)

OpenTK然后使用http://www.mesa3d.org/怎么样?自从我查看mesa3d以来已经很长时间了,但它为OpenGL提供了软件渲染功能。