Re[5]: Ядро WYSIWYG редактора
От: c-smile Канада http://terrainformatica.com
Дата: 01.04.15 01:46
Оценка:
Здравствуйте, aloch, Вы писали:

A>попробуй с DevExpress


Пробую:

DevExpress Sample Application: "Build Your Own Office", tab: "WYSYWYG Reports" (как наиболее близкое к редактору в режиме набора текста),
resize window — CPU core load = 100%, FPS = 1..5

Чудес не бывает как ты понимаешь. CPU занят только отработкой rendering.

Ну или давай какой другой пример.

Вот мой:

В Sciter пример samples/video/test-video-api.htm запускаю в full screen на обычном мониторе 96DPI 1920x1200.

Загружаю video:

Direct2D: 30 FPS — 20% of one CPU core load.
GDI+: 5-10 FPS — 100% of one CPU core load.

Теперь на Retina monitor 2560x1600, full screen.

Direct2D, 30 FPS — 26% of one CPU core load.

Т.е. с Direct2D загрузка CPU практически не зависит от размернонсти экрана.

Там тупо InvalidateRect с частотой 24 FPS и WM_PAINT с выводом битмапы...

Короче, GDI+ умер сразу после рождения, а начинать что-то сейчас с ним делать — себя не любить.
Re[6]: Ядро WYSIWYG редактора
От: aloch Россия  
Дата: 02.04.15 05:08
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Чудес не бывает как ты понимаешь. CPU занят только отработкой rendering.


Это понятно. А ощутимые пользователем тромоза есть?

CS>Ну или давай какой другой пример.


CS>Вот мой:


CS>В Sciter пример samples/video/test-video-api.htm запускаю в full screen на обычном мониторе 96DPI 1920x1200.


CS>Загружаю video:


Пример некорректный. Для того, чтобы гнать такой поток видео GDI/GDI+ никогда и не предназначались, и всегда был некий Direct... (DirectShow или DirectDraw, например). В ИЕ вон вообще windowless Flash прекрасно работает.

CS>Там тупо InvalidateRect с частотой 24 FPS и WM_PAINT с выводом битмапы...


CS>Короче, GDI+ умер сразу после рождения, а начинать что-то сейчас с ним делать — себя не любить.


А в нормальной офисной программе Direct2D умер при первом запуске через RDP


Re[7]: Ядро WYSIWYG редактора
От: c-smile Канада http://terrainformatica.com
Дата: 02.04.15 06:21
Оценка:
Здравствуйте, aloch, Вы писали:

A>Это понятно. А ощутимые пользователем тромоза есть?


Стандартная быстрая печать — 5 символов в секунду.

Т.е. твое GDI+ решение уже будет не справляться с быстрой печатью. Кому оно такое нужно вообще?

Я уже не говорю про рекордсменов печати — 17 символов в секунду.

А про анимации и современный Metro UI в GDI исполнении даже упоминать не стоит.

CS>>Загружаю video:


A>Пример некорректный. Для того, чтобы гнать такой поток видео GDI/GDI+ никогда и не предназначались, и всегда был некий Direct... (DirectShow или DirectDraw, например). В ИЕ вон вообще windowless Flash прекрасно работает.


DirectDraw, ну ты вспомнил ... Это прямой доступ к видео памяти, уже лет десять как не используется.

DirectDraw is no longer recommended for use. With the release of Direct3D 9.0, all two-dimensional functionality is contained within Direct3D, its associated helper functions in D3DX, and the DirectX 11 technology Direct2D.


А DirectShow к выводу video frames отношения не имеет. Это pipeline фильтров и всего такого.
Sciter и использует как раз DirectShow для получения кадров из потока.

CS>>Короче, GDI+ умер сразу после рождения, а начинать что-то сейчас с ним делать — себя не любить.


A>А в нормальной офисной программе Direct2D умер при первом запуске через RDP


Чегой-то? Замечательно все работает. В Direct2D есть такая штука как WARP для этих целей. Очень приличный JIT rasterizer.
Re[8]: Ядро WYSIWYG редактора
От: aloch Россия  
Дата: 02.04.15 18:00
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Здравствуйте, aloch, Вы писали:


A>>Это понятно. А ощутимые пользователем тромоза есть?


CS>Стандартная быстрая печать — 5 символов в секунду.


CS>Т.е. твое GDI+ решение уже будет не справляться с быстрой печатью. Кому оно такое нужно вообще?


Бедный Word 2007 Никому он не нужен! Как он через GDI справлялся, ума не приложу.
Но ты стрелки на печать не переводи (тем более, что при печати нужно обновлять только маленький участок экрана), ты скажи, ощущаются ли тормоза в демке с отчетами?

