> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# D3D12_STATE_OBJECT_FLAGS

> 指定狀態物件的限制條件。請在 D3D12_STATE_OBJECT_CONFIG 結構中使用此列舉中的值。

指定狀態物件的限制條件。請在 [D3D12\_STATE\_OBJECT\_CONFIG](/zh-TW/reference/graphics/d3d12/structs/d3d12_state_object_config_public) 結構中使用此列舉中的值。

## 語法

```cpp theme={null}
typedef enum D3D12_STATE_OBJECT_FLAGS
{
    D3D12_STATE_OBJECT_FLAG_NONE = 0,
    D3D12_STATE_OBJECT_FLAG_ALLOW_LOCAL_DEPENDENCIES_ON_EXTERNAL_DEFINITIONS = 1,
    D3D12_STATE_OBJECT_FLAG_ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS = 2
} D3D12_STATE_OBJECT_FLAGS
```

## 常數

| 常數 | 描述 |
| - | - |
| D3D12\_STATE\_OBJECT\_FLAG\_NONE | 沒有狀態物件限制條件。 |
| D3D12\_STATE\_OBJECT\_FLAG\_ALLOW\_LOCAL\_DEPENDENCIES\_ON\_EXTERNAL\_DEFINITIONS | 此旗標僅適用於集合類型的狀態物件，否則會忽略此旗標。  此集合的匯出項目可以有未解析的參考 (相依性)，這些參考必須在集合包含於容器狀態物件 (例如光線追蹤管線狀態物件 (RTPSO)) 時解析 (定義)。  這包括依賴外部定義的子物件關聯，將外部子物件 (例如根簽章) 關聯到本機匯出項目。  若沒有此旗標，此集合中的所有匯出項目都必須在本機完整解析其相依性，包括在本機定義任何必要的子物件關聯。  進階的實作/驅動程式將擁有足夠的資訊來編譯集合中的程式碼，而不需要保留任何未編譯的程式碼 (除非已設定 **D3D12\_STATE\_OBJECT\_FLAG\_ALLOW\_EXTERNAL\_DEPENDENCIES\_ON\_LOCAL\_DEFINITIONS** 旗標)，因此當集合用於容器狀態物件 (例如 RTPSO) 時，驅動程式只需執行最少的工作，理想情況下最多只需一次「低成本」的連結。 |
| D3D12\_STATE\_OBJECT\_FLAG\_ALLOW\_EXTERNAL\_DEPENDENCIES\_ON\_LOCAL\_DEFINITIONS | 此旗標僅適用於集合類型的狀態物件，否則會忽略此旗標。  如果此集合包含在另一個狀態物件 (例如 RTPSO) 中，容器狀態物件其餘部分中的著色器/函式可以依賴 (例如呼叫) 此集合的匯出項目。  若沒有此旗標 (預設)，容器狀態物件 (例如 RTPSO) 的其他部分無法直接參考此集合的匯出項目。  這可以稍微減少集合的記憶體使用量，因為驅動程式不需要為了萬一被某個外部函式呼叫 (屆時會將所有程式碼一起編譯) 而在集合中保留未編譯的程式碼。  不過，如果尚未在本機為此集合中的程式碼定義所有必要的子物件關聯，驅動程式可能還無法編譯著色器程式碼，而且可能仍需要保留未編譯的程式碼。  在外部定義、將外部子物件關聯到本機匯出項目的子物件關聯，不算是對本機定義的外部相依性，因此此旗標存在與否，不影響是否允許該關聯。另一方面，如果目前的集合為本機定義的子物件定義了與外部匯出項目 (例如著色器) 的子物件關聯，則算是對本機定義的外部相依性，必須設定此旗標。  無論此旗標存在與否，如果容器狀態物件 (例如 RTPSO) 匯出了集合中的著色器進入點 (例如命中群組或遺漏著色器)，這些進入點對該容器狀態物件而言都是可見的進入點。  若為 RTPSO，匯出的進入點可用於光線追蹤的著色器表。 |

## 需求

**標頭:** d3d12\_xs.h 或 d3d12\_x.h\
**程式庫:** d3d12\_xs.lib 或 d3d12\_x.lib\
**支援的平台**: XBOX Series 主機與 XBOX One 系列


## Related topics

- [D3D12_STATE_OBJECT_CONFIG](/zh-TW/reference/graphics/d3d12/structs/d3d12_state_object_config_public.md)
- [D3D12_STATE_OBJECT_TYPE](/zh-TW/reference/graphics/d3d12/enums/d3d12_state_object_type_public.md)
- [D3D12_STATE_OBJECT_DESC](/zh-TW/reference/graphics/d3d12/structs/d3d12_state_object_desc_public.md)
- [D3D12_COMPUTE_PIPELINE_STATE_DESC](/zh-TW/reference/graphics/d3d12/structs/d3d12_compute_pipeline_state_desc_public.md)
- [D3D12_STATE_SUBOBJECT](/zh-TW/reference/graphics/d3d12/structs/d3d12_state_subobject_public.md)
