D3DImage.SetBackBuffer Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Tilldelar en Direct3D-yta som källa för den bakre bufferten.
Överlagringar
| Name | Description |
|---|---|
| SetBackBuffer(D3DResourceType, IntPtr) |
Tilldelar en Direct3D-yta som källa för den bakre bufferten. |
| SetBackBuffer(D3DResourceType, IntPtr, Boolean) |
Tilldelar en Direct3D-yta som källa för den bakre bufferten. |
SetBackBuffer(D3DResourceType, IntPtr)
Tilldelar en Direct3D-yta som källa för den bakre bufferten.
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)
Parametrar
- backBufferType
- D3DResourceType
Typ av Direct3D-yta. Måste vara en giltig D3DResourceType.
- backBuffer
-
IntPtr
nativeint
Direct3D-ytan som ska tilldelas som backbuffert.
- Attribut
Undantag
D3DImage Har inte låsts av ett anrop till Lock() metoderna ellerTryLock(Duration).
backBufferType är inte ett giltigt D3DResourceType.
Skapandeparametrarna för backBuffer uppfyller inte kraven för backBufferType-or-Enheten backBuffer är inte giltig.
Exempel
I följande kodexempel visas hur du anropar SetBackBuffer metoden för att tilldela en Direct3D-yta. För mer information, se Genomgång: Som värd för Direct3D9-innehåll i 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();
Kommentarer
SetBackBuffer Anropa metoden för att tilldela en Direct3D-yta till den bakre bufferten.
Note
Prestanda beror mycket på inställningarna för Direct3D-ytan. Mer information finns i prestandaöverväganden för Direct3D9 och WPF Interoperability.
Att anropa överlagringen SetBackBuffer(D3DResourceType, IntPtr) är identiskt med att anropa överlagringen SetBackBuffer(D3DResourceType, IntPtr, Boolean) med parametern inställd på enableSoftwareFallbackfalse. När du anropar SetBackBuffer(D3DResourceType, IntPtr) eller anropar SetBackBuffer(D3DResourceType, IntPtr, Boolean) med parametern enableSoftwareFallback inställd på falsesläpper renderingssystemet sin referens till den bakre bufferten när den främre bufferten blir otillgänglig och ingenting visas. När den främre bufferten är tillgänglig igen genererar renderingssystemet den IsFrontBufferAvailableChanged händelsen för att meddela WPF-programmet. Du kan skapa en händelsehanterare för den IsFrontBufferAvailableChanged händelsen för att starta om återgivningen med en giltig Direct3D-yta. Om du vill starta om renderingen måste du anropa SetBackBuffer.
I följande lista visas de nödvändiga inställningarna för serverbufferten IDirect3DSurface9 för typen.
D3DFMT_A8R8G8B8ellerD3DFMT_X8R8G8B8D3DUSAGE_RENDERTARGETD3DPOOL_DEFAULT
Multisampling tillåts endast på IDirect3DSurface9Ex ytor.
Se även
Gäller för
SetBackBuffer(D3DResourceType, IntPtr, Boolean)
Tilldelar en Direct3D-yta som källa för den bakre bufferten.
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)
Parametrar
- backBufferType
- D3DResourceType
Typ av Direct3D-yta. Måste vara en giltig D3DResourceType.
- backBuffer
-
IntPtr
nativeint
Direct3D-ytan som ska tilldelas som backbuffert.
- enableSoftwareFallback
- Boolean
trueatt falla tillbaka på programvarurendering; annars . false
- Attribut
Kommentarer
När du anropar SetBackBuffer(D3DResourceType, IntPtr) överladdning eller SetBackBuffer(D3DResourceType, IntPtr, Boolean) överladdning med parametern enableSoftwareFallback satt till false, släpper återgivningssystemet sin referens till den bakre bufferten när den främre bufferten blir otillgänglig och inget visas. När den främre bufferten är tillgänglig igen genererar renderingssystemet den IsFrontBufferAvailableChanged händelsen för att meddela WPF-programmet. Du kan skapa en händelsehanterare för den IsFrontBufferAvailableChanged händelsen för att starta om återgivningen med en giltig Direct3D-yta. Om du vill starta om renderingen måste du anropa SetBackBuffer.
När du anropar SetBackBuffer(D3DResourceType, IntPtr, Boolean) med parametern enableSoftwareFallback inställd på truebehåller återgivningssystemet sin referens till den bakre bufferten när den främre bufferten blir otillgänglig, så det finns inget behov av att anropa SetBackBuffer när den främre bufferten är tillgänglig igen. Det kan finnas situationer där användarens enhet blir otillgänglig. När detta inträffar anropar du SetBackBuffer för att frigöra WPF referens till serverbufferten. Om du behöver återställa enheten anropar SetBackBuffer du med backBuffer inställt på nulloch anropar SetBackBuffer sedan igen med backBuffer inställd på en giltig Direct3D-yta.
I följande lista visas de nödvändiga inställningarna för serverbufferten IDirect3DSurface9 för typen.
D3DFMT_A8R8G8B8ellerD3DFMT_X8R8G8B8D3DUSAGE_RENDERTARGETD3DPOOL_DEFAULT
Multisampling tillåts endast på IDirect3DSurface9Ex ytor.