
Nikita
04.06.2017
12:19:39
чтобы историю писал
это аутизм какой-то на самом деле

Anatoly
04.06.2017
12:20:36

Nikita
04.06.2017
12:21:01
ещё есть вариант написать читалку/писалку истории

Google

Nikita
04.06.2017
12:21:06
на авалонии

Friedrich
04.06.2017
12:21:56
Дыа!

Nikita
04.06.2017
12:22:31
ты вот дыа, а я её летом в августе в продакшн потащу
муахаха

Friedrich
04.06.2017
12:22:48
Так это же здорово.
Я вообще-то свои небольшие тулы давно на ней пишу (не для продакшена, а для себя).
И действительно доволен.

Nikita
04.06.2017
12:24:16
не, я вот прямо в коммерческую софтину потащу
у WPFа зело тормозная отрисовка местами
_но_

Friedrich
04.06.2017
12:24:37
Время спустить Авалонию в pit of success :D

Nikita
04.06.2017
12:25:05
есть возможность через D3DImage использовать Texture2D из DirectX 10
а в Texture2D можно рисовать через Direct2D

Google

Nikita
04.06.2017
12:25:22
улавливаешь?

Friedrich
04.06.2017
12:25:56
Не улавливаю. Ты хочешь встроить Авалонию внутрь WPF-приложения?
Или это уже щас можно было делать?
Если можно отдельные контролы делать на Авалонии вместо WPF, и встраивать в WPF-окружение, тогда дайте две!
Я прям щас побегу WPF-Math портировать.

Nikita
04.06.2017
12:27:04
прям щас работает через winforms-interop
точнее, не через него
а через HwndHost
но не суть

Friedrich
04.06.2017
12:27:26
А нормально работает, без костылей?

Nikita
04.06.2017
12:27:33
ну как сказать
HwndHost - это и есть костыль

Friedrich
04.06.2017
12:27:46
Ну, просто у этих хостов вечные проблемы со скроллингом, трансформациями и пр.
Трансформации-то хрен с ними, а вот что layout иногда ломается — это ужас.

Daniel
04.06.2017
12:28:12
Господа, вопрос на секунду, есть ли в Телеграм чатик TypeScript?

Nikita
04.06.2017
12:28:31
потому что в WPFное окно встраивается другое окно
неподконтрольное WPFу

Friedrich
04.06.2017
12:28:36

Nikita
04.06.2017
12:28:40
со всеми вытекающими

Friedrich
04.06.2017
12:29:04
Я это понимаю. И проблемы в принципе решаются, но большими усилиями.

Google

Nikita
04.06.2017
12:29:37
ну вот в планах сделать нормальную встройку

Friedrich
04.06.2017
12:29:48
У команды WPF был огромный постик в бложике про способы решения проблем. И в конце такое резюме: мы, типа, с этим поразбирались, пришли к выводу, что можно всё сделать, но лучше трахайтесь с этим сами.

Nikita
04.06.2017
12:30:28
а чтобы сделать нормальную встройку, нужно наладить взаимодействие DirectX 11/10 с DirectX 9
это, в принципе, единственное, что надо сделать
оставшаяся часть инфраструктуры встройки уже готова и работает
а, ну ещё реализацию ITopLevelImpl сделать, но там маппинг 1 к 1

Friedrich
04.06.2017
12:31:42

Nikita
04.06.2017
12:32:01
https://stackoverflow.com/questions/9095089/wpf-and-directx-11-via-d3dimage
вот в эту сторону

Friedrich
04.06.2017
12:33:13
Я с этими DX-штуками вообще не знаком, но если б была дырка, в которую можно писать код, то я бы был рад поковыряться.

Nikita
04.06.2017
12:33:51
https://msdn.microsoft.com/en-us/library/windows/desktop/ee913554(v=vs.85).aspx

Nikita
04.06.2017
12:33:59
по первой ссылке есть плюсовые исходники

