структура 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 (включая D3dhal.h)

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

D3dContextCreate

DD_DIRECTDRAW_LOCAL

DD_SURFACE_LOCAL