Re[8]: Чем рисовать WAV ?
От: Patalog Россия  
Дата: 24.04.04 08:31
Оценка:
Здравствуйте, Lopcom, Вы писали:

L>>>По поводу скорости:

L>>>Как я уже сказал, лучше использовать прямое обращение к памяти, то-есть работать с DIBSECTION.
L>>>Такие функции, как SetPixel/GetPixel и тот же Polyline, очень медленные при работе с DC (любым, здесь нет разницы MemoryDC это или нет).

P>> Т.е. совсем нет? Откуда дровишки?


L>При чём тут дровишки?


Откуда сведения — так понятнее?

L>Я про то, что подсистема Win32 (Csrss.exe) находится в ядре в Win2000.


Вообще то мы рассматриваем графическую подсистему. Которая уже давно не часть подсистемы Win32.
Конечно, вне всякого сомнения, win32k.sys выполняется в режиме ядра.

[]

L>А потому работать попиксельно через SetPixel с графикой очень неэффективно.


Вне всякого сомнения. Я оспариваю

здесь нет разницы MemoryDC это или нет

В случае, если поверхность находиться под управлением GDI (напр. для стандартных форматов DIB), то драйвер вообще может не учавствовать в обработке большинства граф. операций, не говоря уж о том, чтобы непосредственно обращаться к видеоадаптеру.

L>>>Каждый раз когда вызывается SetPixel, происходит переход в режим ядра, где уже обрабатывается сама прорисовка.


К слову сказать, сие происходит в большинстве случаев, не только при вызове SetPixel.

L>>>Такое переключение на каждый пиксел очень ресурсоёмко. Polyline, подозреваю, просто делает серию вызовов SetPixel со всеми вытекающими.


P>>Разве что только на совсем древних карточках, да и то вряд-ли...


L>При чём тут карточки? См. выше.


Не думаю, что на сегодняшний день существуют реализации Polyline via SetPixel.
Вывод линий давным давно уже сделан аппаратным, как впрочем и большинства 2d графики.
Кстати, вообще не понимаю, на кой хрен ее реализовывать via SetPixel, когда можно LineTo?
Или ты под SetPixel понимаешь не API ф-ю SetPixel, а установку пиксела как таковое?
Почетный кавалер ордена Совка.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.