D3DImage.SetBackBuffer Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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_A8R8G8B8veyaD3DFMT_X8R8G8B8D3DUSAGE_RENDERTARGETD3DPOOL_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_A8R8G8B8veyaD3DFMT_X8R8G8B8D3DUSAGE_RENDERTARGETD3DPOOL_DEFAULT
Yalnızca yüzeylerde IDirect3DSurface9Ex çoklu örneklemeye izin verilir.