D3DImage.SetBackBuffer Yöntem

Tanım

Arka arabelleğin kaynağı olarak bir Direct3D yüzeyi atar.

Aşırı Yüklemeler

Name Description
SetBackBuffer(D3DResourceType, IntPtr)

Arka arabelleğin kaynağı olarak bir Direct3D yüzeyi atar.

SetBackBuffer(D3DResourceType, IntPtr, Boolean)

Arka arabelleğin kaynağı olarak bir Direct3D yüzeyi atar.

SetBackBuffer(D3DResourceType, IntPtr)

Arka arabelleğin kaynağı olarak bir Direct3D yüzeyi atar.

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)

Parametreler

backBufferType
D3DResourceType

Direct3D yüzeyinin türü. Geçerli D3DResourceTypebir olmalıdır.

backBuffer
IntPtr

nativeint

Arka arabellek olarak atanacak Direct3D yüzeyi.

Öznitelikler

Özel durumlar

D3DImage veya Lock() yöntemlerine TryLock(Duration) yapılan bir çağrı tarafından kilitlenmedi.

backBufferType geçerli bir D3DResourceTypedeğil.

için backBuffer oluşturma parametreleri - veya-Cihaz backBufferType gereksinimlerini backBufferkarşılamıyor geçerli değil.

Örnekler

Aşağıdaki kod örneği, Direct3D yüzeyi atamak için yöntemini çağırmayı SetBackBuffer gösterir. Daha fazla bilgi için bkz . İzlenecek yol: WPF'de Direct3D9 İçeriği barındırma.

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();

Açıklamalar

SetBackBuffer Arka arabelleğe bir Direct3D yüzeyi atamak için yöntemini çağırın.

Note

Performans, Direct3D yüzeyinin ayarlarına büyük ölçüde bağlıdır. Daha fazla bilgi için bkz. Direct3D9 ve WPF Birlikte Çalışabilirlikiçin Performans Konuları.

SetBackBuffer(D3DResourceType, IntPtr) Aşırı yüklemeyi çağırmak, parametresi olarak ayarlanmış SetBackBuffer(D3DResourceType, IntPtr, Boolean)aşırı yüklemeyi çağırmakla enableSoftwareFallbackfalse aynıdır. parametresi olarak ayarlandığında SetBackBuffer(D3DResourceType, IntPtr)çağırdığınızda SetBackBuffer(D3DResourceType, IntPtr, Boolean) veya çağırdığınızda enableSoftwareFallbackfalse, ön arabellek kullanılamaz hale geldiğinde ve hiçbir şey görüntülenmediğinde işleme sistemi arka arabelleğe başvurusunu serbest bırakır. Ön tampon yeniden kullanılabilir olduğunda, render sistemi WPF uygulamanıza bildirmek için IsFrontBufferAvailableChanged olayını tetikler. geçerli bir Direct3D yüzeyiyle işlemeyi yeniden başlatmak üzere IsFrontBufferAvailableChanged olayı için bir olay işleyicisi oluşturabilirsiniz. İşlemeyi yeniden başlatmak için SetBackBufferçağırmalısınız.

Aşağıdaki listede türü için gerekli geri arabellek ayarları gösterilmektedir IDirect3DSurface9 .

  • D3DFMT_A8R8G8B8 veya D3DFMT_X8R8G8B8

  • D3DUSAGE_RENDERTARGET

  • D3DPOOL_DEFAULT

Yalnızca yüzeylerde IDirect3DSurface9Ex çoklu örneklemeye izin verilir.

Ayrıca bkz.

Şunlara uygulanır

SetBackBuffer(D3DResourceType, IntPtr, Boolean)

Arka arabelleğin kaynağı olarak bir Direct3D yüzeyi atar.

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)

Parametreler

backBufferType
D3DResourceType

Direct3D yüzeyinin türü. Geçerli D3DResourceTypebir olmalıdır.

backBuffer
IntPtr

nativeint

Arka arabellek olarak atanacak Direct3D yüzeyi.

enableSoftwareFallback
Boolean

true yazılım işlemeye geri dönmek; aksi takdirde , false.

Öznitelikler

Açıklamalar

SetBackBuffer(D3DResourceType, IntPtr) aşırı yüklemesini çağırdığınızda veya SetBackBuffer(D3DResourceType, IntPtr, Boolean) parametresi enableSoftwareFallbackolarak ayarlanmış false aşırı yüklemesini çağırdığınızda, ön tampon kullanılamaz hale geldiğinde ve hiçbir şey görüntülenmediğinde, işleme sistemi arka tampona referansını bırakır. Ön tampon yeniden kullanılabilir olduğunda, render sistemi WPF uygulamanıza bildirmek için IsFrontBufferAvailableChanged olayını tetikler. geçerli bir Direct3D yüzeyiyle işlemeyi yeniden başlatmak üzere IsFrontBufferAvailableChanged olayı için bir olay işleyicisi oluşturabilirsiniz. İşlemeyi yeniden başlatmak için SetBackBufferçağırmalısınız.

SetBackBuffer(D3DResourceType, IntPtr, Boolean) enableSoftwareFallback parametresi olarak ayarlandığındatrue, işleme sistemi ön arabellek kullanılamaz duruma geldiğinde arka arabelleğe başvurusunu korur, bu nedenle ön arabellek yeniden kullanılabilir olduğunda çağrı SetBackBuffer yapmanız gerekmez. Kullanıcının cihazının kullanılamadığı durumlar olabilir. Bu gerçekleştiğinde, WPF'nin arka arabelleğe başvuruyu serbest bırakmak için çağrısında SetBackBuffer bulunur. Cihazınızı sıfırlamanız gerekiyorsa, olarak ayarlanmış SetBackBufferolarak çağrısı backBuffernull yapın ve ardından geçerli bir Direct3D yüzeyine ayarlanmış olarak yeniden SetBackBuffer arayınbackBuffer.

Aşağıdaki listede türü için gerekli geri arabellek ayarları gösterilmektedir IDirect3DSurface9 .

  • D3DFMT_A8R8G8B8 veya D3DFMT_X8R8G8B8

  • D3DUSAGE_RENDERTARGET

  • D3DPOOL_DEFAULT

Yalnızca yüzeylerde IDirect3DSurface9Ex çoklu örneklemeye izin verilir.

Şunlara uygulanır