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_A8R8G8B8
oD3DFMT_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 null
e 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
oD3DFMT_X8R8G8B8
D3DUSAGE_RENDERTARGET
D3DPOOL_DEFAULT
Il multicampionamento è consentito solo sulle IDirect3DSurface9Ex
superfici.