全螢幕模式行為
使用者模式顯示驅動程式可以判斷轉譯裝置處於全螢幕模式:
如果[全螢幕] 位欄位旗標是在pResource參數呼叫驅動程式OpenResource函式中指向之D3DDDIARG_OPENRESOURCE結構的Flags成員中設定。
如果主要位欄位旗標是在pResource參數呼叫驅動程式CreateResource函式中指向之D3DDDIARG_CREATERESOURCE結構的Flags成員中設定。
針對 Microsoft DirectX 9.0 或更早版本所開發的應用程式,會導致 Microsoft Direct3D 執行時間呼叫 OpenResource 以開啟共用的主要介面,然後 CreateResource 建立任何其他後端緩衝區。 Microsoft DirectX 9L 應用程式會導致 Direct3D 執行時間呼叫 CreateResource (而不呼叫 OpenResource) 來建立所有交換鏈結緩衝區。 Direct3D 執行時間會在D3DDDIARG_OPENRESOURCE的Rotation成員中指定主要介面方向,以及pResource參數在呼叫OpenResource和CreateResource函式時所指向D3DDDIARG_CREATERESOURCE結構。
針對全螢幕裝置,使用者模式顯示驅動程式必須鎖定旋轉的資源、轉譯至旋轉的資源,以及執行位區塊傳輸 (位) 輪替資源。 一般而言,使用者模式顯示驅動程式會在旋轉方向中建立過渡轉譯目標, (所有鎖定、位和轉譯都會移至橫向轉譯目標) 和主要配置 (也就是數位對類比轉換器 [DAC] 用來掃描) 的方向。 呼叫使用者模式顯示驅動程式以翻轉資料時,它會在呼叫 pfnPresentCb 函式以發出翻轉命令之前,先從過渡轉譯目標到橫向緩衝區執行旋轉 bitblt。
每當使用者模式顯示驅動程式必須執行涉及旋轉資源和非旋轉資源的 bitblt 時,Direct3D 執行時間就會在呼叫驅動程式的 Blt函式中,指定D3DDDIARG_BLT結構的Flags成員中的旋轉位欄位旗標,以向驅動程式指出必須針對 bitblt 進行適當的旋轉。
DirectX 9L 應用程式可以感知旋轉,這表示它們會以適當的方向轉譯所有專案,並適當地處理旋轉緩衝區的鎖定。 當 Direct3D 執行時間為旋轉感知應用程式建立交換鏈結時,執行時間一律會將旋轉指定為D3DDDIARG_CREATERESOURCE 結構的 Rotation 成員中的 D3DDDI_ROTATION_IDENTITY ,因為使用者模式顯示驅動程式不需要執行任何特殊動作,旋轉感知應用程式才能運作。