PFND3D11DDI_SETRENDERTARGETS Rückruffunktion (d3d10umddi.h)
Die SetRenderTargets(D3D11) Funktion legt Renderzieloberflächen fest.
Syntax
PFND3D11DDI_SETRENDERTARGETS Pfnd3d11ddiSetrendertargets;
void Pfnd3d11ddiSetrendertargets(
[in] D3D10DDI_HDEVICE unnamedParam1,
[in] const D3D10DDI_HRENDERTARGETVIEW *unnamedParam2,
[in] UINT NumRTVs,
[in] UINT ClearSlots,
[in] D3D10DDI_HDEPTHSTENCILVIEW unnamedParam5,
[in] const D3D11DDI_HUNORDEREDACCESSVIEW *unnamedParam6,
[in] const UINT *unnamedParam7,
UINT UAVStartSlot,
[in] UINT NumUAVs,
[in] UINT UAVRangeStart,
[in] UINT UAVRangeSize
)
{...}
Parameter
[in] unnamedParam1
hDevice: Ein Handle für das Anzeigegerät (Grafikkontext).
[in] unnamedParam2
phRenderTargetView: Ein Array von Handles für die festzulegenden RTV-Objekte (Renderzielansicht). Beachten Sie, dass einige Handlewerte NULL-sein können.
[in] NumRTVs
Die Anzahl der Elemente im Array, die in phRenderTargetView für die festzulegenden RTVs bereitgestellt werden.
[in] ClearSlots
Die Anzahl der RTV-Objekte, die nicht gebunden werden sollen; d. h. diese Renderzielansichtsobjekte, die zuvor gebunden waren, aber nicht mehr gebunden werden müssen.
[in] unnamedParam5
hDepthStencilView-: Ein Handle für den festzulegenden Tiefenschablonenpuffer.
[in] unnamedParam6
phUnorderedAccessView: Ein Array von Handles für die festzulegenden ungeordneten Zugriffsansichtsobjekte (UAV).
[in] unnamedParam7
pUAVInitialCounts: Ein Array von Anfüge- und Pufferoffsets. Dieser Parameter ist nur für UAVs des phUnorderedAccessView- Arrays relevant, das beim Erstellen der UAV mit D3D11_DDI_BUFFER_UAV_FLAG_APPEND oder D3D11_DDI_BUFFER_UAV_FLAG_COUNTER im Flags-Element Member der D3D11DDIARG_BUFFER_UNORDEREDACCESSVIEW Struktur erstellt wurde; andernfalls wird sie ignoriert. Wenn ein Element in diesem Array auf -1 festgelegt ist, sollte der aktuelle Offset für das Anfügen und Verwenden des Puffers beibehalten werden. Jeder andere Wert bewirkt, dass der Treiber den ausgeblendeten Zähler für das Anfügen und Verwenden des Puffers von UAV festgelegt.
UAVStartSlot
Index des ersten zu bindenden UAV. UAVStartSlot- muss mindestens so groß sein wie der NumRTVs Parameter.
Anmerkung
Nur eine freigegebene Gruppe von Bindungspunkten ist für RTVs und UAVs vorhanden. RTVs sind zuerst gebunden, gefolgt von UAVs.
[in] NumUAVs
Die Anzahl der zu bindenden UAVs.
[in] UAVRangeStart
Die erste UAV in der Gruppe aller aktualisierten UAVs (die NULL- Bindungen enthält).
[in] UAVRangeSize
Die Anzahl der UAVs in der Gruppe aller aktualisierten UAVs (einschließlich NULL- Bindungen).
Rückgabewert
Nichts
Bemerkungen
Ressourcendeskriptoren wie RTVs und UAVs müssen gebunden sein (Eingabeplätze), bevor Shader auf sie zugreifen können, um lese- oder schreibgeschützt zu werden.
Die folgende Abbildung zeigt ein Beispiel mit fünf Ressourcen.
Im obigen Beispiel:
- NumRTVs = 2
- UAVStartSlot = 2
- NumUAVs = 3
NumUAVs und UAVStartSlot angeben, welcher Bereich im UAVs-Array Änderungen im Verhältnis zum zuvor gebundenen Zustand enthält. Beachten Sie, dass die Punkte im Bereich unverändertsein können.
Die UAVRangeStart- und UAVRangeSize Parameter sind ein Komfort, der die Spanne der tatsächlich geänderten geändert angesichts der Tatsache, dass direct3D DDI immer alles bindet (einschließlich des, was nicht geändert wurde). Die D3D11-Laufzeit formuliert sie im Auftrag der Anwendung als zusätzliche Informationen für Treiberautoren als Hinweise zur möglichen Optimierung. In der Regel ruft die D3D11-Laufzeit diese Funktion mit UAVRangeStart- und UAVRangeSize Werte auf, um den gesamten Bereich anzugeben. Verwenden Des obigen Beispiels:
- Um den gesamten Bereich auszuwählen (es wurde keine Änderung angenommen), UAVRangeStart = 2 und UAVRangeSize = 3.
- Um anzugeben, dass sich nur die erste UAV geändert haben könnte, UAVRangeStart = 2 und UAVRangeSize = 1.
Der Treiber kann die pfnSetErrorCb Rückruffunktion verwenden, um einen Fehlercode festzulegen.
Der Treiber sollte keinen Fehler haben, mit Ausnahme von D3DDDIERR_DEVICEREMOVED. Wenn der Treiber daher einen Fehler außer D3DDDIERR_DEVICEREMOVED übergibt, bestimmt die Microsoft Direct3D-Laufzeit in einem Aufruf der pfnSetErrorCb-Funktion, 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 von SetRenderTargets beeinträchtigt (was normalerweise nicht geschehen sollte), kann der Treiber D3DDDIERR_DEVICEREMOVED zurückgeben.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | SetRenderTargets(D3D11) wird ab dem Windows 7-Betriebssystem unterstützt. |
Zielplattform- | Desktop |
Header- | d3d10umddi.h (include D3d10umddi.h) |