ПРОГРАМИРУЕМ 3D ГРАФИКУ ИСПОЛЬЗУЯ DirectX


Интерфейс DirectDraw - часть 22


I (ig »» (8 - dwGBits)) «« dwGShift

I (ib »» (8 - dwBBits)) «« dwBShift;

DWORD* p = (DWORD*)(pBuf + dwOffset);

while (n—) *p++ = dw;

) breaks-default:

break;

i

// Перейти к следующему цвету NextColor(clrLine) ;

} pBB-»Unlock() ;

// Снова можно работать с отладчиком

> NextColor(cIrStart) ;

Программа несколько отличается для разных цветовых кодировок, поскольку пиксели занимают разное количество байт и для них требуются различные RGB-маски. Пожалуйста, соблюдайте осторожность при выполнении арифметических операций с указателями. Вы можете перепутать указатели на байт с указа-

/b> ЩЦ' Глава 12. Интерфейс DirectDraw

телями на DWORD и получить неверный результат, поскольку компилятор прибавит 2 или 4 вместо 1 или наоборот.

Чтобы тест генерировал другой набор линий, следует внести изменения в функцию NextColor, которая определяет цвет для вывода следующей линии.

Наверняка вы обратили внимание, что я пропустил код для 24-битной кодировки. Мой видеоадаптер работает только с 8-, 16-и 32-битными цветами, поэтому я не мог протестировать 24-битный код. Результаты данного теста приведены на цветной вкладке.

Веселье продолжается

Разработка приложений для DirectDraw в моем представлении не является утомительным и занудньм кодированием. Скорее это сплошное развлечение. Хотелось бы видеть, как вы примените на практике продемонстрированные мной методы.

Если после этой главы вам нестерпимо захотелось написать свой собственный механизм визуализации, продолжайте читать. В следующей главе рассмотрена прослойка DirectSD — перед тем, как нажимать клавиши, стоит познакомиться с ней поближе.




Начало  Назад  Вперед



Книжный магазин