Share via


D3DImage.SetBackBuffer Metode

Definisi

Menetapkan permukaan Direct3D sebagai sumber buffer belakang.

Overload

SetBackBuffer(D3DResourceType, IntPtr)

Menetapkan permukaan Direct3D sebagai sumber buffer belakang.

SetBackBuffer(D3DResourceType, IntPtr, Boolean)

Menetapkan permukaan Direct3D sebagai sumber buffer belakang.

SetBackBuffer(D3DResourceType, IntPtr)

Menetapkan permukaan Direct3D sebagai sumber buffer belakang.

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)

Parameter

backBufferType
D3DResourceType

Jenis permukaan Direct3D. Harus valid D3DResourceType.

backBuffer
IntPtr

nativeint

Permukaan Direct3D untuk ditetapkan sebagai buffer belakang.

Atribut

Pengecualian

D3DImage belum dikunci oleh panggilan ke Lock() metode atau TryLock(Duration) .

backBufferType tidak valid D3DResourceType.

Parameter pembuatan untuk backBuffer tidak memenuhi persyaratan untuk backBufferType-atau-Perangkat backBuffer tidak valid.

Contoh

Contoh kode berikut menunjukkan cara memanggil SetBackBuffer metode untuk menetapkan permukaan Direct3D. Untuk informasi selengkapnya, lihat Panduan: Hosting Konten Direct3D9 di 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();

Keterangan

SetBackBuffer Panggil metode untuk menetapkan permukaan Direct3D ke buffer belakang.

Catatan

Performa sangat tergantung pada pengaturan permukaan Direct3D. Untuk informasi selengkapnya, lihat Pertimbangan Performa untuk Interoperabilitas Direct3D9 dan WPF.

Memanggil SetBackBuffer(D3DResourceType, IntPtr) kelebihan beban identik dengan memanggil SetBackBuffer(D3DResourceType, IntPtr, Boolean) kelebihan beban dengan parameter yang enableSoftwareFallback diatur ke false. Saat Anda memanggil SetBackBuffer(D3DResourceType, IntPtr) atau memanggil SetBackBuffer(D3DResourceType, IntPtr, Boolean) dengan parameter yang enableSoftwareFallback diatur ke false, sistem penyajian merilis referensinya ke buffer belakang ketika buffer depan menjadi tidak tersedia dan tidak ada yang ditampilkan. Ketika buffer depan tersedia lagi, sistem penyajian IsFrontBufferAvailableChanged meningkatkan peristiwa untuk memberi tahu aplikasi WPF Anda. Anda dapat membuat penanganan aktivitas agar IsFrontBufferAvailableChanged peristiwa dapat memulai ulang penyajian lagi dengan permukaan Direct3D yang valid. Untuk memulai ulang penyajian, Anda harus memanggil SetBackBuffer.

Daftar berikut ini memperlihatkan pengaturan buffer kembali yang diperlukan untuk jenis tersebut IDirect3DSurface9 .

  • D3DFMT_A8R8G8B8 atau D3DFMT_X8R8G8B8

  • D3DUSAGE_RENDERTARGET

  • D3DPOOL_DEFAULT

Multisampling hanya diperbolehkan di IDirect3DSurface9Ex permukaan.

Lihat juga

Berlaku untuk

SetBackBuffer(D3DResourceType, IntPtr, Boolean)

Menetapkan permukaan Direct3D sebagai sumber buffer belakang.

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)

Parameter

backBufferType
D3DResourceType

Jenis permukaan Direct3D. Harus valid D3DResourceType.

backBuffer
IntPtr

nativeint

Permukaan Direct3D untuk ditetapkan sebagai buffer belakang.

enableSoftwareFallback
Boolean

true untuk kembali ke penyajian perangkat lunak; jika tidak, false.

Atribut

Keterangan

Ketika Anda memanggil SetBackBuffer(D3DResourceType, IntPtr) kelebihan beban atau memanggil SetBackBuffer(D3DResourceType, IntPtr, Boolean) kelebihan beban dengan parameter yang enableSoftwareFallback diatur ke false, sistem penyajian merilis referensinya ke buffer belakang ketika buffer depan menjadi tidak tersedia dan tidak ada yang ditampilkan. Ketika buffer depan tersedia lagi, sistem penyajian IsFrontBufferAvailableChanged meningkatkan peristiwa untuk memberi tahu aplikasi WPF Anda. Anda dapat membuat penanganan aktivitas agar IsFrontBufferAvailableChanged peristiwa dapat memulai ulang penyajian lagi dengan permukaan Direct3D yang valid. Untuk memulai ulang penyajian, Anda harus memanggil SetBackBuffer.

Ketika Anda memanggil SetBackBuffer(D3DResourceType, IntPtr, Boolean) dengan parameter yang enableSoftwareFallback diatur ke true, sistem penyajian mempertahankan referensinya ke buffer belakang ketika buffer depan menjadi tidak tersedia, sehingga tidak perlu memanggil SetBackBuffer ketika buffer depan tersedia lagi. Mungkin ada situasi di mana perangkat pengguna menjadi tidak tersedia. Ketika itu terjadi, panggil SetBackBuffer untuk merilis referensi WPF ke buffer belakang. Jika Anda perlu mengatur ulang perangkat, panggil SetBackBuffer dengan diatur ke null, lalu panggil SetBackBuffer lagi dengan backBuffer diatur ke permukaan Direct3D backBuffer yang valid.

Daftar berikut ini memperlihatkan pengaturan buffer kembali yang diperlukan untuk jenis tersebut IDirect3DSurface9 .

  • D3DFMT_A8R8G8B8 atau D3DFMT_X8R8G8B8

  • D3DUSAGE_RENDERTARGET

  • D3DPOOL_DEFAULT

Multisampling hanya diperbolehkan di IDirect3DSurface9Ex permukaan.

Berlaku untuk