D3DImage.SetBackBuffer Metodo

Definizione

Assegna una superficie Direct3D come origine del buffer nascosto.

Overload

SetBackBuffer(D3DResourceType, IntPtr)

Assegna una superficie Direct3D come origine del buffer nascosto.

SetBackBuffer(D3DResourceType, IntPtr, Boolean)

Assegna una superficie Direct3D come origine del buffer nascosto.

SetBackBuffer(D3DResourceType, IntPtr)

Assegna una superficie Direct3D come origine del buffer nascosto.

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)

Parametri

backBufferType
D3DResourceType

Tipo di superficie Direct3D. Deve essere un oggetto D3DResourceType valido.

backBuffer
IntPtr

nativeint

Superficie Direct3D da assegnare come buffer nascosto.

Attributi

Eccezioni

L'oggetto D3DImage non è stato bloccato tramite una chiamata al metodo Lock() o TryLock(Duration).

backBufferType non è un oggetto D3DResourceType valido.

I parametri di creazione per backBuffer non soddisfano i requisiti per backBufferType o il dispositivo backBuffer non è valido.

Esempio

L'esempio di codice seguente illustra come chiamare il SetBackBuffer metodo per assegnare una superficie Direct3D. Per altre informazioni, vedere Procedura dettagliata: Hosting di contenuto Direct3D9 in 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();

Commenti

Chiamare il SetBackBuffer metodo per assegnare una superficie Direct3D al buffer nascosto.

Nota

Le prestazioni dipendono notevolmente dalle impostazioni della superficie Direct3D. Per altre informazioni, vedere Considerazioni sulle prestazioni per Direct3D9 e Interoperabilità WPF.

La chiamata all'overload SetBackBuffer(D3DResourceType, IntPtr) è identica alla chiamata dell'overload SetBackBuffer(D3DResourceType, IntPtr, Boolean) con il enableSoftwareFallback parametro impostato su false. Quando si chiama o si chiama SetBackBuffer(D3DResourceType, IntPtr)SetBackBuffer(D3DResourceType, IntPtr, Boolean) con il enableSoftwareFallback parametro impostato su false, il sistema di rendering rilascia il relativo riferimento al buffer nascosto quando il buffer anteriore diventa non disponibile e non viene visualizzato alcun elemento. Quando il buffer anteriore è nuovamente disponibile, il sistema di rendering genera l'evento IsFrontBufferAvailableChanged per notificare all'applicazione WPF. È possibile creare un gestore eventi per l'evento per riavviare il IsFrontBufferAvailableChanged rendering con una superficie Direct3D valida. Per riavviare il rendering, è necessario chiamare SetBackBuffer.

L'elenco seguente mostra le impostazioni del buffer nascosto necessarie per il IDirect3DSurface9 tipo.

  • D3DFMT_A8R8G8B8 o D3DFMT_X8R8G8B8

  • D3DUSAGE_RENDERTARGET

  • D3DPOOL_DEFAULT

Il multicampionamento è consentito solo sulle IDirect3DSurface9Ex superfici.

Vedi anche

Si applica a

SetBackBuffer(D3DResourceType, IntPtr, Boolean)

Assegna una superficie Direct3D come origine del buffer nascosto.

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)

Parametri

backBufferType
D3DResourceType

Tipo di superficie Direct3D. Deve essere un oggetto D3DResourceType valido.

backBuffer
IntPtr

nativeint

Superficie Direct3D da assegnare come buffer nascosto.

enableSoftwareFallback
Boolean

true per eseguire il fallback nel rendering software; in caso contrario, false.

Attributi

Commenti

Quando si chiama l'overload SetBackBuffer(D3DResourceType, IntPtr) o si chiama l'overload SetBackBuffer(D3DResourceType, IntPtr, Boolean) con il enableSoftwareFallback parametro impostato su false, il sistema di rendering rilascia il relativo riferimento al buffer nascosto quando il buffer anteriore diventa non disponibile e non viene visualizzato nulla. Quando il buffer anteriore è nuovamente disponibile, il sistema di rendering genera l'evento IsFrontBufferAvailableChanged per notificare all'applicazione WPF. È possibile creare un gestore eventi per l'evento per riavviare il IsFrontBufferAvailableChanged rendering con una superficie Direct3D valida. Per riavviare il rendering, è necessario chiamare SetBackBuffer.

Quando si chiama SetBackBuffer(D3DResourceType, IntPtr, Boolean) con il enableSoftwareFallback parametro impostato su true, il sistema di rendering mantiene il relativo riferimento al buffer nascosto quando il buffer anteriore diventa non disponibile, quindi non è necessario chiamare SetBackBuffer quando il buffer anteriore è nuovamente disponibile. Possono verificarsi situazioni in cui il dispositivo dell'utente non è più disponibile. In questo caso, chiamare SetBackBuffer per rilasciare il riferimento di WPF al buffer nascosto. Se è necessario reimpostare il dispositivo, chiamare SetBackBuffer con backBuffer impostato su nulle quindi chiamare SetBackBuffer di nuovo con backBuffer impostato su una superficie Direct3D valida.

L'elenco seguente mostra le impostazioni del buffer nascosto necessarie per il IDirect3DSurface9 tipo.

  • D3DFMT_A8R8G8B8 o D3DFMT_X8R8G8B8

  • D3DUSAGE_RENDERTARGET

  • D3DPOOL_DEFAULT

Il multicampionamento è consentito solo sulle IDirect3DSurface9Ex superfici.

Si applica a