ID3D11DeviceContext::SetPredication-Methode (d3d11.h)
Legen Sie ein Rendering-Prädikat fest.
Syntax
void SetPredication(
[in, optional] ID3D11Predicate *pPredicate,
[in] BOOL PredicateValue
);
Parameter
[in, optional] pPredicate
Typ: ID3D11Predicate*
Ein Zeiger auf die ID3D11Predicate-Schnittstelle , die das Renderingprädikat darstellt. Ein NULL-Wert gibt "keine" Prädication an. In diesem Fall ist der Wert von PredicateValue irrelevant, wird aber für ID3D11DeviceContext::GetPredication beibehalten.
[in] PredicateValue
Typ: BOOL
Wenn TRUE, wird das Rendern davon beeinflusst, wann die Bedingungen des Prädikats erfüllt sind. Wenn FALSE, wird das Rendering beeinträchtigt, wenn die Bedingungen nicht erfüllt sind.
Rückgabewert
Keine
Bemerkungen
Das Prädikat muss sich im Zustand "ausgestellt" oder "signalisiert" befinden, um für die Prädication verwendet zu werden. Während das Prädikat für die Prädication festgelegt ist, sind Aufrufe von ID3D11DeviceContext::Begin und ID3D11DeviceContext::End ungültig.
Verwenden Sie diese Methode, um anzugeben, dass nachfolgende Rendering- und Ressourcenbearbeitungsbefehle nicht tatsächlich ausgeführt werden, wenn die resultierenden Prädikatdaten des Prädikats gleich dem PredicateValue sind. Einige Prädikate sind jedoch nur Hinweise, sodass sie möglicherweise nicht wirklich verhindern, dass Vorgänge ausgeführt werden.
Der primäre Nutzen der Prädication besteht darin, einer Anwendung das Ausgeben von Befehlen zum Rendern und der Ressourcenbearbeitung zu ermöglichen, ohne die Leistung des Drehens zu beeinträchtigen und auf die Rückgabe von ID3D11DeviceContext::GetData zu warten. Die Prädication kann also auftreten, während ID3D11DeviceContext::GetDataS_FALSE zurückgibt. Eine andere Möglichkeit, es sich vorzudenken: Eine Anwendung kann auch die Prädication als Fallback verwenden, wenn es möglich ist, dass ID3D11DeviceContext::GetDataS_FALSE zurückgibt. Wenn ID3D11DeviceContext::GetDataS_OK zurückgibt, kann die Anwendung das manuelle Aufrufen der Rendering- und Ressourcenbearbeitungsbefehle mit einer eigenen Anwendungslogik überspringen.
Zu den Rendering- und Ressourcenbearbeitungsbefehlen für Direct3D 11 gehören die Folgenden Vorgänge Zeichnen, Senden, Kopieren, Aktualisieren, Löschen, Generieren und Auflösen.
- Zeichnen
- DrawAuto
- DrawIndexed
- DrawIndexedInstanced
- DrawIndexedInstancedIndirect
- DrawInstanced
- DrawInstancedIndirect
- Dispatch
- DispatchIndirect
- CopyResource
- CopyStructureCount
- CopySubresourceRegion
- CopySubresourceRegion1
- CopyTiles
- CopyTileMappings
- UpdateSubresource
- UpdateSubresource1
- UpdateTiles
- UpdateTileMappings
- ClearRenderTargetView
- ClearUnorderedAccessViewFloat
- ClearUnorderedAccessViewUint
- Clearview
- ClearDepthStencilView
- GenerateMips
- ResolveSubresource
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Windows |
Kopfzeile | d3d11.h |
Bibliothek | D3D11.lib |