D3DImage.SetBackBuffer Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Přiřadí plochu Direct3D jako zdroj zadní vyrovnávací paměti.
Přetížení
SetBackBuffer(D3DResourceType, IntPtr) |
Přiřadí plochu Direct3D jako zdroj zadní vyrovnávací paměti. |
SetBackBuffer(D3DResourceType, IntPtr, Boolean) |
Přiřadí plochu Direct3D jako zdroj zadní vyrovnávací paměti. |
SetBackBuffer(D3DResourceType, IntPtr)
Přiřadí plochu Direct3D jako zdroj zadní vyrovnávací paměti.
public:
void SetBackBuffer(System::Windows::Interop::D3DResourceType backBufferType, IntPtr backBuffer);
[System.Security.SecurityCritical]
public void SetBackBuffer (System.Windows.Interop.D3DResourceType backBufferType, IntPtr backBuffer);
public void SetBackBuffer (System.Windows.Interop.D3DResourceType backBufferType, IntPtr backBuffer);
[<System.Security.SecurityCritical>]
member this.SetBackBuffer : System.Windows.Interop.D3DResourceType * nativeint -> unit
member this.SetBackBuffer : System.Windows.Interop.D3DResourceType * nativeint -> unit
Public Sub SetBackBuffer (backBufferType As D3DResourceType, backBuffer As IntPtr)
Parametry
- backBufferType
- D3DResourceType
Typ povrchu Direct3D. Musí být platný D3DResourceType.
- backBuffer
-
IntPtr
nativeint
Plocha Direct3D, která se má přiřadit jako zadní vyrovnávací paměť.
- Atributy
Výjimky
Objekt D3DImage nebyl uzamčen voláním Lock() metody nebo TryLock(Duration) .
backBufferType
není platný D3DResourceType.
Parametry vytváření pro backBuffer
nesplňují požadavky pro backBufferType
-nebo-The backBuffer
zařízení není platné.
Příklady
Následující příklad kódu ukazuje, jak volat metodu SetBackBuffer pro přiřazení povrchu Direct3D. Další informace najdete v tématu Návod: Hostování obsahu Direct3D9 ve WPF.
d3dimg.Lock();
// Repeatedly calling SetBackBuffer with the same IntPtr is
// a no-op. There is no performance penalty.
d3dimg.SetBackBuffer(D3DResourceType.IDirect3DSurface9, pSurface);
HRESULT.Check(Render());
d3dimg.AddDirtyRect(new Int32Rect(0, 0, d3dimg.PixelWidth, d3dimg.PixelHeight));
d3dimg.Unlock();
Poznámky
Voláním SetBackBuffer metody přiřaďte plochu Direct3D zadní vyrovnávací paměti.
Poznámka
Výkon do značné míry závisí na nastavení povrchu Direct3D. Další informace najdete v tématu Důležité informace o výkonu rozhraní Direct3D9 a interoperability WPF.
SetBackBuffer(D3DResourceType, IntPtr) Volání přetížení je stejné jako volání SetBackBuffer(D3DResourceType, IntPtr, Boolean) přetížení s parametrem nastaveným enableSoftwareFallback
na false
. Při volání SetBackBuffer(D3DResourceType, IntPtr) nebo volání SetBackBuffer(D3DResourceType, IntPtr, Boolean) s parametrem enableSoftwareFallback
nastaveným na false
, vykreslovací systém uvolní svůj odkaz na zadní vyrovnávací paměť, když se přední vyrovnávací paměť stane nedostupnou a nezobrazí se nic. Jakmile je přední vyrovnávací paměť opět k dispozici, vykreslovací systém vyvolá IsFrontBufferAvailableChanged událost, která oznámí aplikaci WPF. Můžete vytvořit obslužnou rutinu IsFrontBufferAvailableChanged události, aby se znovu restartovala vykreslování s platnou plochou Direct3D. Pokud chcete znovu spustit vykreslování, musíte volat SetBackBuffer.
V následujícím seznamu jsou uvedena požadovaná nastavení zpětné vyrovnávací paměti pro typ IDirect3DSurface9
.
D3DFMT_A8R8G8B8
neboD3DFMT_X8R8G8B8
D3DUSAGE_RENDERTARGET
D3DPOOL_DEFAULT
Vícenásobné převzorkování je povoleno pouze na IDirect3DSurface9Ex
površích.
Viz také
Platí pro
SetBackBuffer(D3DResourceType, IntPtr, Boolean)
Přiřadí plochu Direct3D jako zdroj zadní vyrovnávací paměti.
public:
void SetBackBuffer(System::Windows::Interop::D3DResourceType backBufferType, IntPtr backBuffer, bool enableSoftwareFallback);
[System.Security.SecurityCritical]
public void SetBackBuffer (System.Windows.Interop.D3DResourceType backBufferType, IntPtr backBuffer, bool enableSoftwareFallback);
public void SetBackBuffer (System.Windows.Interop.D3DResourceType backBufferType, IntPtr backBuffer, bool enableSoftwareFallback);
[<System.Security.SecurityCritical>]
member this.SetBackBuffer : System.Windows.Interop.D3DResourceType * nativeint * bool -> unit
member this.SetBackBuffer : System.Windows.Interop.D3DResourceType * nativeint * bool -> unit
Public Sub SetBackBuffer (backBufferType As D3DResourceType, backBuffer As IntPtr, enableSoftwareFallback As Boolean)
Parametry
- backBufferType
- D3DResourceType
Typ povrchu Direct3D. Musí být platný D3DResourceType.
- backBuffer
-
IntPtr
nativeint
Plocha Direct3D, která se má přiřadit jako zadní vyrovnávací paměť.
- enableSoftwareFallback
- Boolean
true
vrátit se k vykreslování softwaru; v opačném případě . false
- Atributy
Poznámky
Když zavoláte SetBackBuffer(D3DResourceType, IntPtr) přetížení nebo zavoláte SetBackBuffer(D3DResourceType, IntPtr, Boolean) přetížení s parametrem enableSoftwareFallback
nastaveným na false
, vykreslovací systém uvolní svůj odkaz na zadní vyrovnávací paměť, když se přední vyrovnávací paměť stane nedostupnou a nezobrazí se nic. Jakmile je přední vyrovnávací paměť opět k dispozici, vykreslovací systém vyvolá IsFrontBufferAvailableChanged událost, která oznámí aplikaci WPF. Můžete vytvořit obslužnou rutinu IsFrontBufferAvailableChanged události, aby se znovu restartovala vykreslování s platnou plochou Direct3D. Pokud chcete znovu spustit vykreslování, musíte volat SetBackBuffer.
Při volání SetBackBuffer(D3DResourceType, IntPtr, Boolean) s parametrem enableSoftwareFallback
nastaveným na true
, systém vykreslování zachová svůj odkaz na zadní vyrovnávací paměť, když se přední vyrovnávací paměť stane nedostupnou, takže není nutné volat SetBackBuffer , když je přední vyrovnávací paměť znovu k dispozici. Můžou nastat situace, kdy se zařízení uživatele stane nedostupným. Když k tomu dojde, zavolejte SetBackBuffer vydání WPF odkaz na zadní vyrovnávací paměť. Pokud potřebujete zařízení obnovit do továrního nastavení, zavolejte SetBackBuffer s backBuffer
nastavením na null
a pak znovu zavolejte SetBackBuffer s backBuffer
nastaveným na platnou plochu Direct3D.
V následujícím seznamu jsou uvedena požadovaná nastavení zpětné vyrovnávací paměti pro typ IDirect3DSurface9
.
D3DFMT_A8R8G8B8
neboD3DFMT_X8R8G8B8
D3DUSAGE_RENDERTARGET
D3DPOOL_DEFAULT
Vícenásobné převzorkování je povoleno pouze na IDirect3DSurface9Ex
površích.