L>>Я про то, что подсистема Win32 (Csrss.exe) находится в ядре в Win2000.
P>Вообще то мы рассматриваем графическую подсистему. Которая уже давно не часть подсистемы Win32.
P>Конечно, вне всякого сомнения, win32k.sys выполняется в режиме ядра.
Я описывал механизм системного вызова как таковой. До того куда этот вызов уже потом пойдёт в какую подсистему и в какой драйвер речь не шла.
L>>А потому работать попиксельно через SetPixel с графикой очень неэффективно.
P>Вне всякого сомнения. Я оспариваю
P>P>здесь нет разницы MemoryDC это или нет
P>В случае, если поверхность находиться под управлением GDI (напр. для стандартных форматов DIB), то драйвер вообще может не учавствовать в обработке большинства граф. операций, не говоря уж о том, чтобы непосредственно обращаться к видеоадаптеру.
Ещё раз, я тут имел в виду, что тормоза при использовании SetPixel будут как для MemoryDC, так и для экранного. Так как эти тормоза имеют природу, которую я описал и к типу DC это не имеет никакого отношения.
А если, более глобально, что вообще все операции над DC как таковые. То тут конечно имеет уже разница с каким DC вы работаете.
L>>>>Каждый раз когда вызывается SetPixel, происходит переход в режим ядра, где уже обрабатывается сама прорисовка.
P>К слову сказать, сие происходит в большинстве случаев, не только при вызове SetPixel.
А кто спорит?
L>>>>Такое переключение на каждый пиксел очень ресурсоёмко. Polyline, подозреваю, просто делает серию вызовов SetPixel со всеми вытекающими.
P>Не думаю, что на сегодняшний день существуют реализации Polyline via SetPixel.
P>Вывод линий давным давно уже сделан аппаратным, как впрочем и большинства 2d графики.
P>Кстати, вообще не понимаю, на кой хрен ее реализовывать via SetPixel, когда можно LineTo?
P>Или ты под SetPixel понимаешь не API ф-ю SetPixel, а установку пиксела как таковое?
Я SetPixel в качестве примера взял. А вообще через что работает Polyline нужно проверять.