ID3D11Device3::WriteToSubresource-Methode (d3d11_3.h)

Kopiert Daten in eine D3D11_USAGE_DEFAULT Textur, die mit ID3D11DeviceContext3::Map zugeordnet wurde, während ein NULL-D3D11_MAPPED_SUBRESOURCE-Parameter bereitgestellt wird.

Syntax

void WriteToSubresource(
  [in]           ID3D11Resource  *pDstResource,
  [in]           UINT            DstSubresource,
  [in, optional] const D3D11_BOX *pDstBox,
  [in]           const void      *pSrcData,
  [in]           UINT            SrcRowPitch,
  [in]           UINT            SrcDepthPitch
);

Parameter

[in] pDstResource

Typ: ID3D11Resource*

Ein Zeiger auf die Zielressource ( id3D11Resource).

[in] DstSubresource

Typ: UINT

Ein nullbasierter Index, der die Zielunterquelle identifiziert. Weitere Informationen finden Sie unter D3D11CalcSubresource.

[in, optional] pDstBox

Typ: const D3D11_BOX*

Ein Zeiger auf ein Feld, das den Teil der Zielunterquelle definiert, in den die Ressourcendaten kopiert werden sollen. Bei NULL werden die Daten ohne Offset in die Zielunterquelle geschrieben. Die Dimensionen der Quelle müssen dem Ziel entsprechen (siehe D3D11_BOX).

Ein leeres Feld führt zu einer Nicht-Op. Ein Feld ist leer, wenn der oberste Wert größer oder gleich dem unteren Wert ist, oder wenn der linke Wert größer oder gleich dem rechten Wert ist, oder wenn der Frontwert größer als oder gleich dem back-Wert ist. Wenn das Feld leer ist, führt diese Methode keinen Vorgang aus.

[in] pSrcData

Typ: const void*

Ein Zeiger auf die Quelldaten im Arbeitsspeicher.

[in] SrcRowPitch

Typ: UINT

Die Größe einer Zeile der Quelldaten.

[in] SrcDepthPitch

Typ: UINT

Die Größe eines tiefen Slices der Quelldaten.

Rückgabewert

Keine

Bemerkungen

Die bereitgestellte Ressource muss eine D3D11_USAGE_DEFAULT Textur sein, die für das Schreiben durch einen vorherigen Aufruf von ID3D11DeviceContext3::Map zugeordnet wurde, während ein NULL-D3D11_MAPPED_SUBRESOURCE-Parameter bereitgestellt wurde.

Diese API ist für hochfrequente Aufrufe vorgesehen. Aufrufer können den Arbeitsspeicher reduzieren, indem sie iterative Aufrufe ausführen, die progressive Regionen der Textur aktualisieren, während sie während jedes Aufrufs einen kleinen Puffer bereitstellen. Es ist jedoch am effizientesten, genügend Große Regionen anzugeben, da D3D dadurch ganze Cachezeilen in der Textur füllen kann, bevor er zurückgibt.

Stellen Sie aus Effizienzgründen sicher, dass die Grenzen und Ausrichtung der Ausdehnungen innerhalb des Felds horizontal (64 /[Bytes pro Pixel] ) Pixel sind. Vertikale Grenzen und Ausrichtung sollten 2 Zeilen betragen, außer wenn Formate von 1 Byte pro Pixel verwendet werden, in diesem Fall werden 4 Zeilen empfohlen. Einzelne Tiefenschnitte pro Aufruf werden effizient verarbeitet. Es wird empfohlen, aber nicht notwendig, Zeiger und Schritte bereitzustellen, die auf 128 Byte ausgerichtet sind.

Beim Schreiben in Sub-Mipmap-Ebenen wird empfohlen, größere Breite und Höhen als oben beschrieben zu verwenden. Dies liegt daran, dass kleine Mipmap-Ebenen tatsächlich in einem größeren Speicherblock gespeichert werden können, mit einer undurchsichtigen Menge an Ausrechnung, die die Ausrichtung an Cachezeilen beeinträchtigen kann.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile d3d11_3.h
Bibliothek D3D11.lib

Weitere Informationen

ID3D11Device3