Freigeben über


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.

Hinweis Die folgenden Abschnitte gelten nur für Microsoft Direct3D Version 10.1 und höher (d. h. Windows Vista mit Service Pack 1 (SP1) und höher und Windows Server 2008 und höher).
 
Der Treiber kann eine ResourceCopyRegion--Funktion implementieren, die eine Switch--Anweisung zum Verarbeiten des Kopierens und Konvertierens enthalten kann. Das heißt, der Treiber kann ein ResourceCopyRegion- implementieren und das pfnResourceConvertRegion- Mitglied der D3D10_1DDI_DEVICEFUNCS Struktur festlegen, um auf ResourceCopyRegion- zusammen mit dem pfnResourceCopyRegion Mitglied von D3D10_1DDI_DEVICEFUNCS zu verweisen. Um die Leistung zu verbessern, kann der Treiber jedoch separate ResourceCopyRegion- und ResourceConvertRegion--Funktionen implementieren.

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.
ResourceCopyRegion- stellt nicht sicher, dass das Quellfeld, das durch die Zieloffsets versetzt wird, vollständig auf die Ressource passt. ResourceCopyRegion stellt außerdem nicht sicher, dass derzeit keine Unterressourcen zugeordnet sind.

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.
ResourceCopyRegion- stellt nicht sicher, dass derzeit keine Unterressourcen zugeordnet sind. ResourceCopyRegion- stellt auch nicht sicher, dass das Quellfeld, das durch die Zielversatzsätze versetzt wird, vollständig auf die Ressource passt.

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)

Siehe auch

D3D10DDI_DEVICEFUNCS

D3D10_DDI_BOX

pfnSetErrorCb