Pull to refresh

Comments 20

Главная особенность WPF, а также то, почему он привязан к винде — поддержка аппаратного ускорения. Что является трудно достижимой задачей для любого кросс платформенного фреймвока.
И да и нет, да wpf привязан к Win. Но в авалонии добились наличия аппаратного ускорения при кроссплатформенном подходе.
Фризы при большом количестве контролов, даже на винде, говорит о том, что в Авалонии нет аппаратного ускорения. У WPF, при тех же условиях, нет проблем с производительностью.

На Linux и macOS отрисовка через Skia->OpenGL доступна и включена по-умолчанию начиная с версии 0.8.
На Windows отрисовка через Skia->ANGLE->Direct3D доступна с версии 0.8, включена по-умолчанию для Win8+ начиная с 0.10, для Windows 7 по-умолчанию выключена, Отрисовка через Skia->OpenGL (WGL) доступна с 0.10 и по-умолчанию выключена.


Так же с 0.10 поддерживается хостинг OpenGL-контента непосредственно в дереве элементов без whitespace problem (на Windows необходимо включить режим отрисовки через WGL)

А шрифты она тоже через OpenGL рисует?

Skia для этого использует т. н. font atlas

А что, Direct2d backend уже не используется?

По-умолчанию — нет. Это всё-таки довольно устаревшее API, которое давно не получало никаких существенных обновлений. А Skia активно пилится.

В теории WPF, наоборот, имеет хороший потенциал к кросс-платформенности, так как элементы рендерятся приложением самостоятельно, а не используются платформозависимые-примитивы.


А проблема не в аппаратном ускорении как таковом, а в том, что WPF жёстко привязан к DirectX без возможности нормальной расширяемости. Даже при наличии открытого исходного кода WPF проще написать свой фреймворк с нуля, чем адаптировать существующий.

Это уже обсуждали под прошлым постом (и уверен, что будут под следующими)
Вот в этой ветке уважаемый в DotNetRuChat (тг чат .net) господин Летучая Рыба ответил на несколько важных вопросов об AvaloniaUI и MAUI.

он же только c win 10 1809 работает

Откуда такая информация? На сколько я помню, заявляется кроссплатформенность вплоть до ведра и мака.

https://github.com/dotnet/docs-maui/blob/main/docs/supported-platforms.md — здесь написано что на винде используется WinUI 3


https://docs.microsoft.com/en-us/windows/apps/winui/winui3/ — здесь написано что WinUI 3 требует 10+:


WinUI 3 is the native UI platform component that ships with the Windows App SDK (completely decoupled from Windows 10 and later SDKs). The Windows App SDK provides a unified set of APIs and tools that can be used to create production desktop apps that target Windows 10 and later, and can be published to the Microsoft Store.

Если речь шла именно о поддерживаемых версиях винды, тогда да, согласен.

Написал на работе небольшую утилиту использую Avalonia.
Немного напугала очень сильная интеграция с ReactiveUI.
Но как оказалось, вполне можно использовать части ReactiveUI с Prism, интеграция которого тоже есть для Avalonia.

Сейчас во всю идет работа по разделению «имущества» и вынесению в самостоятельные репы, хотите быть в курсе — залетайте в чат авалонии.

Подскажите, а есть какие-то средства для внедрения 3D рендера в виде какого-то канваса? В WPF, к примеру, есть Viewport3D.

Дискорд сервер у сообщества есть?

Sign up to leave a comment.