PFND3D10DDI_RESOURCECOPYREGION Rückruffunktion (d3d10umddi.h)
Die ResourceCopyRegion-Funktion kopiert einen Quellunterressourcenbereich an einen Speicherort in einer Zielunterressource.
Syntax
PFND3D10DDI_RESOURCECOPYREGION Pfnd3d10ddiResourcecopyregion;
void Pfnd3d10ddiResourcecopyregion(
D3D10DDI_HDEVICE unnamedParam1,
D3D10DDI_HRESOURCE unnamedParam2,
UINT unnamedParam3,
UINT unnamedParam4,
UINT unnamedParam5,
UINT unnamedParam6,
D3D10DDI_HRESOURCE unnamedParam7,
UINT unnamedParam8,
const D3D10_DDI_BOX *unnamedParam9
)
{...}
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>=rechte, obere>=untereoder front>=zurück, dann wird pSrcBox- als leer betrachtet. und ResourceCopyRegion- dürfen keinen Kopiervorgang ausführen.
Rückgabewert
Nichts
Bemerkungen
Der Treiber kann die pfnSetErrorCb Rückruffunktion verwenden, um einen Fehlercode festzulegen.
Die Microsoft Direct3D-Laufzeit ruft die ResourceCopyRegion-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 nicht 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 Vorgang ResourceCopyRegion beeinträchtigt (was normalerweise nicht geschehen sollte), kann der Treiber D3DDDIERR_DEVICEREMOVED zurückgeben.
Die Direct3D 10.1-Version von ResourceCopyRegion weist einen wesentlichen Funktionsunterschied zur Direct3D 10.0-Version im Hinblick auf das ResourceDimension Member von D3D10DDIARG_CREATERESOURCE für die Quell- und Zielressourcen auf, die in Aufrufen der CreateResource(D3D10)-Funktion des Treibers erstellt wurden. Für die Direct3D 10.0-Version von ResourceCopyRegion-muss das ResourceDimension Member von D3D10DDIARG_CREATERESOURCE für die Quell- und Zielressourcen übereinstimmen. Die Direct3D 10.1-Version von ResourceCopyRegion ermöglicht eine leichte Entspannung für das ResourceDimension- Member von D3D10DDIARG_CREATERESOURCE für die Quell- und Zielressourcen. Die Direct3D 10.1-Version von ResourceCopyRegion ermöglicht das Kopieren von Tex2D-Quellressourcen auf TexCube-Zielressourcen oder TexCube-Quellressourcen auf Tex2D-Zielressourcen. Darüber hinaus ist die Unterscheidung zwischen TexCube auf Ressourcenebene in Direct3D Version 10.1 nicht mehr vorhanden. Die Direct3D 10.1-Version von ResourceCopyRegion nur an, ob ein TexCube kopiert werden kann. In Direct3D Version 10.0 enthielten das Kopieren einer Ressource, die Überprüfung eines mehrfachen Renderziels usw. (d. h. verschiedene Vorgänge, für die der Ressourcentyp identisch sein musste) alle die Unterscheidung von TexCube, um in den Ressourcentyp einzuteilen. In Direct3D, Version 10.1, kann die Laufzeit nur Tex2D bestimmen.
In den folgenden Abschnitten werden Bedingungen für das Kopieren und Konvertieren aufgeführt:
Kopieren von
Zum Kopieren stellt ResourceCopyRegion- sicher, dass die Quell- und Zielressourcen über die CreateResource(D3D10)- funktion des Treibers mit den folgenden Bedingungen erstellt wurden:
- Die Zielressource wurde nicht mit dem im Usage Member der D3D10DDIARG_CREATERESOURCE-Struktur festgelegten D3D10_DDI_USAGE_IMMUTABLE-Werts erstellt.
- Wenn entweder die Quell- oder Zielressource das D3D10_DDI_BIND_DEPTH_STENCIL Bit im BindFlags Member der D3D10DDIARG_CREATERESOURCE festgelegt ist oder eine ressource mit mehreren Beispielen ist, ResourceCopyRegion überprüft, ob der pSrcBox Parameter NULL-ist, während die parameter DstX, DstYund 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 D3D10DDIARG_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- sicher, dass die Quell- und Zielressourcen über die CreateResource(D3D10) Funktion mit den folgenden Bedingungen erstellt wurden:
- Die Zielressource wurde nicht mit dem im Usage Member der D3D10DDIARG_CREATERESOURCE-Struktur festgelegten D3D10_DDI_USAGE_IMMUTABLE-Werts erstellt.
- Wenn entweder die Quell- oder Zielressource das D3D10_DDI_BIND_DEPTH_STENCIL Bit im BindFlags Member der D3D10DDIARG_CREATERESOURCE festgelegt ist oder eine ressource mit mehreren Beispielen ist, ResourceCopyRegion überprüft, ob der pSrcBox Parameter NULL-ist, während die parameter DstX, DstYund 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 D3D10DDIARG_CREATERESOURCE befindet sich in derselben typlosen Gruppe.
- Jedes Quell- und Zielressourcenformat, das im Format Element von D3D10DDIARG_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- | Verfügbar in Windows Vista und höheren Versionen der Windows-Betriebssysteme. |
Zielplattform- | Desktop |
Header- | d3d10umddi.h (include D3d10umddi.h) |