Форум
Компьютерные священные войны
Тема
Как правильно задавать вопросы
B
I
abc
U
X
3
X
3
H1
H2
H3
H4
H5
H6
Asm
C/C++
C#
Erlang
Haskell
IDL
Java
Lisp
MSIL
Nemerle
ObjC
OCaml
Pascal
Perl
PHP
Prolog
Python
Ruby
Rust
SQL
VB
Здравствуйте, c-smile, Вы писали: CS>Здравствуйте, vdimas, Вы писали: CS>>>DirectDraw это был фактически механизм вывода напрямую в видео память минуя инфраструктуру окон. V>>... Я писал когда-то на DirectDraw, там суть всё та же - создаётся поверхность, на ней рисуешь, потом эта поверхность отображается либо полноэкранно, либо в некоем конкретном окне (через блиттинг или оверлей, если железо позволяет). V>>В D2D полностью аналогично, разве что идентификаторы участников чуть другие. CS>Ох, ну нет конечно... там только слово Direct общее, а так парадигмы совсем разные. CS>DirectDraw это про заброс bitmaps в видео память. Как происходит primitive rasterizing на тех bitmap DirectDraw ничего не знал (можно было руками, а можно было GDI или не приведи тя хоспидя GDI+ какой использовать). CS>Direct2D же... CS>ID2DRenderingTarget это не bitmap (как правило), а storage для GPU команд. CS>Вызов ID2D1RenderTarget::DrawLine например это выполнение tessellation того отрезка с заданной stroke т.е. генерация вектора треугольников. А уж этот вектор треугольников отправляется на GPU для рисования. CS>Т.е. отрисовка окна это последовательное исполнение двух потоков в GPU - команды рисования non-client и batch команд клиентской части. CS>При такой схеме на стороне CPU вообще той самой bitmap в стиле GDI,GDI+,DirectDraw нет. CS>Как ты видишь DirectDraw и Direct2D это принципиально разные вещи. В условиях high-dpi monitors DirectDraw (bitmap на стороне CPU) это вообще не опция. CS>Условно: для отрисовки флага республики Крым на полный экран в DirectDraw ты рисуешь bitmap в CPU и пересылаешь его/её в видео память. CS>В Direct2D же это три вызова ID2D1RenderTarget::FillRect что выливается в посылку координат шести треугольников (+ три brush) в GPU. CS>Разница очевидна, нет? V>>В OpenGL аналогом является frame buffer, созданный поверх текстуры или экранного буфера (deep buffer). Т.е. во всех случаях речь идёт о массиве байт в видеопамяти. CS>Ну можно наверное frame buffer условно обозвать DirectDraw. Но очень условно. CS>Аналог же Direct2D в OpenGL... Ну вот скажем [url=https://github.com/memononen/nanovg]NanoVG[/url] это самое близкое по смыслу... CS>[url=https://github.com/memononen/nanovg/raw/master/example/screenshot-01.png?raw=true]Image: screenshot-01.png[/url]
Теги:
Введите теги разделенные пробелами. Обрамляйте в кавычки словосочетания с пробелами внутри, например:
"Visual Studio" .NET
Имя, пароль:
Загрузить
Нравится наш сайт?
Помогите его развитию!
Отключить смайлики
Получать ответы по e-mail
Проверить правописание
Параметры проверки …