PFND3D11_1DDI_RESOURCECOPYREGION Rückruffunktion (d3d10umddi.h)
Kopiert einen Quellunterressourcenbereich an einen Speicherort in einer Zielunterressource.
Syntax
PFND3D11_1DDI_RESOURCECOPYREGION Pfnd3d111DdiResourcecopyregion;
void Pfnd3d111DdiResourcecopyregion(
D3D10DDI_HDEVICE unnamedParam1,
D3D10DDI_HRESOURCE unnamedParam2,
UINT unnamedParam3,
UINT unnamedParam4,
UINT unnamedParam5,
UINT unnamedParam6,
D3D10DDI_HRESOURCE unnamedParam7,
UINT unnamedParam8,
const D3D10_DDI_BOX *unnamedParam9,
[in] UINT CopyFlags
)
{...}
Parameter
unnamedParam1
hDevice [in]
Ein Handle für das Anzeigegerät (Grafikkontext).
unnamedParam2
hDstResource- [in]
Ein Handle für die Zielressource, in die kopiert werden soll.
unnamedParam3
DstSubresource [in]
Ein Index, der die zu kopierende Zielunterressource angibt.
unnamedParam4
DstX- [in]
Die x-Koordinate der Zielunterressource.
unnamedParam5
DstY- [in]
Die y-Koordinate der Zielunterressource. Bei eindimensionalen Unterressourcen (1D) wird DstY- auf Null festgelegt.
unnamedParam6
DstZ- [in]
Die Z-Koordinate der Zielunterressource. Bei eindimensionalen Unterressourcen (1D) und zweidimensionalen Unterressourcen (2D) wird DstZ- auf Null festgelegt.
unnamedParam7
hSrcResource [in]
Ein Handle für die Quellressource, aus der kopiert werden soll.
unnamedParam8
SrcSubresource [in]
Ein Index, der die zu kopierende Quellunterressource angibt.
unnamedParam9
pSrcBox [in, optional]
Ein Zeiger auf eine D3D10_DDI_BOX-Struktur, die ein Feld angibt, das entweder auf die Quell- oder Zielunterressource passt. Wenn pSrcBox-NULL-ist, sollte der Treiber die gesamte Quellunterressource an das Ziel kopieren.
Wenn die Elemente der D3D10_DDI_BOX Struktur so sind, dass links>=rechts, obere>=untereoder front>=zurück, dann wird pSrcBox- als leer angesehen, und ResourceCopyRegion(D3D11_1) dürfen keinen Kopiervorgang ausführen.
[in] CopyFlags
Ein Wert, der Merkmale des Kopiervorgangs als bitweise ODER der Werte im D3D11_1_DDI_COPY_FLAGS Enumerationstyp angibt.
Rückgabewert
Nichts
Bemerkungen
Der Treiber kann die pfnSetErrorCb Rückruffunktion verwenden, um einen Fehlercode festzulegen.
Die Microsoft Direct3D-Laufzeit ruft die ResourceCopyRegion(D3D11_1)- Funktion des Benutzermodus auf, um den Treiber zu informieren, aus dem angegebenen Quellunterressourcenbereich an einen Speicherort in der angegebenen Zielunterressource zu kopieren. Die Quell- und Zielunterressourcen können dieselbe Unterressource derselben Ressource sein. Sowohl Quell- als auch Zielressourcen müssen derselbe Ressourcentyp sein und über Formattypen (DXGI_FORMAT-Typ-Werte) verfügen, die sich gegenseitig konvertierbar sind.
Für Puffer müssen sich alle Koordinaten in Byte befinden; in der Erwägung, dass für Texturen alle Koordinaten in Pixeln liegen müssen. The box that the pSrcBox parameter points to not extend over the edges of the source subresource region or the destination subresource. Die Quelle und die Zielressource dürfen derzeit nicht zugeordnet werden. Darüber hinaus schränken die Kennzeichnungen für die Ressourcenerstellung ein, ob die Ressource am Kopiervorgang teilnehmen kann.
Der Treiber sollte keinen Fehler haben, mit Ausnahme von D3DDDIERR_DEVICEREMOVED. Wenn der Treiber daher einen Fehler außer D3DDDIERR_DEVICEREMOVED übergibt, bestimmt die Direct3D-Laufzeit in einem Aufruf der funktion pfnSetErrorCb, dass der Fehler kritisch ist. Selbst wenn das Gerät entfernt wurde, ist der Treiber nicht erforderlich, um D3DDDIERR_DEVICEREMOVED zurückzugeben; Wenn die Geräteentfernung jedoch den Betrieb beeinträchtigt (was normalerweise nicht geschehen sollte), kann der Treiber D3DDDIERR_DEVICEREMOVED zurückgeben.
Der Treiber kann eine ResourceCopyRegion(D3D11_1)-Funktion implementieren, die einen Schalter Anweisung zum Verarbeiten des Kopierens und Konvertierens enthalten kann. Das heißt, der Treiber kann ein ResourceCopyRegion(D3D11_1)- implementieren und das pfnResourceConvertRegion Member der D3D11_1DDI_DEVICEFUNCS Struktur festlegen, um auf ResourceCopyRegion(D3D11_1) zusammen mit dem pfnResourceCopyRegion Mitglied von D3D11_1DDI_DEVICEFUNCSzu verweisen. Um die Leistung zu verbessern, kann der Treiber jedoch separate ResourceCopyRegion(D3D11_1) und ResourceConvertRegion(D3D11_1) Funktionen implementieren.
In den folgenden Abschnitten werden Bedingungen für das Kopieren und Konvertieren aufgeführt:
Kopieren von
Zum Kopieren stellt ResourceCopyRegion(D3D11_1) sicher, dass die Quell- und Zielressourcen über die CreateResource(D3D11)- funktion des Treibers mit den folgenden Bedingungen erstellt wurden:
- Die Zielressource wurde nicht mit dem D3D10_DDI_USAGE_IMMUTABLE Wert erstellt, der im Usage Member der D3D11DDIARG_CREATERESOURCE-Struktur festgelegt wurde.
- Wenn entweder die Quell- oder Zielressource das D3D10_DDI_BIND_DEPTH_STENCIL Bit im BindFlags Member der D3D10DDIARG_CREATERESOURCE festgelegt hat oder eine multisamplierte Ressource ist, ResourceCopyRegion(D3D11_1) überprüft, ob der pSrcBox Parameter NULL-ist, während die DstX-, DstY-und DstZ Parameter 0 sind.
- Die Unterressourcenindizes befinden sich im Bereich.
- Ausrichtungseinschränkungen gelten für Koordinaten.
- Die Quell- und Zielressourcen sind nicht Teil derselben Unterressource.
- Jedes Quell- und Zielressourcenformat, das im Format angegeben ist, Mitglied der D3D11DDIARG_CREATERESOURCE befindet sich in derselben typlosen Gruppe.
- Die Quell- und Zielressourcen müssen dieselbe Anzahl von Proben und Qualitätsstufen aufweisen; mit Ausnahme von Ressourcen mit einer Stichprobe, die nur die gleiche Anzahl von Beispielen aufweisen dürfen.
Konvertieren von
Für die Konvertierung stellt ResourceCopyRegion(D3D11_1) sicher, dass die Quell- und Zielressourcen über die CreateResource(D3D11)- Funktion des Treibers mit den folgenden Bedingungen erstellt wurden:
- Die Zielressource wurde nicht mit dem D3D10_DDI_USAGE_IMMUTABLE Wert erstellt, der im Usage Member der D3D11DDIARG_CREATERESOURCE-Struktur festgelegt wurde.
- Wenn entweder die Quell- oder Zielressource das D3D10_DDI_BIND_DEPTH_STENCIL Bit im BindFlags Mitglied der D3D11DDIARG_CREATERESOURCE oder eine multisamplierte Ressource ist, ResourceCopyRegion(D3D11_1) überprüft, ob der pSrcBox Parameter NULL-ist, während die DstX-, DstY, und DstZ Parameter sind 0.
- Die Unterressourcenindizes befinden sich im Bereich.
- Ausrichtungseinschränkungen gelten für Koordinaten.
- Die Quell- und Zielressourcen sind nicht Teil derselben Unterressource.
- Jedes Quell- und Zielressourcenformat, das im Format angegeben ist, Mitglied der D3D11DDIARG_CREATERESOURCE befindet sich in derselben typlosen Gruppe.
- Jedes Quell- und Zielressourcenformat, das im Format Element von D3D11DDIARG_CREATERESOURCE angegeben ist, unterstützt den entsprechenden Konvertierungsvorgang.
- Die Quell- und Zielressourcen müssen dieselbe Anzahl von Proben und Qualitätsstufen aufweisen; mit Ausnahme von Ressourcen mit einer Stichprobe, die nur die gleiche Anzahl von Beispielen aufweisen dürfen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 8 |
mindestens unterstützte Server- | Windows Server 2012 |
Zielplattform- | Desktop |
Header- | d3d10umddi.h (include D3d10umddi.h) |