Насколько мне известно, WPF по возможности выполняет отрисовку с аппаратным ускорением, с откатом к программному рендерингу, если пользователь не имеет DirectX 9+. Это очень интересная идея, и мне даже нравится идея XAML .
Причина, по которой мне это не нравится, и почему я даже не потрудился изучить это, заключается в том, что, хотя Windows Forms является технологией Microsoft и уступает WPF, она кроссплатформенная благодаря Mono , что-то не так для WPF и, вероятно, никогда не будет.
ведутся споры о том, ударит ли оболочка .NET WinForms для Linux / OS X в будущем кирпичную стену патентной защиты, но это выходит за рамки этого вопроса.
Есть ли какая-нибудь библиотека для .NET и Mono , которая позволит мне использовать базовое аппаратное ускорение (думаю, альфа-композитинг, быстрая манипуляция с пикселями и т. д.) с программным откатом для систем без необходимых графических процессоров / драйверов?
Вкратце: быстрая графика на устаревших настольных компьютерах и современных ноутбуках , но пригодная для использования графика на недорогих нетбуках и подобных устройствах. Это не для разработки игр .
Есть несколько уловок, чтобы сделать GDI + быстрее. Set / GetPixel значительно улучшены за счет доступа к необработанному указателю .
Используемый формат пикселей может значительно улучшить рендеринг, 32bppPArgb (32-битный с 8-битными значениями альфа и RGB , предварительно умноженный на альфа ).
Есть другие уловки , которые могут увеличить скорость, но управляемый GDI + все еще медленный для некоторых целей.
Мой текущий выбор - попробовать Иррлихт, но только потому, что я не вижу альтернативы.Есть?
Кроме того, несмотря на то, что он, кажется, поддерживает программный рендеринг, я не знаю, в каком состоянии он находится в его оболочке .NET / Mono , а ссылка на его поддержку - это сообщение на форуме .
на данный момент нет.
Кроме того, есть еще одна проблема: я не знаю, как «абстрагироваться» от графической библиотеки. Если в дальнейшем я пойму, что сделал неправильный выбор, я не буду знать, что делать.
Пожалуйста, простите за длину этого вопроса.
Изменить: Поскольку на этот вопрос было два действительно конструктивных ответа, я подожду несколько дней и отмечу наиболее одобренный как принятый ответ.
Из других новостей, похоже, что OpenGL реализован в программном обеспечении , как поставщиками ОС, так и третьими сторонами, и эти реализации будут использоваться фреймворками OpenGL в отсутствие сторонних драйверов.