D3DImage.SetBackBuffer Metoda

Definice

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_A8R8G8B8 nebo D3DFMT_X8R8G8B8

  • D3DUSAGE_RENDERTARGET

  • D3DPOOL_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_A8R8G8B8 nebo D3DFMT_X8R8G8B8

  • D3DUSAGE_RENDERTARGET

  • D3DPOOL_DEFAULT

Vícevzorkování je povoleno pouze na IDirect3DSurface9Ex povrchu.

Platí pro