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

# IncrementShapeDmaReadPointer

> IncrementShapeDmaReadPointer

# IncrementShapeDmaReadPointer

읽기 포인터를 증가시킵니다.

## Syntax

```cpp theme={null}
void IncrementShapeDmaReadPointer(  
         SHAPE_DMA_CONTEXT* context  
)  
```

### Parameters

*context*   \_Inout\_\
Type: [SHAPE\_DMA\_CONTEXT\*](/reference/audio/shapedmacontext/structs/shape_dma_context)

[SHAPE\_DMA\_CONTEXT](/reference/audio/shapedmacontext/structs/shape_dma_context) 구조체에 대한 포인터입니다.

### Return value

Type: void

## Remarks

프레임의 끝에 도달하면, 이 함수는 프레임을 갱신하고 포인터를 0으로 설정합니다.

DMA 버퍼의 크기를 계산하려면 다음 공식을 사용하십시오:

```cpp theme={null}
fullBufferSizeInBytes = 128 * 4 * numChannels * numFrames  
```

읽기 및 쓰기 포인터는 다음과 같이 증가합니다:

```cpp theme={null}
readPointer = (readPointer + 1) % numFrames 

writePointer = (writePointer + 1) % numFrames  
```

오디오 버퍼 내의 주소는 다음과 같이 계산됩니다:

```cpp theme={null}
readAddress = audioBuffer + (128 * 4 * ((readPointer * numChannels) + channel))   

writeAddress = audioBuffer + (128 * 4 * ((writePointer * numChannels) + channel))  
```

오디오 버퍼가 충분히 크고 (버퍼 크기와 관련된) 일정한 간격으로 데이터를 스트리밍하도록 함으로써 차단된 DMA(Direct Memory Access) 명령을 방지할 수 있습니다. 예를 들어, 한 번에 4개의 하드웨어 프레임을 스트리밍하는 경우, 하드웨어가 타이틀의 읽기 포인터보다 앞서 쓸 수 있도록 이러한 프레임의 배수(적어도 이중 버퍼링된 8프레임)가 버퍼에 있는지 확인하십시오. 또는, 다음 플로우그래프를 제출하기 전에 버퍼 비우기를 강제할 수도 있습니다(소비, DMA 읽기 포인터 갱신, 그런 다음 플로우그래프 제출). 자세한 내용은 [Overview of SHAPE](/build/console-features/audio/overviews/shape-overview)의 [Blocked commands](/build/console-features/audio/overviews/shape-overview#ID4EBGAC)를 참조하십시오.

플로우그래프는 지속형(persistent) 또는 비지속형(non-persistent)으로 처리하도록 제출할 수 있습니다. 지속형 플로우그래프는 처리를 수행한 후 상주 상태로 남아, 읽기 및 쓰기 포인터가 진행되고 다른 컨텍스트 정보가 갱신된 다음 프레임에서 처리를 반복합니다.

## Requirements

**Header:** shapedmacontext.h

**Supported platforms:** XBOX One 계열 콘솔 및 XBOX Series 콘솔

## See also

[ShapeDmaContext](/reference/audio/shapedmacontext/shapedmacontext_members)


## Related topics

- [ShapeDmaContext](/ko/reference/audio/shapedmacontext/shapedmacontext_members.md)
- [IncrementShapeDmaWritePointer](/ko/reference/audio/shapedmacontext/functions/incrementshapedmawritepointer.md)
- [GetShapeDmaReadPointer](/ko/reference/audio/shapedmacontext/functions/getshapedmareadpointer.md)
- [SetShapeDmaReadPointer](/ko/reference/audio/shapedmacontext/functions/setshapedmareadpointer.md)
- [ACP_COMMAND_INCREMENT_DMA_POINTER](/ko/reference/audio/acphal/structs/acp_command_increment_dma_pointer.md)
