Поделиться через


структура DD_CANCREATESURFACEDATA (ddrawint.h)

Структура DD_CANCREATESURFACEDATA содержит сведения, необходимые для указания возможности создания поверхности (в случае CanCreateD3DBuffer, буфера).

Синтаксис

typedef struct _DD_CANCREATESURFACEDATA {
  PDD_DIRECTDRAW_GLOBAL lpDD;
  PDD_SURFACEDESC       lpDDSurfaceDesc;
  DWORD                 bIsDifferentPixelFormat;
  HRESULT               ddRVal;
  VOID                  *CanCreateSurface;
} *PDD_CANCREATESURFACEDATA, DD_CANCREATESURFACEDATA;

Члены

lpDD

Указывает на структуру DD_DIRECTDRAW_GLOBAL , описывающую устройство драйвера.

lpDDSurfaceDesc

Указывает на структуру DDSURFACEDESC , содержащую описание создаваемой поверхности или буфера. Дополнительные сведения об этом участнике см. в разделе Примечания.

bIsDifferentPixelFormat

Указывает, отличается ли формат пикселей создаваемой поверхности от формата основной поверхности. Для обратного вызова CanCreateD3DBuffer D3DBuffer этот элемент всегда имеет значение FALSE , так как драйвер пытается создать буфер, содержащий данные вершин или команды, а не пиксельные данные.

ddRVal

Указывает расположение, в которое драйвер записывает возвращаемое значение обратного вызова DdCanCreateSurface или CanCreateD3DBuffer . Код возврата DD_OK указывает на успешное выполнение. Дополнительные сведения см. в разделе Возвращаемые значения для DirectDraw.

CanCreateSurface

Используется API Microsoft DirectDraw и не должен заполняться драйвером.

Комментарии

Описание поверхности DirectDraw, на которое указывает элемент lpDDSurfaceDesc , фактически является DDSURFACEDESC2 структурой (а не структурой DDSURFACEDESC) для сред выполнения DirectDraw 6.0 и более поздних версий. Таким образом, если во время создания поверхности требуются сведения от элементов, которые находятся в структуре DDSURFACEDESC2, но не находятся в структуре DDSURFACEDESC, можно просто привести указатель на структуру DDSURFACEDESC к указателю на структуру DDSURFACEDESC2 перед использованием. В следующем примере показано, как можно получить значение dwTextureStage (члена структуры DDSURFACEDESC2, но не также структуры DDSURFACEDESC) из указателя на структуру DDSURFACEDESC.

DDSURFACEDESC2* pddsd = (DDSURFACEDESC2*)pccsd->lpDDSurfaceDesc;
DWORD dwStage = pddsd->dwTextureStage;

Требования

Требование Значение
Заголовок ddrawint.h (включая Winddi.h)

См. также раздел

CanCreateD3DBuffer

DdCanCreateSurface