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
Keine
Bemerkungen
Der Treiber kann die Rückruffunktion pfnSetErrorCb verwenden, um einen Fehlercode festzulegen.
Die Microsoft Direct3D-Runtime ruft die ResourceCopy-Funktion des Benutzermodusanzeigetreibers auf, um den Treiber zu informieren, von der angegebenen Quellressource in die angegebene Zielressource zu kopieren. Quell- und Zielressourcen können nicht dieselbe Ressource sein. Sowohl Quell- als auch Zielressourcen müssen derselbe Ressourcentyp sein und die gleichen Dimensionen aufweisen. Die Formattypen (DXGI_FORMAT werte) beider Ressourcen müssen ineinander umgewandelt werden können. Die Quelle und die Zielressource dürfen derzeit nicht zugeordnet werden. Darüber hinaus beschränken die Ressourcenerstellungsflags, ob die Ressource am Kopiervorgang teilnehmen kann.
Für den Treiber sollte kein Fehler auftreten, mit Ausnahme von D3DDDIERR_DEVICEREMOVED. Wenn der Treiber bei einem Aufruf der PfnSetErrorCb-Funktion einen Fehler mit Ausnahme von D3DDDIERR_DEVICEREMOVED übergibt, ermittelt die Direct3D-Runtime daher, dass der Fehler kritisch ist. Selbst wenn das Gerät entfernt wurde, muss der Treiber nicht D3DDDIERR_DEVICEREMOVED zurückgeben. Wenn die Geräteentfernung jedoch den Betrieb von ResourceCopy beeinträchtigt hat (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 in Bezug auf das ResourceDimension-Element 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 ResourceCopy muss das ResourceDimension-Mitglied 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-Element 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 weg. Die Direct3D 10.1-Version von ResourceCopy gibt nur an, ob ein TexCube kopiert werden kann. In Direct3D, Version 10.0, beinhalteten das Kopieren einer Ressource, die Validierung eines mehrfachen Renderziels usw. (d. h. verschiedene Vorgänge, bei denen der Ressourcentyp identisch sein musste) alle die Unterscheidung von TexCube, um den Ressourcentyp zu berücksichtigen. In Direct3D Version 10.1 kann die Runtime nur Tex2D bestimmen.
In den folgenden Abschnitten werden die Bedingungen für das Kopieren und Konvertieren aufgeführt:
Wird kopiert
Beim 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 D3D10_DDI_USAGE_IMMUTABLE-Wert erstellt, der im Member Usage der D3D10DDIARG_CREATERESOURCE-Struktur festgelegt ist.
- Die Quell- und Zielressourcen wurden mit demselben Ressourcentyp und derselben Dimensionalität (Puffer, eindimensionale (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 Element Format von D3D10DDIARG_CREATERESOURCE angegeben ist, befindet sich in derselben typlosen Gruppe.
- Die Quell- und Zielressourcen müssen die gleiche Anzahl von Stichproben und Qualitätsstufen aufweisen. mit Ausnahme von Ressourcen mit einzeler Stichprobe, die nur die gleiche Anzahl von Stichproben aufweisen dürfen.
Konvertieren
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 D3D10_DDI_USAGE_IMMUTABLE-Wert erstellt, der im Member Usage der D3D10DDIARG_CREATERESOURCE-Struktur festgelegt ist.
- Die Quell- und Zielressourcen wurden mit demselben Ressourcentyp (Puffer, eindimensionale (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 Element Format von D3D10DDIARG_CREATERESOURCE angegeben wird, unterstützt den entsprechenden Konvertierungsvorgang. Für komprimierte Ressourcen mit Mipped-Block werden alle Dimensionen auf eine Leistung von zwei überprüft.
- Die Quell- und Zielressourcen müssen die gleiche Anzahl von Stichproben und Qualitätsstufen aufweisen. mit Ausnahme von Ressourcen mit einzeler Stichprobe, die nur die gleiche Anzahl von Stichproben aufweisen dürfen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar in Windows Vista und höheren Versionen der Windows-Betriebssysteme. |
Zielplattform | Desktop |
Kopfzeile | d3d10umddi.h (einschließlich D3d10umddi.h) |