D3DImage.SetBackBuffer Metodo

Definizione

Assegna una superficie Direct3D come origine del buffer nascosto.

Overload

Nome Descrizione
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 valido D3DResourceType.

backBuffer
IntPtr

nativeint

Superficie Direct3D da assegnare come buffer nascosto.

Attributi

Eccezioni

L'oggetto D3DImage non è stato bloccato da una chiamata ai Lock() metodi o TryLock(Duration) .

backBufferType non è un D3DResourceTypevalido.

I parametri di creazione per backBuffer non soddisfano i requisiti per - backBufferTypeor-The backBuffer device is not valid.

Esempio

Nell'esempio di codice seguente viene illustrato 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.

Note

Le prestazioni dipendono notevolmente dalle impostazioni della superficie Direct3D. Per ulteriori informazioni, consultare Considerazioni sulle prestazioni per l'interoperabilità tra Direct3D9 e 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 la tua applicazione WPF. È possibile creare un gestore eventi per l'evento IsFrontBufferAvailableChanged per riavviare il 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 oppure 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 valido D3DResourceType.

backBuffer
IntPtr

nativeint

Superficie Direct3D da assegnare come buffer nascosto.

enableSoftwareFallback
Boolean

true per eseguire il fallback al 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 parametro enableSoftwareFallback 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 la tua applicazione WPF. È possibile creare un gestore eventi per l'evento IsFrontBufferAvailableChanged per riavviare il 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 riferimento al buffer nascosto quando il buffer anteriore diventa non disponibile, quindi non è necessario chiamare SetBackBuffer quando il buffer anteriore è nuovamente disponibile. Potrebbero 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 oppure D3DFMT_X8R8G8B8

  • D3DUSAGE_RENDERTARGET

  • D3DPOOL_DEFAULT

Il multicampionamento è consentito solo sulle IDirect3DSurface9Ex superfici.

Si applica a