共用方式為


IDCompositionTexture::GetAvailableFence 方法 (dcomp.h)

重要

某些資訊與發行前版本產品有關,在正式發行前可能會大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。

擷取 Direct3D 同步處理柵欄/值組,指出如果已知該資訊,組合紋理何時可供使用。 傳回的值取決於組合紋理的可用性狀態。 可用性狀態會指定是否和何時可以安全地轉譯成組合紋理。

如需可用性狀態、其描述,以及 GetAvailableFence 對於每個狀態的行為,請參閱一節。

如果組合紋理可供使用,則您的應用程式必須小心,只將轉譯發出至它所參考之 Direct3D 紋理的確切子系。

語法

HRESULT GetAvailableFence(
  UINT64 *fenceValue,
  REFIID iid,
  void   **availableFence
);

參數

fenceValue

類型:_Out_ UINT64*

傳回的柵欄值。

iid

類型:_In_ REFIID

介面識別碼。

availableFence

類型:_Outptr_result_maybenull_ void**

根據組合紋理的可用性狀態,傳回的可用柵欄或 nullptr。 如需詳細資訊,請參閱一節。

傳回值

類型: HRESULT

如果函式成功,它會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。

備註

以下是可用性狀態、其描述,以及 GetAvailableFence 對於每個狀態的行為。

立即可用。 桌面視窗管理員不會顯示組合紋理 (DWM) ,也不會將應用程式認可排入佇列,使其執行此動作。 因此,組合紋理可以放心地寫入。 GetAvailableFence 會傳回可用的柵欄,這已符合傳回的值。

即將推出。 組合紋理目前由 DWM 顯示,但應用程式已將其從可視化樹狀結構中移除,並認可至 DWM。 不過,該認可尚未由 DWM 處理,因此 DWM 尚未停止顯示紋理。 如果您的 app 可以根據紋理的可用柵欄同步處理該工作,將它轉譯為即將可用的紋理。 GetAvailableFence 會傳回可用的柵欄。 當該柵欄向傳回的值發出訊號時,組合紋理將安全寫入。

無法使用。 組合紋理目前由 DWM 顯示,或已排入佇列以供 DWM 顯示。 因此,您的應用程式不應該寫入它。 GetAvailableFence 會傳 nullptr 回而不是柵欄。

可用的柵欄描述單一組合紋理的可用性。 如果每個組合紋理採用不同 (較大型 Direct3D 紋理的非重疊) 區域,則多個組合紋理可能會參考相同的 Direct3D 紋理,方法是 (指定稱為 atlasing) 的技術。 在這種情況下,如果組合紋理可供使用,則您的應用程式必須小心,只對 Direct3D 紋理的確切下限發出轉譯;以確保不會干擾可能屬於其他組合紋理的圖元, (可能無法) 。 這是因為單一 Direct3D 紋理的不同區域可能會有不同的可用性狀態。

規格需求

需求
標頭 dcomp.h

另請參閱