D3DImage.SetBackBuffer Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wijst u een Direct3D-oppervlak toe als de bron van de achterbuffer.
Overloads
| Name | Description |
|---|---|
| SetBackBuffer(D3DResourceType, IntPtr) |
Hiermee wijst u een Direct3D-oppervlak toe als de bron van de achterbuffer. |
| SetBackBuffer(D3DResourceType, IntPtr, Boolean) |
Hiermee wijst u een Direct3D-oppervlak toe als de bron van de achterbuffer. |
SetBackBuffer(D3DResourceType, IntPtr)
Hiermee wijst u een Direct3D-oppervlak toe als de bron van de achterbuffer.
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)
Parameters
- backBufferType
- D3DResourceType
Het type Direct3D-oppervlak. Moet een geldige D3DResourceTypewaarde zijn.
- backBuffer
-
IntPtr
nativeint
Het Direct3D-oppervlak dat moet worden toegewezen als de achterbuffer.
- Kenmerken
Uitzonderingen
Het D3DImage is niet vergrendeld door een aanroep naar de Lock() of TryLock(Duration) methoden.
backBufferType is geen geldige D3DResourceType.
De aanmaakparameters voldoen backBuffer niet aan de vereisten voor het backBufferType-or-The-apparaat backBuffer is ongeldig.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u de SetBackBuffer methode aanroept om een Direct3D-oppervlak toe te wijzen. Zie Walkthrough: Direct3D9-inhoud hosten in WPF voor meer informatie.
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();
Opmerkingen
Roep de SetBackBuffer methode aan om een Direct3D-oppervlak toe te wijzen aan de backbuffer.
Note
Prestaties zijn sterk afhankelijk van de instellingen van het Direct3D-oppervlak. Zie Prestatieoverwegingen voor Direct3D9 en WPF-interoperabiliteit voor meer informatie.
Het aanroepen van de SetBackBuffer(D3DResourceType, IntPtr) overbelasting is identiek aan het aanroepen van de SetBackBuffer(D3DResourceType, IntPtr, Boolean) overbelasting met de enableSoftwareFallback parameter ingesteld op false. Wanneer u de parameter aanroept of aanroept SetBackBuffer(D3DResourceType, IntPtr)SetBackBuffer(D3DResourceType, IntPtr, Boolean) waarop de enableSoftwareFallback parameter is ingesteld false, geeft het renderingsysteem de verwijzing naar de achterbuffer vrij wanneer de frontbuffer niet meer beschikbaar is en er niets wordt weergegeven. Wanneer de frontbuffer weer beschikbaar is, wordt de IsFrontBufferAvailableChanged gebeurtenis geactiveerd om uw WPF-toepassing op de hoogte te brengen. U kunt een gebeurtenis-handler voor de gebeurtenis maken om de IsFrontBufferAvailableChanged rendering opnieuw te starten met een geldig Direct3D-oppervlak. Als u de rendering opnieuw wilt starten, moet u aanroepen SetBackBuffer.
In de volgende lijst ziet u de vereiste backbufferinstellingen voor het IDirect3DSurface9 type.
D3DFMT_A8R8G8B8ofD3DFMT_X8R8G8B8D3DUSAGE_RENDERTARGETD3DPOOL_DEFAULT
Multisampling is alleen toegestaan op IDirect3DSurface9Ex oppervlakken.
Zie ook
Van toepassing op
SetBackBuffer(D3DResourceType, IntPtr, Boolean)
Hiermee wijst u een Direct3D-oppervlak toe als de bron van de achterbuffer.
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)
Parameters
- backBufferType
- D3DResourceType
Het type Direct3D-oppervlak. Moet een geldige D3DResourceTypewaarde zijn.
- backBuffer
-
IntPtr
nativeint
Het Direct3D-oppervlak dat moet worden toegewezen als de achterbuffer.
- enableSoftwareFallback
- Boolean
true om terug te vallen op softwarerendering; anders, false.
- Kenmerken
Opmerkingen
Wanneer u de SetBackBuffer(D3DResourceType, IntPtr) overload aanroept of de SetBackBuffer(D3DResourceType, IntPtr, Boolean) overload aanroept waarbij de enableSoftwareFallback parameter is ingesteld op false, geeft het renderingsysteem de verwijzing naar de achterbuffer vrij wanneer de frontbuffer niet meer beschikbaar is en er niets wordt weergegeven. Wanneer de frontbuffer weer beschikbaar is, wordt de IsFrontBufferAvailableChanged gebeurtenis geactiveerd om uw WPF-toepassing op de hoogte te brengen. U kunt een gebeurtenis-handler voor de gebeurtenis maken om de IsFrontBufferAvailableChanged rendering opnieuw te starten met een geldig Direct3D-oppervlak. Als u de rendering opnieuw wilt starten, moet u aanroepen SetBackBuffer.
Wanneer u de parameter aanroept SetBackBuffer(D3DResourceType, IntPtr, Boolean) waarop de enableSoftwareFallback parameter is ingesteld true, behoudt het renderingsysteem de verwijzing naar de achterbuffer wanneer de frontbuffer niet meer beschikbaar is. U hoeft dus niet aan te roepen SetBackBuffer wanneer de frontbuffer opnieuw beschikbaar is. Er kunnen situaties zijn waarin het apparaat van de gebruiker niet meer beschikbaar is. Als dat gebeurt, roept u SetBackBuffer aan om de verwijzing van WPF naar de backbuffer vrij te geven. Als u het apparaat opnieuw wilt instellen, belt SetBackBuffer u met backBuffer ingesteld op nullen belt SetBackBuffer u opnieuw met backBuffer de optie Ingesteld op een geldig Direct3D-oppervlak.
In de volgende lijst ziet u de vereiste backbufferinstellingen voor het IDirect3DSurface9 type.
D3DFMT_A8R8G8B8ofD3DFMT_X8R8G8B8D3DUSAGE_RENDERTARGETD3DPOOL_DEFAULT
Multisampling is alleen toegestaan op IDirect3DSurface9Ex oppervlakken.