PFND3D10DDI_RESOURCECOPY Rückruffunktion (d3d10umddi.h)
Die ResourceCopy--Funktion kopiert eine gesamte Quellressource in eine Zielressource.
Syntax
PFND3D10DDI_RESOURCECOPY Pfnd3d10ddiResourcecopy;
void Pfnd3d10ddiResourcecopy(
D3D10DDI_HDEVICE unnamedParam1,
D3D10DDI_HRESOURCE unnamedParam2,
D3D10DDI_HRESOURCE unnamedParam3
)
{...}
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
hSrcResource [in]
Ein Handle für die Quellressource, aus der kopiert werden soll.
Rückgabewert
Nichts
Bemerkungen
Der Treiber kann die pfnSetErrorCb Rückruffunktion verwenden, um einen Fehlercode festzulegen.
Die Microsoft Direct3D-Laufzeit ruft die ResourceCopy-Funktion des Benutzermodus auf, um den Treiber zu informieren, von der angegebenen Quellressource in die angegebene Zielressource zu kopieren. Die Quell- und Zielressourcen können nicht dieselbe Ressource sein. Sowohl Quell- als auch Zielressourcen müssen derselbe Ressourcentyp sein und dieselben Dimensionen aufweisen. Die Formattypen (DXGI_FORMAT-Typ-Werte) beider Ressourcen müssen sich gegenseitig umwandeln können. 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 ResourceCopy beeinträchtigt (was normalerweise nicht geschehen sollte), kann der Treiber D3DDDIERR_DEVICEREMOVED zurückgeben.
Die Direct3D 10.1-Version von ResourceCopy 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 ResourceCopymuss das ResourceDimension Member von D3D10DDIARG_CREATERESOURCE für die Quell- und Zielressourcen übereinstimmen. Die Direct3D 10.1-Version von ResourceCopy 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 ResourceCopy 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 ResourceCopy 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 ResourceCopy 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.
- Die Quell- und Zielressourcen wurden mit demselben Ressourcentyp und derselben Dimensionalität (Puffer, 1D-Textur usw.) erstellt, indem sie denselben Wert im ResourceDimension Member von D3D10DDIARG_CREATERESOURCE festlegen.
- Die Quell- und Zielressourcen sind nicht Teil derselben Ressource.
- 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 ResourceCopy- 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.
- Die Quell- und Zielressourcen wurden mit demselben Ressourcentyp (Puffer, 1D-Textur usw.) erstellt, indem sie denselben Wert im ResourceDimension Member von D3D10DDIARG_CREATERESOURCE festlegen.
- Die Dimensionen der Quell- und Zielressourcen stimmen für die Konvertierung überein.
- Die Quell- und Zielressourcen sind nicht Teil derselben Ressource.
- Jedes Quell- und Zielressourcenformat, das im Format Element von D3D10DDIARG_CREATERESOURCE angegeben ist, unterstützt den entsprechenden Konvertierungsvorgang. Bei komprimierten Ressourcen mit Ippblock werden alle Dimensionen überprüft, um eine Leistung von zwei zu sein.
- 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) |