CS>А про анимации и современный Metro UI в GDI исполнении даже упоминать не стоит.


Оставим Metro метово, а классическому десктопу (который не так сильно нуждается в постоянной анимации каждого чиха), декстопово

CS>DirectDraw, ну ты вспомнил ... Это прямой доступ к видео памяти, уже лет десять как не используется.


Я его вспомнил только в том контексте, что вывод видеопотока был всегда аппаратно ускорен (а прямая запись в видеопамять, это самое быстрое, что можно придумать для вывода картинки на экран (я не говорю о поддержке декодирования, а именно BitBlt).

CS>А DirectShow к выводу video frames отношения не имеет. Это pipeline фильтров и всего такого.


Ну конечно, не имеет А это что такое https://msdn.microsoft.com/ru-RU/library/windows/desktop/dd373407(v=vs.85).aspx ?

CS>Sciter и использует как раз DirectShow для получения кадров из потока.


Его все используют (хотя в комплекте с direct2D можно перейти на Media Foundation).

CS>Чегой-то? Замечательно все работает. В Direct2D есть такая штука как WARP для этих целей. Очень приличный JIT rasterizer.


Ну ладно, умер не direct2d, а его аппаратное ускорение.


Re[9]: Ядро WYSIWYG редактора
От: aloch Россия  
Дата: 02.04.15 18:17
Оценка:
A>Здравствуйте, c-smile, Вы писали:

И посмотри у себя на вот это http://files.rsdn.ru/1366/crash.png

происходит при активном таскании окна мышкой по экрану (и в D2D и в GDI).


Re[9]: Ядро WYSIWYG редактора
От: c-smile Канада http://terrainformatica.com
Дата: 02.04.15 20:09
Оценка:
Здравствуйте, aloch, Вы писали:

A>Здравствуйте, c-smile, Вы писали:


CS>>Здравствуйте, aloch, Вы писали:


A>>>Это понятно. А ощутимые пользователем тромоза есть?


CS>>Стандартная быстрая печать — 5 символов в секунду.


CS>>Т.е. твое GDI+ решение уже будет не справляться с быстрой печатью. Кому оно такое нужно вообще?


A>Бедный Word 2007 Никому он не нужен! Как он через GDI справлялся, ума не приложу.


MS Word текст выводит не через GDI+. Там свой font rendering судя по ушам и хвосту. В MS Office вообще rendering layer свой и уж не GDI+ точно. Mostly windowless UI опять же.

A>Но ты стрелки на печать не переводи (тем более, что при печати нужно обновлять только маленький участок экрана), ты скажи, ощущаются ли тормоза в демке с отчетами?


Что значит не переводи? А relayout документа при вводе символов?
Да и вообще... Ну как можно что-то делать с GDI+ если он на пределе уже сейчас работает и имеет O(N*N) сложность от количества пикселов.

А уж про батареи на ноутбуках и упоминать не стоит...

CS>>А про анимации и современный Metro UI в GDI исполнении даже упоминать не стоит.


A>Оставим Metro метово, а классическому десктопу (который не так сильно нуждается в постоянной анимации каждого чиха), декстопово


Я не знаю что такое "классический десктоп" в наши дни если даже в Windows Explorer анимации еще в XP были.
И там кстати использовалась либа с интересным названием DirectUI или что-то такое ...

CS>>DirectDraw, ну ты вспомнил ... Это прямой доступ к видео памяти, уже лет десять как не используется.


A>Я его вспомнил только в том контексте, что вывод видеопотока был всегда аппаратно ускорен (а прямая запись в видеопамять, это самое быстрое, что можно придумать для вывода картинки на экран (я не говорю о поддержке декодирования, а именно BitBlt).


Забудь про "прямая запись в видеопамять", this horse is dead already. GPU имеет прямой доступ, CPU нет.

CS>>А DirectShow к выводу video frames отношения не имеет. Это pipeline фильтров и всего такого.


A>Ну конечно, не имеет А это что такое https://msdn.microsoft.com/ru-RU/library/windows/desktop/dd373407(v=vs.85).aspx ?

Это default имплементация video окна для бедных. Его даже Windows Media Player не использует ибо там поверх video еще всякие плюшки рисуются.

CS>>Чегой-то? Замечательно все работает. В Direct2D есть такая штука как WARP для этих целей. Очень приличный JIT rasterizer.


A>Ну ладно, умер не direct2d, а его аппаратное ускорение.


direct2d WARP и GDI+ рядом не лежали. Хотя оба software rasterizer.
layered.exe в SDK как раз в WARP режиме анимации крутит.
Re[10]: Ядро WYSIWYG редактора
От: aloch Россия  
Дата: 03.04.15 09:27
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>MS Word текст выводит не через GDI+. Там свой font rendering судя по ушам и хвосту. В MS Office вообще rendering layer свой и уж не GDI+ точно. Mostly windowless UI опять же.


Офис активно (до 2013) активно использовал GDI+ для от рисовки интерфейса (тот рибон), и совершенно точно не использовал аппаратное ускорение для отрисовки.

A>>Но ты стрелки на печать не переводи (тем более, что при печати нужно обновлять только маленький участок экрана), ты скажи, ощущаются ли тормоза в демке с отчетами?


CS>Что значит не переводи? А relayout документа при вводе символов?

CS>Да и вообще... Ну как можно что-то делать с GDI+ если он на пределе уже сейчас работает и имеет O(N*N) сложность от количества пикселов.

Я там на свое Rerina-мониторе критических тормозов не ощущаю. Это самое главное, все остальное — пустые разговоры.
Я тебе показал софт (который прямой конкурент с твоим), который обходится без Direct2D и маркетинговых разговоров о нем, что "теперь без аппаратного ускорения этого жизни нет".

CS>А уж про батареи на ноутбуках и упоминать не стоит...


А GPU он батарею не жрет, конечно...

CS>Я не знаю что такое "классический десктоп" в наши дни если даже в Windows Explorer анимации еще в XP были.


В XP весь красивый ГУЙ был на GDI+. Сейчас в виртуалке запустил XP на ретине — тормозов нет.

CS>И там кстати использовалась либа с интересным названием DirectUI или что-то такое ...


Какая разница, как она называлась, но аппаратного ускорения там нет.

CS>Это default имплементация video окна для бедных. Его даже Windows Media Player не использует ибо там поверх video еще всякие плюшки рисуются.


А у тебя что, для богатых?
Media Player использовал VMR-7 в Windows XP, сейчас (начиная с Vista) он вообще использует Direct Media. Вполне себе нормальные фильтры для вывода Video, есть по проще, есть посложнее, с поддержкой Windowless режима.

CS>>>Чегой-то? Замечательно все работает. В Direct2D есть такая штука как WARP для этих целей. Очень приличный JIT rasterizer.


A>>Ну ладно, умер не direct2d, а его аппаратное ускорение.


CS>direct2d WARP и GDI+ рядом не лежали. Хотя оба software rasterizer.

CS>layered.exe в SDK как раз в WARP режиме анимации крутит.


Re[11]: Ядро WYSIWYG редактора
От: aloch Россия  
Дата: 03.04.15 09:29
Оценка:
> он вообще использует Direct Media.

вернее — Media Foundation


Re[11]: Ядро WYSIWYG редактора
От: c-smile Канада http://terrainformatica.com
Дата: 03.04.15 17:16
Оценка:
Здравствуйте, aloch, Вы писали:

В качестве завершения плодотворной дискуссии предлагаю принять постулат про то что
"если рисовать, то быстро". Этот постулат становится особенно актуальным в свете больших (по количеству пикселей) матриц.

MS стал замещать GDI+ другими средствами с самого начала. WPF например в своей графической части.
Direct2D это функциональный superset GDI+. И работает не в пример быстрее.
Т.е. делать что-то сейчас на фактически deprecated технологии (GDI+) — себя не любить.
Re: Ядро WYSIWYG редактора
От: Zenden Россия  
Дата: 04.04.15 09:15
Оценка: 23 (1)
Здравствуйте, x-code, Вы писали:

XC>Вопрос про WYSIWYG редакторы с открытыми исходниками.


XC>На самом деле их много, но все они так или иначе опираются на одно из трех "ядер"

XC>- компонент windows rtf (не кроссплатформенный!)
XC>- компонент internet explorer editing mode (тоже не кроссплатформенный)
XC>- qt webkit editing mode (кроссплатформенный)

Есть же еще QTextEdit который умеет HTML и не основан на вебките
Еще посмотрите это http://www.hobrasoft.cz/en/blog/bravenec/qt-rich-text-editor
http://www.wysota.eu.org/wwwidgets/doc/html/qwwrichtextedit.html
Отредактировано 04.04.2015 9:26 Zenden . Предыдущая версия . Еще …
Отредактировано 04.04.2015 9:24 Zenden . Предыдущая версия .
Отредактировано 04.04.2015 9:19 Zenden . Предыдущая версия .
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.