@CSharpChatЭта группа больше не существует

Страница 1182 из 1888
Nikita
04.06.2017
12:19:39
чтобы историю писал

это аутизм какой-то на самом деле

Anatoly
04.06.2017
12:20:36
>Другое дело что майки поиск по истории сломали нах. есть внешние тулы
Ну это понятно, благо там обычный sqlite вроде. Но всё равно неприятно

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у

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

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
https://stackoverflow.com/questions/9095089/wpf-and-directx-11-via-d3dimage
Если появится какой-то прототип, разработке которого можно помочь, ты тыкай

Я с этими 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
я сооружу какой-нибудь IExternalDirect2DRenderTargetSurface
↑ потому что вот такие вот таргеты лучше бы в трекере писать

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
https://github.com/AvaloniaUI/Avalonia/blob/master/src/Avalonia.Controls/Platform/ITopLevelImpl.cs
>Gets or sets a method called when the toplevel requires painting. А почему ты эвенты не юзаешь?

А именно Action<obj>

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

Страница 1182 из 1888

Эта группа больше не существует Эта группа больше не существует