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-буферы.