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
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 backBufferType
karşı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ış false
aşırı yüklemeyi çağırmakla SetBackBuffer(D3DResourceType, IntPtr, Boolean)enableSoftwareFallback
aynıdır. parametresi olarak ayarlanmış false
olarak ç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
veyaD3DFMT_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.backBuffer
null
Aşağıdaki listede, tür için IDirect3DSurface9
gerekli geri arabellek ayarları gösterilir.
D3DFMT_A8R8G8B8
veyaD3DFMT_X8R8G8B8
D3DUSAGE_RENDERTARGET
D3DPOOL_DEFAULT
Çoklu örneklemeye yalnızca yüzeylerde IDirect3DSurface9Ex
izin verilir.