D3DImage.SetBackBuffer Methode

Definitie

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_A8R8G8B8 of D3DFMT_X8R8G8B8

  • D3DUSAGE_RENDERTARGET

  • D3DPOOL_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_A8R8G8B8 of D3DFMT_X8R8G8B8

  • D3DUSAGE_RENDERTARGET

  • D3DPOOL_DEFAULT

Multisampling is alleen toegestaan op IDirect3DSurface9Ex oppervlakken.

Van toepassing op