функция D3DKMDT_VPPR_GET_CONTENT_ROTATION (d3dkmdt.h)
Вспомогающая функция, которая извлекает из заданного значения перечисления D3DKMDT_VIDPN_PRESENT_PATH_ROTATION из ориентации отображения по умолчанию. Это значение фактически является суммой угла смещения и угла, на который диспетчер окон рабочего стола (DWM) уже повернул основное содержимое пути клонирования. Эту функцию должны вызывать только драйверы, поддерживающие независимую от пути ротацию (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION).
Синтаксис
D3DKMDT_VIDPN_PRESENT_PATH_ROTATION D3DKMDT_VPPR_GET_CONTENT_ROTATION(
D3DKMDT_VIDPN_PRESENT_PATH_ROTATION Rotation
);
Параметры
Rotation
Во входных данных значение из перечисления D3DKMDT_VIDPN_PRESENT_PATH_ROTATION .
В выходных данных значение от 1 до 4 включительно, соответствующее части OFFSET D3DKMDT_VIDPN_PRESENT_PATH_ROTATION значения констант. Выходное значение 1 (идентификатор) представляет 0 градусов общего поворота, 2 — 90 градусов и т. д. Выходное значение 0 указывает, что путь VidPN не инициализирован.
Выходное значение Rotation — это сумма выходных значений функций D3DKMDT_VPPR_GET_CONTENT_ROTATION_PART и D3DKMDT_VPPR_GET_OFFSET_ROTATION минус 1.
Возвращаемое значение
Возвращаемое значение соответствует углам поворота и смещения следующим образом:
Входное значение перечисления | Входная константа перечисления | Поворот и смещение в градусах | Значение поворота выходных данных |
---|---|---|---|
0 | D3DKMDT_VPPR_UNINITIALIZED | - | 0 |
1 | D3DKMDT_VPPR_IDENTITY | 0 | 1 |
2 | D3DKMDT_VPPR_ROTATE90 | 90 | 2 |
3 | D3DKMDT_VPPR_ROTATE180 | 180 | 3 |
4 | D3DKMDT_VPPR_ROTATE270 | 270 | 4 |
5 | D3DKMDT_VPPR_IDENTITY_OFFSET90 | 90 | 2 |
6 | D3DKMDT_VPPR_ROTATE90_OFFSET90 | 180 | 3 |
7 | D3DKMDT_VPPR_ROTATE180_OFFSET90 | 270 | 4 |
8 | D3DKMDT_VPPR_ROTATE270_OFFSET90 | 0 | 1 |
9 | D3DKMDT_VPPR_IDENTITY_OFFSET180 | 180 | 3 |
10 | D3DKMDT_VPPR_ROTATE90_OFFSET180 | 270 | 4 |
11 | D3DKMDT_VPPR_ROTATE180_OFFSET180 | 0 | 1 |
12 | D3DKMDT_VPPR_ROTATE270_OFFSET180 | 90 | 2 |
13 | D3DKMDT_VPPR_IDENTITY_OFFSET270 | 270 | 4 |
14 | D3DKMDT_VPPR_ROTATE90_OFFSET270 | 0 | 1 |
15 | D3DKMDT_VPPR_ROTATE180_OFFSET270 | 90 | 2 |
16 | D3DKMDT_VPPR_ROTATE270_OFFSET270 | 180 | 3 |
Комментарии
Эта функция объявляется встроенной в D3dkmdt.h как:
__inline
D3DKMDT_VIDPN_PRESENT_PATH_ROTATION
D3DKMDT_VPPR_GET_CONTENT_ROTATION(
D3DKMDT_VIDPN_PRESENT_PATH_ROTATION Rotation)
{
if ((Rotation >= D3DKMDT_VPPR_IDENTITY_OFFSET90) &&
(Rotation <= D3DKMDT_VPPR_ROTATE270_OFFSET270))
{
D3DKMDT_VIDPN_PRESENT_PATH_ROTATION ContentPart =
D3DKMDT_VPPR_GET_CONTENT_ROTATION_PART(Rotation);
D3DKMDT_VIDPN_PRESENT_PATH_ROTATION OffsetPart =
D3DKMDT_VPPR_GET_OFFSET_ROTATION(Rotation);
Rotation = (D3DKMDT_VIDPN_PRESENT_PATH_ROTATION)(
(((ContentPart - 1) + (OffsetPart - 1)) % 4) + 1);
}
return Rotation;
}
Если отображаемое содержимое должно быть поворачивается драйвером, выходные данные этой функции представляют собой общий поворот (элемент Rotateструктуры DXGK_PRESENTFLAGS ), который драйвер должен применить к пикселям, указанным в операции DxgkDdiPresent . Дополнительные сведения см. в разделе Поддержка поворота Path-Independent.
Ниже приведен пример того, как эта функция может предоставить драйверу сведения, необходимые для правильной смены содержимого. Если устройство с книжной ориентацией подключается в режиме клонирования к монитору с альбомной ориентацией и пользователь изменяет ориентацию на панели управления Отображение на Книжная, это представляет ориентацию по умолчанию для устройства с книжной ориентацией. Поэтому драйвер должен задать значение D3DKMDT_VIDPN_PRESENT_PATH_ROTATION. D3DKMDT_VPPR_ROTATE90_OFFSET270 в пути. Затем эта функция возвращает значение Поворота 1 (удостоверение), чтобы указать, что содержимое, отображаемое в пути клонирования, не должно поворачиваться.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 8.1,DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION |
Минимальная версия сервера | Windows Server 2012 R2 |
Целевая платформа | Персональный компьютер |
Верхняя часть | d3dkmdt.h |
См. также раздел
D3DKMDT_VIDPN_PRESENT_PATH_ROTATION
D3DKMDT_VPPR_GET_CONTENT_ROTATION_PART