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


структура D3DHAL_CONTEXTCREATEDATA (d3dhal.h)

Структура D3DHAL_CONTEXTCREATEDATA содержит все сведения, необходимые функции D3dContextCreate для создания нового контекста.

Синтаксис

typedef struct _D3DHAL_CONTEXTCREATEDATA {
  union {
    LPDDRAWI_DIRECTDRAW_GBL lpDDGbl;
    LPDDRAWI_DIRECTDRAW_LCL lpDDLcl;
  };
  union {
    LPDIRECTDRAWSURFACE       lpDDS;
    LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl;
  };
  union {
    LPDIRECTDRAWSURFACE       lpDDSZ;
    LPDDRAWI_DDRAWSURFACE_LCL lpDDSZLcl;
  };
  union {
    DWORD     dwPID;
    ULONG_PTR dwrstates;
  };
  ULONG_PTR dwhContext;
  HRESULT   ddrval;
} D3DHAL_CONTEXTCREATEDATA;

Члены

lpDDGbl

Структура драйвера (устаревшая версия).

lpDDLcl

Указывает на объект DirectDraw, который приложение должно создать, чтобы получить COM-интерфейс в Direct3D. Это позволяет совместно использовать сведения о контексте между приложением DirectDraw и драйвером. lpDDLcl является общим фактором привязки между контекстом приложения и контекстом драйвера. Он указывает на DD_DIRECTDRAW_LOCAL структуру, которая используется для идентификации поверхностей, принадлежащих заданному контексту Direct3D, и относится только к текущему процессу DirectDraw. lpDDLcl необходимо, так как поверхности (например, буферы глубины, буферы отрисовки и текстуры) можно создать до создания контекста Direct3D в драйвере.

lpDDS

Surface для использования в качестве целевого объекта.

lpDDSLcl

Указывает на структуру DD_SURFACE_LOCAL, описывающую поверхность DirectDraw, используемую в качестве целевого объекта отрисовки.

lpDDSZ

Surface для использования в качестве Z.

lpDDSZLcl

Указывает на структуру DD_SURFACE_LOCAL, описывающую поверхность DirectDraw для использования в качестве буфера глубины. Если этот элемент NULL, буферизация глубины не выполняется.

dwPID

Указывает идентификатор текущего процесса. Это идентификатор процесса приложения Direct3D, инициирующего создание устройства Direct3D.

dwrstates

Указывает на массив состояний отрисовки, который драйвер должен обновить при анализе команд состояния отрисовки из буфера команд. Буфер массива должен быть достаточно большим, чтобы содержать по крайней мере указанное число значений ULONG.

dwhContext

Указывает расположение, указывающее входные данные, версию среды выполнения пользовательского режима Direct3D и выходные данные, в которых драйвер возвращает дескриптор контекста при успешном создании контекста. Дополнительные сведения см. в примечаниях.

ddrval

Указывает расположение, в котором драйвер записывает код возврата для D3dContextCreate. Возвращаемый код D3D_OK указывает на успех. Возвращаемый код D3DHAL_OUTOFCONTEXTS указывает, что драйвер не может создать контекст. Дополнительные сведения см. в разделе Коды возврата для обратных вызовов драйвера Direct3D.

Замечания

Когда среда выполнения Direct3D вызывает функцию драйвера D3dContextCreate, среда выполнения указывает число, указывающее версию пользовательского режима среды выполнения в элементе dwhContext. В следующей таблице показано сопоставление чисел и версий пользовательского режима.

Число Версия пользовательского режима DirectX
5 9.0
4 8.0
3 7.0
2 6.0
1 5.0
0 3.0

Если драйвер успешно создает контекст, драйвер возвращает идентификатор контекста в dwhContext для среды выполнения Direct3D, используемой при взаимодействии с драйвером.

Требования

Требование Ценность
заголовка d3dhal.h (include D3dhal.h)

См. также

D3dContextCreate

DD_DIRECTDRAW_LOCAL

DD_SURFACE_LOCAL