PFND3DDDI_SETDISPLAYPRIVATEDRIVERFORMATCB Rückruffunktion (d3dumddi.h)
Die PfnSetDisplayPrivateDriverFormatCb-Funktion ändert das Private-Format-Attribut einer Videoquelle.
Syntax
PFND3DDDI_SETDISPLAYPRIVATEDRIVERFORMATCB Pfnd3dddiSetdisplayprivatedriverformatcb;
HRESULT Pfnd3dddiSetdisplayprivatedriverformatcb(
HANDLE hDevice,
const D3DDDICB_SETDISPLAYPRIVATEDRIVERFORMAT *unnamedParam2
)
{...}
Parameter
hDevice
Ein Handle für das Anzeigegerät (Grafikkontext).
unnamedParam2
pData [in]
Ein Zeiger auf eine D3DDDICB_SETDISPLAYPRIVATEDRIVERFORMAT-Struktur , die beschreibt, wie eine Videoquelle formatiert wird.
Rückgabewert
pfnSetDisplayPrivateDriverFormatCb gibt einen der folgenden Werte zurück:
Rückgabecode | Beschreibung |
---|---|
S_OK | Die vorliegende Videoquelle wurde erfolgreich geändert. |
E_INVALIDARG | Parameter wurden überprüft und als falsch ermittelt. |
E_FAIL | pfnSetDisplayPrivateDriverFormatCb konnte das Private-Format-Attribut der vorhandenen Videoquelle nicht ändern. |
Diese Funktion kann auch andere HRESULT-Werte zurückgeben.
Hinweise
Das Ändern des Private-Format-Attributs einer Videoquelle ist nützlich, um eine DirectX-Vollbildanwendung unterzubringen, die ihre Flipping-Änderung erstellt, wenn die freigegebene primäre GDI-Oberfläche ein nicht optimales privates Format für die DirectX-Vollbildanwendung aufweist. Angenommen, der Display-Miniporttreiber erstellt immer die freigegebene primäre Oberfläche von GDI als un-swizzled. Aus Leistungsgründen erfordert der Benutzermodus-Anzeigetreiber jedoch, dass alle Oberflächen in einer Vollbild-Flipping-Kette geschwommen sind. Der Benutzermodusanzeigetreiber könnte dann die Rückpuffer als geschwendet erstellen und pfnSetDisplayPrivateDriverFormatCb aufrufen, um die freigegebene primäre GDI-Oberfläche in swizzled zu ändern.
Wenn der Aufruf von pfnSetDisplayPrivateDriverFormatCb fehlschlägt , sollte der Anzeigetreiber im Benutzermodus fortgesetzt werden, ohne das Private-Format-Attribut der vorhandenen Videoquelle zu ändern. Im vorherigen Beispiel kann der Treiber die freigegebene primäre Instanz entweder als nicht geschwengt belassen und die Backpuffer geschwemmt haben, oder der Treiber kann die Rückpuffer in das nicht geschwenkte Format ändern.
Wenn der Benutzermodusanzeigetreiber den D3DDDIERR_INCOMPATIBLEPRIVATEFORMAT Fehler von einem Aufruf der PfnSetDisplayModeCb-Funktion empfängt , kann der Treiber eine der folgenden Aktionen ausführen:
- Ändern Sie das Private-Format-Attribut der primären Oberfläche, und rufen Sie pfnSetDisplayModeCb erneut auf.
- Rufen Sie pfnSetDisplayPrivateDriverFormatCb auf, und versuchen Sie, das Private-Format-Attribut der vorhandenen Videoquelle zu ändern. Der Treiber kann dann pfnSetDisplayModeCb erneut aufrufen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar in Windows Vista und höheren Versionen der Windows-Betriebssysteme. |
Zielplattform | Desktop |
Kopfzeile | d3dumddi.h (include D3dumddi.h) |