D3DImage.SetBackBuffer Yöntem

Tanım

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

Aşırı Yüklemeler

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 TryLock(Duration) yöntemlerine Lock() yapılan bir çağrı tarafından kilitlenmedi.

backBufferType geçerli D3DResourceTypebir değil.

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

Örnekler

Aşağıdaki kod örneğinde Direct3D yüzeyi atamak için yönteminin nasıl çağrılacakları SetBackBuffer gösterilmektedir. 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 direct3D yüzey atamak için yöntemini çağırın.

Not

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

Aşırı yüklemeyi çağırmakSetBackBuffer(D3DResourceType, IntPtr), parametresi olarak ayarlanmış falseaşırı yüklemeyi çağırmakla SetBackBuffer(D3DResourceType, IntPtr, Boolean)enableSoftwareFallback aynıdır. parametresi olarak ayarlanmış falseolarak çağırdığınızda SetBackBuffer(D3DResourceType, IntPtr) veya çağırdığınızda SetBackBuffer(D3DResourceType, IntPtr, Boolean)enableSoftwareFallback, ö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 arabellek yeniden kullanılabilir olduğunda, işleme sistemi WPF uygulamanızı bilgilendirmek için olayı tetikler IsFrontBufferAvailableChanged . Geçerli bir Direct3D yüzeyiyle işlemeyi IsFrontBufferAvailableChanged yeniden başlatmak için olay işleyicisi oluşturabilirsiniz. İşlemeyi yeniden başlatmak için öğesini çağırmanız SetBackBuffergerekir.

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

  • D3DFMT_A8R8G8B8 veya D3DFMT_X8R8G8B8

  • D3DUSAGE_RENDERTARGET

  • D3DPOOL_DEFAULT

Çoklu örneklemeye yalnızca yüzeylerde IDirect3DSurface9Ex 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 için; aksi takdirde , false.

Öznitelikler

Açıklamalar

Aşırı yüklemeyi çağırdığınızda SetBackBuffer(D3DResourceType, IntPtr) veya parametresi olarak ayarlanmış falseşekilde aşırı yüklemeyi enableSoftwareFallback çağırdığınızdaSetBackBuffer(D3DResourceType, IntPtr, Boolean), ö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 arabellek yeniden kullanılabilir olduğunda, işleme sistemi WPF uygulamanızı bilgilendirmek için olayı tetikler IsFrontBufferAvailableChanged . Geçerli bir Direct3D yüzeyiyle işlemeyi IsFrontBufferAvailableChanged yeniden başlatmak için olay işleyicisi oluşturabilirsiniz. İşlemeyi yeniden başlatmak için öğesini çağırmanız SetBackBuffergerekir.

SetBackBuffer(D3DResourceType, IntPtr, Boolean) enableSoftwareFallback parametresini olarak ayarladığınızdatrue, ön arabellek kullanılamaz duruma geldiğinde işleme sistemi 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ılamaz duruma geldiği 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ış olarak öğesini arayın SetBackBuffer ve ardından geçerli bir Direct3D yüzeyine ayarlanmış olarak backBuffer yeniden arayınSetBackBuffer.backBuffernull

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

  • D3DFMT_A8R8G8B8 veya D3DFMT_X8R8G8B8

  • D3DUSAGE_RENDERTARGET

  • D3DPOOL_DEFAULT

Çoklu örneklemeye yalnızca yüzeylerde IDirect3DSurface9Ex izin verilir.

Şunlara uygulanır