Графика для Windows средствами DirectDraw

Эта книга посвящена разработке приложений


Эта книга посвящена разработке приложений DirectDraw для Windows NT и Windows 95. Приступая к работе над демонстрационными программами, я заранее приготовился к раздражающим мелким отличиям и проявлениям несовместимости. Признаюсь, я был приятно удивлен.

И все же отличия существуют, особенно в части видеорежимов. Во-первых, Windows NT не поддерживает видеорежимы семейства Mode X. Независимо от того, поддерживаются ли такие видеорежимы установленной видеокартой, функция EnumDisplayModes() не сообщает о них, а функция SetDisplayMode() не активизирует их.

Во-вторых, Windows 95 позволяет задавать параметры монитора, а Windows NT — нет. В Windows 95 список видеорежимов, обнаруженных DirectDraw, учитывает возможности как видеокарты, так и монитора. Если режим поддерживается только видеокартой, но не монитором, DirectDraw не включает его в список. Однако в Windows NT параметры монитора не задаются; следовательно, DirectDraw выведет список всех видеорежимов, поддерживаемых видеокартой, независимо от того, реализуются ли они установленным монитором.

Следовательно, к переключению режимов в приложениях DirectDraw следует подходить с осторожностью. В коммерческих приложениях должен присутствовать механизм страховки, который бы позволял проверить видеорежим перед тем, как переходить в него. Подобный механизм используется при выборе видеорежима рабочего стола и в Windows NT, и в Windows 95. Когда вы приказываете Windows сменить видеорежим, новый режим активизируется на 15 секунд, после чего восстанавливается предыдущий. Затем диалоговое окно спрашивает, правильно ли система работала с новыми параметрами.

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


Содержание раздела