Прямое программирование GDI в C на Windows - PullRequest
3 голосов
/ 22 октября 2010

В последнее время я заинтересовался программированием как можно более эффективно для Windows на прямом C. Я все еще хочу графический интерфейс для некоторых вещей, является ли Windows API / GDI все еще респектабельным способом решения этой проблемы?Я не верю, что вы можете делать регулярные звонки для WPF, так как это в значительной степени управляемое дело.Действительно ли GDI не ускоряется в Vista / Win7?Если это так, есть ли другая альтернатива для получения аппаратного ускорения графического интерфейса от прямой C?(За исключением, может быть, подхода «самодостаточный» с OpenGL)

Кроме того, Петцольд был золотым стандартом для программирования Windows API с помощью C, есть ли более новая редакция его материалов, или есть кто-тоеще взялся за мантию?Последнее издание, которое я видел, датируется 1999 годом ...

Ответы [ 2 ]

2 голосов
/ 22 октября 2010

У Microsoft есть страница для сравнения GDI против Direct2D аппаратного ускорения.

GDI всегда был ускоренным API: конечно, он всегда оставлялся на усмотрение фактической реализации драйвера GDI для принятия решениякакие биты GDI DDI на самом деле ускоряются, так что обычно это были ускоренные операции bitblt / stretch blit, и все рисование линий и другие эффекты выполняются процессором.

некоторые люди воспринимают это как знакчто GDI больше не является «достаточно хорошим» по сравнению с более новыми API, но, честно говоря, вся графика действительно вращается до перемещения ректов.

GdiPlus реализован в программном обеспечении, и поэтому, в результате,является реализацией CLR system.graphics.

0 голосов
/ 22 октября 2010

DirectX в целом намного быстрее, чем GDI, из-за того, что он имеет полное ускорение на большинстве видеокарт. GDI может иметь некоторое ускорение (в Windows 7 и XP, но не в Vista), но DirectX все еще в пути.

Книга мудрая, Petzold - это все о WPF в эти дни: Программирование Windows Трехмерная презентация Foundation

...