D3DKMT_PRESENTFLAGS 結構 (d3dkmthk.h)
D3DKMT_PRESENTFLAGS 結構會識別如何執行目前作業。
語法
typedef struct _D3DKMT_PRESENTFLAGS {
union {
struct {
UINT Blt : 1;
UINT ColorFill : 1;
UINT Flip : 1;
UINT FlipDoNotFlip : 1;
UINT FlipDoNotWait : 1;
UINT FlipRestart : 1;
UINT DstRectValid : 1;
UINT SrcRectValid : 1;
UINT RestrictVidPnSource : 1;
UINT SrcColorKey : 1;
UINT DstColorKey : 1;
UINT LinearToSrgb : 1;
UINT PresentCountValid : 1;
UINT Rotate : 1;
UINT PresentToBitmap : 1;
UINT RedirectedFlip : 1;
UINT RedirectedBlt : 1;
UINT FlipStereo : 1;
UINT FlipStereoTemporaryMono : 1;
UINT FlipStereoPreferRight : 1;
UINT BltStereoUseRight : 1;
UINT PresentHistoryTokenOnly : 1;
UINT PresentRegionsValid : 1;
UINT PresentDDA : 1;
UINT ProtectedContentBlankedOut : 1;
UINT RemoteSession : 1;
UINT CrossAdapter : 1;
UINT DurationValid : 1;
UINT PresentIndirect : 1;
UINT PresentHMD : 1;
#if ...
UINT Reserved : 2;
#elif
UINT Reserved : 6;
#else
UINT Reserved : 15;
#endif
};
UINT Value;
};
} D3DKMT_PRESENTFLAGS;
成員
Blt
UINT 值,指定是否要將 bit-block transfer (bitblt) 數據傳送至主要介面。 此位欄位旗標可以搭配 DstRectValid 和 SrcRectValid 位字段旗標使用。
設定此成員相當於設定 32 位 Value 成員的第一個位 (0x00000001) 。
ColorFill
UINT 值,指定是否要使用 D3DKMT_PRESENT 結構的 Color 成員中的值,對主要表面執行 colorfill bitblt。 此位字段旗標可以搭配 DstRectValid 位字段旗標使用。
設定此成員相當於設定 32 位 Value 成員的第二個位 (0x00000002) 。
Flip
UINT 值,指定是否要翻轉至新的表面。
設定此成員相當於設定 32 位 Value 成員的第三個位 (0x00000004) 。
FlipDoNotFlip
UINT 值,指定是否要將佇列等候插入轉譯數據流。 設定此成員表示翻轉至目前正在掃描的相同表面。
設定此成員相當於設定 32 位 Value 成員的第四個位 (0x00000008) 。
FlipDoNotWait
UINT 值,指定 OpenGL 可安裝用戶端驅動程式是否 (ICD) 要求目前的作業等候佇列翻轉表面數目低於作業開始之前的特定限制。 設定此成員表示 ICD 不需要等候。 佇列翻轉表面數目的預設限制為三個。
設定此成員相當於設定 32 位 Value 成員的第五個位 (0x00000010) 。
FlipRestart
UINT 值,指定是否要重新啟動翻轉至新的表面。
設定此成員相當於設定 32 位 Value 成員 (0x00000020) 的第六個位。
DstRectValid
UINT 值,指定 bitblt 是否使用目的地矩形區域。
設定此成員相當於設定 32 位 Value 成員的第七位 (0x00000040) 。
SrcRectValid
UINT 值,指定 bitblt 是否使用來源矩形區域。
設定這個成員相當於設定 32 位 Value 成員的第八位 (0x00000080) 。
RestrictVidPnSource
UINT 值,指定是否限制 bitblt。 如果 hWindow 成員為 NULL,D3DKMT_PRESENT 結構的 VidPnSourceId 成員會指出要導向全螢幕 bitblt 的輸出;如果 hWindow 不是 NULL,VidPnSourceId 會指出要限制視窗位的輸出。
設定此成員相當於設定 32 位 Value 成員的第九位 (0x00000100) 。
SrcColorKey
UINT 值,指定是否要使用 D3DKMT_PRESENT 結構的 Color 成員中的值來執行來源色彩索引鍵。 也就是說,符合色彩索引鍵的來源介面中的任何圖元不應複製到目的地介面,而且應該複製不符合色彩索引鍵的所有來源圖元。
設定此成員相當於設定 32 位 Value 成員的第十位 (0x00000200) 。
DstColorKey
UINT 值,指定是否要使用 D3DKMT_PRESENT 的 Color 成員中的 值來執行目的地色彩索引鍵。 也就是說,符合色彩索引鍵的目的地介面中的任何像素都應該取代為來源介面中的對應圖元,而且不應取代不符合色彩索引鍵的所有目的地圖元。
設定此成員相當於設定 32 位 Value 成員的第十一位 (0x00000400) 。
LinearToSrgb
UINT 值,指定是否要在複製作業期間將線性格式的來源轉換成 sRGB 格式。 sRGB 格式已更正 gamma。 如需 sRGB 格式的詳細資訊,請參閱 sRGB 網站。
設定此成員相當於設定 32 位 Value 成員的第十二位 (0x00000800) 。
PresentCountValid
UINT 值,指定D3DKMT_PRESENT結構之 PresentCount 成員中設定的值是否有效。
設定此成員相當於設定 32 位 Value 成員的第十三位 (0x00001000) 。
[in] Rotate
UINT 值,指定是否要在簡報位區塊傳輸 (bitblt) 期間旋轉簡報數據,以符合畫面的目前方向。 畫面的目前方向是在D3DKMDT_VIDPN_PRESENT_PATH_TRANSFORMATION結構的 Rotation 成員中設定,該成員是在影片呈現路徑之D3DKMDT_VIDPN_PRESENT_PATH結構的 ContentTransformation 成員中設定。
只有在設定 [旋轉 位字段] 旗標時,顯示迷你埠驅動程式才應該旋轉數據。 即使驅動程序判斷螢幕的目前方向是從簡報數據旋轉,而且未設定 Rotate ,驅動程式不應該旋轉數據。
設定此成員相當於設定 32 位 Value 成員的第十四位 (0x00002000) 。
PresentToBitmap
UINT 值,指定是否要呈現給點陣圖。
設定此成員相當於設定 32 位 Value 成員的第十五位 (0x00004000) 。
從 Windows 7 開始支援。
RedirectedFlip
UINT 值,指定是否要將翻轉重新導向至新的表面。
設定此成員相當於設定 32 位 Value 成員的第十六位 (0x00008000) 。
從 Windows 7 開始支援。
RedirectedBlt
UINT 值,指定是否要將 bitblt 重新導向至新的表面。
設定此成員相當於設定 32 位 Value 成員的第十七位 (0x00010000) 。
從 Windows 7 開始支援。
FlipStereo
指定驅動程式是否應該翻轉立體聲配置的左右影像。
如果已設定DXGK_SETVIDPNSOURCEADDRESS_FLAGS結構的 FlipOnNextVSync 成員,驅動程式應該會在下一個 VSync 上完成左影像的翻轉,然後在下列 VSync 上完成向右影像的翻轉。
如果已設定 DXGK_SETVIDPNSOURCEADDRESS_FLAGS 結構的 FlipImmediate 成員,驅動程式應該會立即開始從新的配置中掃描。 例如,如果驅動程式正在掃描正確的影像,它應該從新配置右影像中的相同相對位移啟動新的掃描。
FlipStereo 和FlipStereoTemporaryMono 成員不能同時設定。
如需更多需求,請參閱一節。
設定此成員相當於設定 32 位 Value 成員的第十八位 (0x00020000) 。
從 Windows 8 開始支援。
FlipStereoTemporaryMono
指定驅動程式是否應該針對立體聲框架的右邊和左部分使用立體聲配置的左影像。 驅動程式會執行與 FlipStereo 相同的目前作業,不同之處在於它應該只從左側影像掃描,以產生立體聲框架的兩個影像。
只有當驅動程式報告目前顯示模式中此選項的支援時,才應該設定這個成員,方法是將D3DKMDT_VIDPN_SOURCE_MODE結構的 Type 成員設定為D3DKMDT_RMT_GRAPHICS_STEREO_ADVANCED_SCAN。
FlipStereo 和FlipStereoTemporaryMono 成員不能同時設定。
FlipStereoTemporaryMono 和 FlipStereoPreferRight 成員不能同時設定。
如需更多需求,請參閱一節。
設定此成員相當於設定 32 位 Value 成員的第十九位 (0x00040000) 。
從 Windows 8 開始支援。
FlipStereoPreferRight
指定當驅動程式將立體聲主要配置複製到單聲道監視器時,應該使用正確的影像。
FlipStereoTemporaryMono 和 FlipStereoPreferRight 成員不能同時設定。
如需更多需求,請參閱一節。
設定此成員相當於設定 32 位 Value 成員 (0x00080000) 的第二位。
從 Windows 8 開始支援。
BltStereoUseRight
指定當驅動程式從立體聲配置呈現到單聲道配置時,應該使用正確的影像。 如果未設定,驅動程式應該使用左映像。
設定此成員相當於設定 32 位 Value 成員 (0x00100000) 的第二十一位。
從 Windows 8 開始支援。
PresentHistoryTokenOnly
指定驅動程序應該只提交目前歷程記錄令牌。
目前歷程記錄令牌是轉譯應用程式送出的數據封包,通知桌面視窗管理員 (DWM) 轉譯已完成,且交換鏈結返回緩衝區已準備好呈現。
設定此成員相當於設定 32 位 Value 成員的二十二秒位 (0x00200000) 。
從 Windows 8 開始支援。
PresentRegionsValid
指定 D3DKMT_PRESENT。pPresentRegions 成員是有效的指標, (不是 NULL) 。
設定此成員相當於設定 32 位 Value 成員 (0x00400000) 的第二十三位。
從 Windows 8 開始支援。
PresentDDA
這個成員是保留的,而且應該設定為零。
設定此成員相當於設定 32 位 Value 成員的第二十四位 (0x00800000) 。
從 Windows 8 開始支援。
ProtectedContentBlankedOut
這個成員是保留的,而且應該設定為零。
設定此成員相當於設定 32 位 Value 成員 (0x01000000) 的 25 位。
從 Windows 8 開始支援。
RemoteSession
指定將目前作業導向遠程會話。
設定此成員相當於設定 32 位 Value 成員的 26 位 (0x02000000) 。
從 Windows 8 開始支援。
CrossAdapter
交叉配接器。
DurationValid
指出持續時間是否有效。
PresentIndirect
呈現間接。
PresentHMD
Reserved
從 Windows 8 開始支援。
這個成員是保留的,而且應該設定為零。 將此成員設定為零相當於將 32 位 Value 成員的其餘 9 位 (0xFF800000) 設定為零。
Value
識別如何執行目前作業的32位值。
備註
如果已設定任何 FlipStereo、 FlipStereoTemporaryMono 或 FlipStereoPreferRight 成員,則適用下列條件:
- DXGKARG_SETVIDPNSOURCEADDRESS 結構的 hAllocation 成員應該指向在 D3DKMT_DISPLAYMODE 結構的 Flags 成員中設定的 Stereo 成員所建立的配置。
- DXGKARG_SETVIDPNSOURCEADDRESS的 PrimarySegment 和 PrimaryAddress 成員應該指向配置的起始實體位址。
- 驅動程式應接受 DXGK_SETVIDPNSOURCEADDRESS_FLAGS 結構的 FlipImmediate 和 FlipOnNextVSync 成員的 設定 。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 從 Windows Vista 開始提供。 |
標頭 | d3dkmthk.h (包含 D3dkmthk.h) |