> ## 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.

# ResolveSubresourceRegion

> 将多重采样或压缩资源的某个区域复制到非多重采样或非压缩资源中。

将多重采样或压缩资源的某个区域复制到非多重采样或非压缩资源中。

## 语法

```cpp theme={null}
void ResolveSubresourceRegion(
    ID3D12Resource  pDstResource,
    UINT DstSubresource,
    UINT DstX,
    UINT DstY,
    ID3D12Resource  pSrcResource,
    UINT SrcSubresource,
    D3D12_RECT  pSrcRect,
    DXGI_FORMAT Format,
    D3D12_RESOLVE_MODE ResolveMode
)
```

### 参数

*pDstResource \[in]*\
类型：ID3D12Resource \*

[SAL](https://learn.microsoft.com/en-us/visualstudio/code-quality/annotating-function-parameters-and-return-values)：<code>*In*</code>

目标资源。必须使用 **D3D11\_USAGE\_DEFAULT** 标志创建，并且必须是单采样的，除非要从压缩资源（**D3D12\_RESOLVE\_MODE\_DECOMPRESS**）进行解析；在这种情况下，它必须与压缩源具有相同的采样计数。

*DstSubresource \[in]*\
类型：UINT

[SAL](https://learn.microsoft.com/en-us/visualstudio/code-quality/annotating-function-parameters-and-return-values)：<code>*In*</code>

一个从零开始的索引，用于标识目标子资源。如果父资源较为复杂，请使用 [D3D12CalcSubresource](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/d3d12calcsubresource) 计算子资源索引。

*DstX \[in]*\
类型：UINT

[SAL](https://learn.microsoft.com/en-us/visualstudio/code-quality/annotating-function-parameters-and-return-values)：<code>*In*</code>

目标区域最左边缘的 X 坐标。目标区域的宽度与源矩形的宽度相同。

*DstY \[in]*\
类型：UINT

[SAL](https://learn.microsoft.com/en-us/visualstudio/code-quality/annotating-function-parameters-and-return-values)：<code>*In*</code>

目标区域最上边缘的 Y 坐标。目标区域的高度与源矩形的高度相同。

*pSrcResource \[in]*\
类型：ID3D12Resource \*

[SAL](https://learn.microsoft.com/en-us/visualstudio/code-quality/annotating-function-parameters-and-return-values)：<code>*In*</code>

源资源。必须是多重采样或压缩的。

*SrcSubresource \[in]*\
类型：UINT

[SAL](https://learn.microsoft.com/en-us/visualstudio/code-quality/annotating-function-parameters-and-return-values)：<code>*In*</code>

一个从零开始的索引，用于标识源子资源。

*pSrcRect \[in, optional]*\
类型：D3D12\_RECT \*

[SAL](https://learn.microsoft.com/en-us/visualstudio/code-quality/annotating-function-parameters-and-return-values)：<code>*In\_opt*</code>

指定要解析的源资源的矩形区域。为 <i>pSrcRect</i> 传入 NULL 表示要解析整个子资源。

*Format \[in]*\
类型：DXGI\_FORMAT

[SAL](https://learn.microsoft.com/en-us/visualstudio/code-quality/annotating-function-parameters-and-return-values)：<code>*In*</code>

一个 DXGI\_FORMAT，用于指定如何合并源资源和目标资源的格式。

*ResolveMode \[in]*\
类型：D3D12\_RESOLVE\_MODE

[SAL](https://learn.microsoft.com/en-us/visualstudio/code-quality/annotating-function-parameters-and-return-values)：<code>*In*</code>

指定用于解析源采样的操作。

使用 **D3D12\_RESOLVE\_MODE\_DECOMPRESS** 操作时，只要源和目标具有相同的采样计数，采样计数就可以大于 1，并且源和目标可以指定相同的资源，只要源矩形与目标 X 和 Y 坐标对齐，此时解压缩会就地进行。

使用 **D3D12\_RESOLVE\_MODE\_MIN**、**D3D12\_RESOLVE\_MODE\_MAX** 或 **D3D12\_RESOLVE\_MODE\_AVERAGE** 操作时，目标必须具有 1 的采样计数。

### 返回值

类型：void

无。

## 备注

ResolveSubresourceRegion 的运行方式与 [ResolveSubresource](/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist/methods/id3d12graphicscommandlist_resolvesubresource_public) 类似，但仅允许解析资源的一部分，并且允许以多种方式解析源采样。部分解析在多适配器场景中可能有用；例如，当渲染区域已在多个适配器之间分区时，每个适配器可能只需要解析与其分配的分区对应的子资源部分。

## 要求

**头文件：** d3d12\_xs.h 或 d3d12\_x.h\
**库：** d3d12\_xs.lib 或 d3d12\_x.lib\
**支持的平台**：XBOX Series 主机和 XBOX One 系列

## 另请参阅

[ID3D12GraphicsCommandList1](/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist1/id3d12graphicscommandlist1_public)


## Related topics

- [D3D12_RESOLVE_MODE](/zh-CN/reference/graphics/d3d12/enums/d3d12_resolve_mode_public.md)
- [SetSamplePositions](/zh-CN/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist1/methods/id3d12graphicscommandlist1_setsamplepositions_public.md)
- [D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS](/zh-CN/reference/graphics/d3d12/structs/d3d12_render_pass_ending_access_resolve_subresource_parameters_public.md)
- [D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS](/zh-CN/reference/graphics/d3d12/structs/d3d12_render_pass_ending_access_resolve_parameters_public.md)
- [D3D12_DISCARD_REGION](/zh-CN/reference/graphics/d3d12/structs/d3d12_discard_region_public.md)
