D3DKMDT_VPPR_GET_OFFSET_ROTATION - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
// d3dkmdt.h

D3DKMDT_VIDPN_PRESENT_PATH_ROTATION D3DKMDT_VPPR_GET_OFFSET_ROTATION(
  D3DKMDT_VIDPN_PRESENT_PATH_ROTATION Rotation
);
View the official Windows Driver Kit DDI reference

NtDoc

No description available.

Windows Driver Kit DDI reference (nf-d3dkmdt-d3dkmdt_vppr_get_offset_rotation)

D3DKMDT_VPPR_GET_OFFSET_ROTATION function

Description

A helper function that extracts the offset angle from a given value of the D3DKMDT_VIDPN_PRESENT_PATH_ROTATION enumeration. Only drivers that support path-independent rotation (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION) should call this function.

Parameters

Rotation

On input, a value from the D3DKMDT_VIDPN_PRESENT_PATH_ROTATION enumeration.

On output, a value between 1 and 4, inclusive, that corresponds to the OFFSET portion of the D3DKMDT_VIDPN_PRESENT_PATH_ROTATION constant values. An output value of 1 (identity) represents 0 degrees of offset, 2 represents 90 degrees, and so on. An output value of 0 indicates that the VidPN path is not initialized.

The output value is always one of the supported values specified for this path in the D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT structure.

Return value

The returned value corresponds to the offset angle as follows:

Input enumeration value Input enumeration constant Offset in degrees Output Rotation value
0 D3DKMDT_VPPR_UNINITIALIZED - 0
1 D3DKMDT_VPPR_IDENTITY 0 1
2 D3DKMDT_VPPR_ROTATE90 0 1
3 D3DKMDT_VPPR_ROTATE180 0 1
4 D3DKMDT_VPPR_ROTATE270 0 1
5 D3DKMDT_VPPR_IDENTITY_OFFSET90 90 2
6 D3DKMDT_VPPR_ROTATE90_OFFSET90 90 2
7 D3DKMDT_VPPR_ROTATE180_OFFSET90 90 2
8 D3DKMDT_VPPR_ROTATE270_OFFSET90 90 2
9 D3DKMDT_VPPR_IDENTITY_OFFSET180 180 3
10 D3DKMDT_VPPR_ROTATE90_OFFSET180 180 3
11 D3DKMDT_VPPR_ROTATE180_OFFSET180 180 3
12 D3DKMDT_VPPR_ROTATE270_OFFSET180 180 3
13 D3DKMDT_VPPR_IDENTITY_OFFSET270 270 4
14 D3DKMDT_VPPR_ROTATE90_OFFSET270 270 4
15 D3DKMDT_VPPR_ROTATE180_OFFSET270 270 4
16 D3DKMDT_VPPR_ROTATE270_OFFSET270 270 4

Remarks

This function is declared inline in D3dkmdt.h as:

__inline
D3DKMDT_VIDPN_PRESENT_PATH_ROTATION
    D3DKMDT_VPPR_GET_OFFSET_ROTATION(
        D3DKMDT_VIDPN_PRESENT_PATH_ROTATION Rotation)
{
    if ((Rotation >= D3DKMDT_VPPR_IDENTITY) &&
        (Rotation <= D3DKMDT_VPPR_ROTATE270_OFFSET270))
    {
        Rotation = (D3DKMDT_VIDPN_PRESENT_PATH_ROTATION)(
            ((Rotation - 1) / 4) + 1);
    }
    return Rotation;
}

The driver should use the output value of the Rotation parameter to rotate the secondary clone path content when the Desktop Window Manager (DWM) has already rotated the primary clone path content. For more info, see Supporting Path-Independent Rotation.

See also

D3DKMDT_VIDPN_PRESENT_PATH_ROTATION

D3DKMDT_VIDPN_PRESENT_PATH_ROTATION_SUPPORT