PFND3D10DDI_SETPREDICATION Rückruffunktion (d3d10umddi.h)

Die SetPredication-Funktion gibt an, ob die folgenden Rendering- und Ressourcenbearbeitungsbefehle tatsächlich ausgeführt werden.

Syntax

PFND3D10DDI_SETPREDICATION Pfnd3d10ddiSetpredication;

void Pfnd3d10ddiSetpredication(
  D3D10DDI_HDEVICE unnamedParam1,
  D3D10DDI_HQUERY unnamedParam2,
  BOOL unnamedParam3
)
{...}

Parameter

unnamedParam1

hDevice [in]

Ein Handle für das Anzeigegerät (Grafikkontext).

unnamedParam2

hQuery [in]

Ein Handle für das Abfrageobjekt, das als Prädikat festgelegt werden soll. Wenn Sie hQuery auf NULL festlegen, wird "keine Prädication" angegeben. Wenn hQuery auf NULL festgelegt ist, ignoriert der Treiber den Wert im Parameter PredicateValue . Der Treiber sollte jedoch den Prädikatwert für nachfolgende Anforderungen für den Wert speichern.

unnamedParam3

PrädikatWert [in]

Ein boolescher Wert, der mit Abfragedaten verglichen werden soll. Wenn die Abfragedaten dem Prädikatwert entsprechen, werden die folgenden Rendering- und Ressourcenbearbeitungsbefehle nicht ausgeführt.

Rückgabewert

Keine

Bemerkungen

Der Treiber kann die Rückruffunktion pfnSetErrorCb verwenden, um einen Fehlercode festzulegen.

Einige Prädikate sind nur Hinweise; Daher verhindern sie möglicherweise nicht tatsächlich die Ausführung von Vorgängen. Die Microsoft Direct3D-Runtime ruft in erster Linie SetPredication auf, damit Anwendungen Grafikbefehle ausgeben können, ohne den Leistungstreffer des Drehens zu nehmen und darauf zu warten, dass ein Aufruf der QueryGetData-Funktion zurückgegeben wird. Daher kann eine Prädication auch dann auftreten, wenn QueryGetData S_FALSE zurückgibt. Anders ausgedrückt: Eine Anwendung kann die Prädication auch als Fallback verwenden, wenn QueryGetData möglicherweise S_FALSE zurückgibt. Wenn QueryGetData S_OK zurückgibt, kann die Anwendung das manuelle Aufrufen der Grafikbefehle mit ihrer eigenen Anwendungslogik überspringen.

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 SetPredication beeinträchtigt hat (was normalerweise nicht geschehen sollte), kann der Treiber D3DDDIERR_DEVICEREMOVED zurückgeben.

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)

Weitere Informationen

D3D10DDI_DEVICEFUNCS

pfnSetErrorCb