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í
| Name | Description |
|---|---|
| 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 přiřadí jako zadní vyrovnávací paměť.
- Atributy
Výjimky
D3DImage Nebylo uzamčeno voláním Lock() nebo TryLock(Duration) metodami.
backBufferType není platný D3DResourceType.
Parametry backBuffer vytváření nesplňují požadavky pro backBufferType-nebo-Zařízení backBuffer není platné.
Příklady
Následující příklad kódu ukazuje, jak volat metodu SetBackBuffer pro přiřazení povrchu Direct3D. Další informace naleznete v tématu Návod: Hostování obsahu Direct3D9 v 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
SetBackBuffer Voláním metody přiřaďte plochu Direct3D k zadní vyrovnávací paměti.
Note
Výkon závisí výrazně na nastavení povrchu Direct3D. Další informace naleznete v tématu Aspekty výkonu pro Direct3D9 a WPF Interoperability.
SetBackBuffer(D3DResourceType, IntPtr) Volání přetížení je stejné jako volání SetBackBuffer(D3DResourceType, IntPtr, Boolean) přetížení s parametrem enableSoftwareFallback nastaveným na false. Při volání SetBackBuffer(D3DResourceType, IntPtr) nebo volání SetBackBuffer(D3DResourceType, IntPtr, Boolean) s enableSoftwareFallback parametrem nastaveným na false, vykreslovací systém uvolní svůj odkaz na zadní vyrovnávací paměť, když front vyrovnávací paměť přestane být k dispozici a nic se nezobrazí. Jakmile bude front buffer opět k dispozici, vyvolá vykreslovací systém IsFrontBufferAvailableChanged událost, která oznámí aplikaci WPF. Pro událost IsFrontBufferAvailableChanged můžete vytvořit obslužnou rutinu, která restartuje vykreslování s platným povrchem Direct3D. Chcete-li restartovat vykreslování, musíte volat SetBackBuffer.
Následující seznam obsahuje požadovaná nastavení vyrovnávací paměti pro typ IDirect3DSurface9 .
D3DFMT_A8R8G8B8neboD3DFMT_X8R8G8B8D3DUSAGE_RENDERTARGETD3DPOOL_DEFAULT
Vícevzorkování je povoleno pouze na IDirect3DSurface9Ex povrchu.
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 přiřadí jako zadní vyrovnávací paměť.
- enableSoftwareFallback
- Boolean
truek návratu na vykreslování softwaru; v opačném případě . false
- Atributy
Poznámky
Při volání SetBackBuffer(D3DResourceType, IntPtr) přetížení nebo volání SetBackBuffer(D3DResourceType, IntPtr, Boolean) přetížení s enableSoftwareFallback parametrem 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 nic se nezobrazí. Jakmile bude front buffer opět k dispozici, vyvolá vykreslovací systém IsFrontBufferAvailableChanged událost, která oznámí aplikaci WPF. Pro událost IsFrontBufferAvailableChanged můžete vytvořit obslužnou rutinu, která restartuje vykreslování s platným povrchem Direct3D. Chcete-li restartovat vykreslování, musíte volat SetBackBuffer.
Když voláte SetBackBuffer(D3DResourceType, IntPtr, Boolean) s parametrem nastaveným enableSoftwareFallback na true, systém vykreslování si zachová svůj odkaz na zadní vyrovnávací paměť, když front vyrovnávací paměť přestane být k dispozici, takže není nutné volat SetBackBuffer , když je front vyrovnávací paměť opět k dispozici. V situacích, kdy zařízení uživatele přestane být dostupné. Pokud k tomu dojde, zavolejte odkaz SetBackBuffer WPF na zadní vyrovnávací paměť. Pokud potřebujete resetovat zařízení, zavolejte SetBackBuffer s nastaveným backBuffer nastavením nulla pak znovu zavolat SetBackBuffer s nastaveným backBuffer na platnou plochu Direct3D.
Následující seznam obsahuje požadovaná nastavení vyrovnávací paměti pro typ IDirect3DSurface9 .
D3DFMT_A8R8G8B8neboD3DFMT_X8R8G8B8D3DUSAGE_RENDERTARGETD3DPOOL_DEFAULT
Vícevzorkování je povoleno pouze na IDirect3DSurface9Ex povrchu.