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 |