D3DImage.SetBackBuffer Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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_A8R8G8B8oD3DFMT_X8R8G8B8D3DUSAGE_RENDERTARGETD3DPOOL_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_A8R8G8B8oD3DFMT_X8R8G8B8D3DUSAGE_RENDERTARGETD3DPOOL_DEFAULT
Il multicampionamento è consentito solo sulle IDirect3DSurface9Ex superfici.