Информация об изменениях

Сообщение Re[3]: [Windows] GDI - всё. от 19.06.2018 19:46

Изменено 19.06.2018 19:47 vdimas

Re[3]: [Windows] GDI - всё.
Здравствуйте, SenorProgramador, Вы писали:

SP>Я был бы очень удивлен, если б мне кто-то хотя бы теоретически мог объяснить, как ГДИ может быть быстрее ДиректИкса.


Смотря в каких сценариях.
Например, высококачественный текст GDI рисует быстрее, бо в нём прямо в драйвере живёт довольно-таки сложный кеш битмапов-символов.

2D тоже очень шустрое, если не надо менять перед каждой операцией перо-кисть.
Работает в точности на уровне DirectX по скорости, когда тот рисует прямо в экранную поверхность.

А когда оба рисуют в скрытую поверхность, то оба рисуют намного быстрее и опять же примерно с одинаковой скоростью.
Почему double buffering и популярен в GDI — это банально быстрее.

А так-то оба, что DirectX, что GDI — это юзер-левельные обертки над низкоуровневым драйвером одной и той же картейки.
И с какой радости одна и та же картейка должна выдавать разную производительность при заливке, скажем, GDI GradientFill в аналогичной операции над коллекцией вершин в DX?
Там происходящее в точности идентично, разве что в случае Direct 3D надо было гнать на картейку больше данных, бо каждая вершина описывается в 3-хмерном пространстве, т.е. тупо z=0. И этот глупый 0 постоянно туда-сюда гонялся, пока не выпустили Direct2D в 2012-м году.

Ну и, дрова GDI еще с начала 2000-х были уже очень неплохи.
Лучших не существовало в природе.
Re[3]: [Windows] GDI - всё.
Здравствуйте, SenorProgramador, Вы писали:

SP>Я был бы очень удивлен, если б мне кто-то хотя бы теоретически мог объяснить, как ГДИ может быть быстрее ДиректИкса.


Смотря в каких сценариях.
Например, высококачественный текст GDI рисует быстрее, бо в нём прямо в драйвере живёт довольно-таки сложный кеш битмапов-символов.

2D операции в GDI тоже очень шустрые, если не надо менять перед каждой операцией перо-кисть.
Работает в точности на уровне DirectX по скорости, когда тот рисует прямо в экранную поверхность.

А когда оба рисуют в скрытую поверхность, то оба рисуют намного быстрее и опять же примерно с одинаковой скоростью.
Почему double buffering и популярен в GDI — это банально быстрее.

А так-то оба, что DirectX, что GDI — это юзер-левельные обертки над низкоуровневым драйвером одной и той же картейки.
И с какой радости одна и та же картейка должна выдавать разную производительность при заливке, скажем, GDI GradientFill в аналогичной операции над коллекцией вершин в DX?
Там происходящее в точности идентично, разве что в случае Direct 3D надо было гнать на картейку больше данных, бо каждая вершина описывается в 3-хмерном пространстве, т.е. тупо z=0. И этот глупый 0 постоянно туда-сюда гонялся, пока не выпустили Direct2D в 2012-м году.

Ну и, дрова GDI еще с начала 2000-х были уже очень неплохи.
Лучших не существовало в природе.