D3DImage.SetBackBuffer Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
atauD3DFMT_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
atauD3DFMT_X8R8G8B8
D3DUSAGE_RENDERTARGET
D3DPOOL_DEFAULT
Multisampling hanya diperbolehkan di IDirect3DSurface9Ex
permukaan.