Microsoft DirectX 2

         

DDSD_REFRESHRATE


Кроме того, имя флажка DDSCAPS_TEXTUREMAP было изменено на

DDSCAPS_TEXTURE, и имя флажка DDPF_PALETTEINDEXED4TO8 было изменено на DDPF_PALETTEINDEXEDTO8.

Были добавлены следующие сообщения об ошибках :

DDERR_CANTLOCKSURFACE                DDERR_CANTPAGELOCK       

DDERR_CANTPAGEUNLOCK                 DDERR_DCALREADYCREATED          

DDERR_INVALIDSURFACETYPE           DDERR_NOMIPMAPHW         

DDERR_NOTPAGELOCKED                    DDERR_NOTINITIALIZED      

IDirectDraw2:: SetDisplayMode метод содержит два новых параметра, dwRefreshRate и dwFlags. Если никакой из этих параметров не необходим, Вы можете все еще использовать IDirectDraw:: SetDisplayMode.

Метод IDirectDraw2:: EnumDisplayModes был добавлен, чтобы установить частоту регенерации монитора и сохранять это в члене dwRefreshRatе структуры   DDSURFACEDESC.

Новый метод был добавлен к интерфейсу IDirectDraw2: IDirectDraw2:: GetAvailableVidMem.

Три новых метода были добавлены к интерфейсу IDirectDrawSurface2: IDirectDrawSurface2:: GetDDInterface, IDirectDrawSurface2:: PageLock, и IDirectDrawSurface2:: PageUnlock.

DirectDraw в Game SDK огранивал доступные режимы дисплея разрешением 640 на 480 с  8 bpp и 16 bpp. DirectDraw теперь позволяет прикладной программе изменять режим на любой поддерживаемый драйвером дисплея.

DirectDraw теперь проверяет режимы дисплея и не позволяет использовать их против ограничений установленного монитора. Если запрошенный режим не совместим с монитором, то вызов метода IDirectDraw2:: SetDisplayMode будет терпеть неудачу. Только режимы, поддерживаемые установленным монитором будут перечисляться в методе  IDirectDraw2:: EnumDisplayModes.



В Game SDK DirectDraw  позволял создавать только один объект DirectDraw на процесс. Если ваш процесс  использовал другой компонент системы, типа DirectPlay, который создавал объект DirectDraw, процесс был неспособен создать другой объект DirectDraw для собственного использования. Теперь для процесса функцию DirectDrawCreate можно вызывать сколько угодно по мере необходимости. Уникальный и независимый интерфейс будет возвращен из каждого обращения. Для большего количества информации, см. Многократные объекты DirectDraw в процессе.


DirectDraw Game SDK требовал, чтобы HWND был определен в обращении к методу  IDirectDraw:: SetCooperativeLevel  независимо от того, какой запрашивался режим:  полноэкранный или оконный , исключительный или кооперативный . Этот метод больше не требует определения  HWND, если прикладная программа запрашивает DDSCL_NORMAL режим. Теперь возможно использование DirectDraw с многочисленными окнами. Все эти окна могут использоваться одновременно в нормальном режиме.

В DirectDraw  Game SDK, если поверхность была в памяти системы, то аппаратный уровень эмуляции (HEL) автоматически выполнял блиттинг. Однако, некоторые платы дисплея имеют аппаратные средства DMA , которые позволяют им эффективно выполнять блиттинг в и из поверхностей памяти системы. В DirectDraw  версии DirectX 2 , структура DDCAPS была расширена, чтобы позволить драйверам сообщать эту возможность. Были добавлены следующие члены :

DWORD dwSVBCaps

DWORD dwSVBCKeyCaps

DWORD

dwSVBFXCaps

DWORD

dwSVBRops [DD_ROP_SPACE]

DWORD

dwVSBCaps

DWORD

dwVSBCKeyCaps

DWORD

dwVSBFXCaps

DWORD

dwVSBRops [DD_ROP_SPACE]

DWORD

dwSSBCaps

DWORD

dwSSBCKeyCaps

DWORD

dwSSBFXCaps

DWORD

dwSSBRops [DD_ROP_SPACE]

В DirectDraw  Game SDK, палитры могли  быть присоединены только к основной поверхности. Палитры могут теперь быть присоединены к любой палеттизированной поверхности (основной, двойному буферу, вне экранной плоскости, или текстурной карте). Для большего количества информации, см. Установка палитры  на неосновных поверхностях.

Палитры могут теперь быть совместно использованы  многочисленными поверхностями. Для большего количества информации, см. Совместное использование палитр.

В DirectDraw  Game SDK были поддержаны палитры только с 8 битами (256 входа)  . DirectDraw DirectX 2 SDK поддерживает  также палитры с 1 битом (2 входа), с 2 битами (4 входа), и с 4 битами (16 входов). Для большого количества информации, см. Новые типы палитры.

Ограничители могут теперь быть разделены между многими поверхностями. Для большего количества информации, см. Совместное использование ограничителей.

Была добавлена новая функция API  DirectDrawCreateClipper . Эта функция позволяет создавать объекты ограничителя  не принадлежащих объекту DirectDraw. Для большего количества информации, см. Драйвер независимых ограничителей.

В DirectDraw  Game SDK  HEL мог  создавать поверхности только если  формат пикселя точно согласовывался с текущей основной поверхностью. Это ограничение было ослаблено для DirectX 2  DirectDraw. Для большего количества информации, см. Поддержку форматов поверхностей на аппаратном уровне эмуляции (HEL).

Поддержка для поверхностей, специфических для представления 3D (карты текстуры, mipmaps, и z-буфера) была добавлена или была расширена. Для большего количества информации, см. Карты текстуры, Mipmaps, и z-буферы.


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