D3DImage.SetBackBuffer Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Affecte une surface Direct3D comme source de la mémoire tampon arrière.
Surcharges
| Nom | Description |
|---|---|
| SetBackBuffer(D3DResourceType, IntPtr) |
Affecte une surface Direct3D comme source de la mémoire tampon arrière. |
| SetBackBuffer(D3DResourceType, IntPtr, Boolean) |
Affecte une surface Direct3D comme source de la mémoire tampon arrière. |
SetBackBuffer(D3DResourceType, IntPtr)
Affecte une surface Direct3D comme source de la mémoire tampon arrière.
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)
Paramètres
- backBufferType
- D3DResourceType
Type de surface Direct3D. Doit être valide D3DResourceType.
- backBuffer
-
IntPtr
nativeint
Surface Direct3D à affecter en tant que mémoire tampon arrière.
- Attributs
Exceptions
L’élément D3DImage n’a pas été verrouillé par un appel aux méthodes ou TryLock(Duration) aux Lock() méthodes.
backBufferType n’est pas valide D3DResourceType.
Les paramètres de création pour backBuffer finaux ne répondent pas aux conditions requises pour l’appareil backBufferType-ou-L’appareil backBuffer n’est pas valide.
Exemples
L’exemple de code suivant montre comment appeler la SetBackBuffer méthode pour affecter une surface Direct3D. Pour plus d’informations, consultez guide : hébergement du contenu Direct3D9 dans 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();
Remarques
Appelez la SetBackBuffer méthode pour affecter une surface Direct3D à la mémoire tampon arrière.
Note
Les performances dépendent considérablement des paramètres de la surface Direct3D. Pour plus d’informations, consultez Considérations relatives aux performances pour Direct3D9 et WPF Interopérabilité.
L’appel de la SetBackBuffer(D3DResourceType, IntPtr) surcharge est identique à l’appel de la SetBackBuffer(D3DResourceType, IntPtr, Boolean) surcharge avec le enableSoftwareFallback paramètre défini sur false. Lorsque vous appelez ou appelez SetBackBuffer(D3DResourceType, IntPtr)SetBackBuffer(D3DResourceType, IntPtr, Boolean) avec le enableSoftwareFallback paramètre défini falsesur , le système de rendu libère sa référence à la mémoire tampon arrière lorsque la mémoire tampon frontale devient indisponible et que rien n’est affiché. Lorsque la mémoire tampon frontale est à nouveau disponible, le système de rendu déclenche l’événement IsFrontBufferAvailableChanged pour notifier votre application WPF. Vous pouvez créer un gestionnaire d’événements pour que l’événement IsFrontBufferAvailableChanged redémarre le rendu avec une surface Direct3D valide. Pour redémarrer le rendu, vous devez appeler SetBackBuffer.
La liste suivante montre les paramètres de mémoire tampon back requis pour le IDirect3DSurface9 type.
D3DFMT_A8R8G8B8ouD3DFMT_X8R8G8B8D3DUSAGE_RENDERTARGETD3DPOOL_DEFAULT
L’échantillonnage multiple est autorisé uniquement sur IDirect3DSurface9Ex les surfaces.
Voir aussi
S’applique à
SetBackBuffer(D3DResourceType, IntPtr, Boolean)
Affecte une surface Direct3D comme source de la mémoire tampon arrière.
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)
Paramètres
- backBufferType
- D3DResourceType
Type de surface Direct3D. Doit être valide D3DResourceType.
- backBuffer
-
IntPtr
nativeint
Surface Direct3D à affecter en tant que mémoire tampon arrière.
- enableSoftwareFallback
- Boolean
true pour revenir au rendu logiciel ; sinon, false.
- Attributs
Remarques
Lorsque vous appelez la SetBackBuffer(D3DResourceType, IntPtr) surcharge ou appelez la SetBackBuffer(D3DResourceType, IntPtr, Boolean) surcharge avec le enableSoftwareFallback paramètre défini falsesur , le système de rendu libère sa référence à la mémoire tampon arrière lorsque la mémoire tampon frontale devient indisponible et que rien n’est affiché. Lorsque la mémoire tampon frontale est à nouveau disponible, le système de rendu déclenche l’événement IsFrontBufferAvailableChanged pour notifier votre application WPF. Vous pouvez créer un gestionnaire d’événements pour que l’événement IsFrontBufferAvailableChanged redémarre le rendu avec une surface Direct3D valide. Pour redémarrer le rendu, vous devez appeler SetBackBuffer.
Lorsque vous appelez SetBackBuffer(D3DResourceType, IntPtr, Boolean) avec le enableSoftwareFallback paramètre défini truesur , le système de rendu conserve sa référence à la mémoire tampon arrière lorsque la mémoire tampon frontale devient indisponible. Il n’est donc pas nécessaire d’appeler SetBackBuffer lorsque la mémoire tampon frontale est à nouveau disponible. Il peut y avoir des situations où l’appareil de l’utilisateur devient indisponible. Quand cela se produit, appelez SetBackBuffer la référence de WPF à la mémoire tampon back. Si vous devez réinitialiser votre appareil, appelez SetBackBuffer avec backBuffer défini sur null, puis appelez SetBackBuffer à nouveau avec backBuffer défini sur une surface Direct3D valide.
La liste suivante montre les paramètres de mémoire tampon back requis pour le IDirect3DSurface9 type.
D3DFMT_A8R8G8B8ouD3DFMT_X8R8G8B8D3DUSAGE_RENDERTARGETD3DPOOL_DEFAULT
L’échantillonnage multiple est autorisé uniquement sur IDirect3DSurface9Ex les surfaces.