Friedrich
04.06.2017
12:34:25
Ну то есть я пока что вообще не знаю, как Авалонию заставить рендериться в DX-буфер, и что потом с этим буфером надо делать

Nikita
04.06.2017
12:34:35
https://msdn.microsoft.com/en-us/library/windows/desktop/dd370966(v=vs.85).aspx
в буфер заставить рендериться не сложно

Friedrich
04.06.2017
12:35:17
Знаешь, я вот щас доклад про JavaScriptServices допишу и почитаю твои ссылки внимательно
Надо будет на местном митапе про Авалонию рассказать как-нибудь. Хотя кому это сегодня может быть интересно...

Nikita
04.06.2017
12:39:36
я сооружу какой-нибудь IExternalDirect2DRenderTargetSurface
чтобы было проще подключать

Google

Friedrich
04.06.2017
12:40:04
А есть тикет в багтрекере, куда можно было бы подписаться?

Nikita
04.06.2017
12:40:10
тикета нет

Friedrich
04.06.2017
12:40:20

Nikita
04.06.2017
12:40:37
я в тебя пулреквестом кину закрытым

Friedrich
04.06.2017
12:40:47
Ну хорошо, спасибо.
Просто, ну, сам понимаешь, я в архитектуре Авалонии не разбираюсь, а помочь вот в этом конкретном деле я и правда бы хотел. Если б был пример, который не работает, и надо было бы сделать, шоб он заработал, я бы поковырял его.

Nikita
04.06.2017
12:44:32
ну смотри
чтобы сделать встройку
нужно 2 вещи

Admin
ERROR: S client not available

Nikita
04.06.2017
12:44:45
1) реализовать https://github.com/AvaloniaUI/Avalonia/blob/master/src/Avalonia.Controls/Platform/IEmbeddableWindowImpl.cs
который на самом деле ITopLevelImpl
реализации ITopLevelImpl под все платформы разные, проще всего смотреть, наверное
в сторону win32
2) реализовать platform surface
т. е. то, куда оно будет рендериться
сейчас их всего два (HWND и фреймбуфер)
я добавлю поддержку для третьего
это не долго, просто оно потребует изменений в самом фреймворке
а всё остальное можно делать отдельной либой совершенно безболезненно

Google

Friedrich
04.06.2017
12:48:48
А либа должна будет делать что? Например, где оно движения мыши хендлит, клавиатуру, вот это всё?

Nikita
04.06.2017
12:49:19
это входит в реализацию ITopLevelImpl
https://github.com/AvaloniaUI/Avalonia/blob/master/src/Avalonia.Controls/Platform/ITopLevelImpl.cs

Friedrich
04.06.2017
12:49:32
А! Action<RawInputEventArgs> Input
Вот это, да?

Nikita
04.06.2017
12:49:39
да

Friedrich
04.06.2017
12:49:49
Хорошо, понемножку вырисовывается.
Довольно милая архитектурка.

Nikita
04.06.2017
12:50:19
https://github.com/AvaloniaUI/Avalonia/blob/master/src/Gtk/Avalonia.Gtk3/WindowBaseImpl.cs
самая короткая реализация топлевела
по-моему
потом это счастье скармливаешь в конструктор EmbeddableControlRoot
а у него уже есть свойство Content
куда можно закидывать авалониевские контролы

Friedrich
04.06.2017
12:53:16
А не было, кстати, докладов про архитектуру Авалонии? Я бы с интересом послушал.

Nikita
04.06.2017
12:53:52
я затрагивал этот момент
на дотнексте и на повторе на митапе
но с митапа видео пока нет

Friedrich
04.06.2017
12:54:47
А, ок

Летучая
04.06.2017
13:07:01
А именно Action<obj>

Khasan
04.06.2017
13:29:59
Друзья, вопрос не совсем по программированию, программно печатаю из Автокад листы на виртуальный принтер Adobe PDF и каждый лист открывается окошко для сохранения файла pdf. Может кто знает есть ли в настройках принтера опция для исключения этой операции
Эта группа больше не существует