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

# IncrementShapeDmaWritePointer

> IncrementShapeDmaWritePointer

# IncrementShapeDmaWritePointer

書き込みポインターをインクリメントします。

## 構文

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

### パラメーター

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

[SHAPE\_DMA\_CONTEXT](/reference/audio/shapedmacontext/structs/shape_dma_context) 構造体へのポインター。

### 戻り値

型: void

## 解説

フレームの終端に達すると、この関数はフレームを更新し、ポインターをゼロにセットします。

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))  
```

オーディオ バッファーが十分に大きく、データがバッファー サイズに応じた一定間隔でストリーミングされるようにすることで、Direct Memory Access (DMA) コマンドのブロックを防ぐことができます。たとえば、一度に 4 個のハードウェア フレームをストリーミングしている場合、そのフレームの倍数 (少なくとも 8 フレームでダブル バッファリング) をバッファーに確保し、タイトルの読み取りポインターより先行してハードウェアが書き込めるようにしてください。あるいは、次のフローグラフを送信する前にバッファーを空にすること (消費、DMA 読み取りポインターの更新、その後フローグラフの送信) を強制することもできます。詳細については、[SHAPE の概要](/build/console-features/audio/overviews/shape-overview) の [Blocked commands](/build/console-features/audio/overviews/shape-overview#ID4EBGAC) を参照してください。

フローグラフは、永続または非永続として処理するように送信できます。永続フローグラフは、処理された後もそのままメモリ上に残り、読み書きポインターが進み、他のコンテキスト情報が更新された次のフレームで再度処理を繰り返します。

## 要件

**ヘッダー:** shapedmacontext.h

**サポートされるプラットフォーム:** XBOX One ファミリ本体および XBOX Series 本体

## 関連項目

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


## Related topics

- [ShapeDmaContext](/ja-jp/reference/audio/shapedmacontext/shapedmacontext_members.md)
- [IncrementShapeDmaReadPointer](/ja-jp/reference/audio/shapedmacontext/functions/incrementshapedmareadpointer.md)
- [SetShapeDmaWritePointer](/ja-jp/reference/audio/shapedmacontext/functions/setshapedmawritepointer.md)
- [GetShapeDmaWritePointer](/ja-jp/reference/audio/shapedmacontext/functions/getshapedmawritepointer.md)
- [ACP_COMMAND_INCREMENT_DMA_POINTER](/ja-jp/reference/audio/acphal/structs/acp_command_increment_dma_pointer.md)
