Partager via


D3DImage.SetBackBuffer Méthode

Définition

Assigne une surface Direct3D comme source de la mémoire tampon d'arrière-plan.

Surcharges

SetBackBuffer(D3DResourceType, IntPtr)

Assigne une surface Direct3D comme source de la mémoire tampon d'arrière-plan.

SetBackBuffer(D3DResourceType, IntPtr, Boolean)

Assigne une surface Direct3D comme source de la mémoire tampon d'arrière-plan.

SetBackBuffer(D3DResourceType, IntPtr)

Assigne une surface Direct3D comme source de la mémoire tampon d'arrière-plan.

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 un D3DResourceType valide.

backBuffer
IntPtr

nativeint

Surface Direct3D à attribuer comme mémoire tampon d'arrière-plan.

Attributs

Exceptions

Le D3DImage n'a pas été verrouillé par un appel à la méthode Lock() ou TryLock(Duration).

backBufferType n’est pas un D3DResourceType valide.

Les paramètres de création de backBuffer ne répondent pas aux spécifications pour backBufferType - ou- Le périphérique 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 Procédure pas à pas : hébergement de 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 d’arrière-mémoire.

Notes

Les performances dépendent en grande partie des paramètres de la surface Direct3D. Pour plus d’informations, consultez Considérations relatives aux performances pour Direct3D9 et l’interopérabilité WPF.

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 sur false, le système de rendu libère sa référence à la mémoire tampon d’arrière-plan lorsque la mémoire tampon avant devient indisponible et que rien n’est affiché. Lorsque la mémoire tampon avant 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 redémarre à nouveau le IsFrontBufferAvailableChanged rendu avec une surface Direct3D valide. Pour redémarrer le rendu, vous devez appeler SetBackBuffer.

La liste suivante présente les paramètres de mémoire tampon d’arrière-mémoire requis pour le IDirect3DSurface9 type.

  • D3DFMT_A8R8G8B8 ou D3DFMT_X8R8G8B8

  • D3DUSAGE_RENDERTARGET

  • D3DPOOL_DEFAULT

L’échantillonnage multiple est autorisé sur IDirect3DSurface9Ex les surfaces uniquement.

Voir aussi

S’applique à

SetBackBuffer(D3DResourceType, IntPtr, Boolean)

Assigne une surface Direct3D comme source de la mémoire tampon d'arrière-plan.

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 un D3DResourceType valide.

backBuffer
IntPtr

nativeint

Surface Direct3D à attribuer comme mémoire tampon d'arrière-plan.

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 sur false, le système de rendu libère sa référence à la mémoire tampon d’arrière-plan lorsque la mémoire tampon avant devient indisponible et que rien n’est affiché. Lorsque la mémoire tampon avant 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 redémarre à nouveau le IsFrontBufferAvailableChanged 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 sur true, le système de rendu conserve sa référence à la mémoire tampon d’arrière-plan lorsque la mémoire tampon avant devient indisponible. Il n’est donc pas nécessaire d’appeler SetBackBuffer lorsque la mémoire tampon avant est à nouveau disponible. Il peut arriver que l’appareil de l’utilisateur ne soit plus disponible. Lorsque cela se produit, appelez SetBackBuffer pour libérer la référence de WPF à la mémoire tampon d’arrière-mémoire. 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 présente les paramètres de mémoire tampon d’arrière-mémoire requis pour le IDirect3DSurface9 type.

  • D3DFMT_A8R8G8B8 ou D3DFMT_X8R8G8B8

  • D3DUSAGE_RENDERTARGET

  • D3DPOOL_DEFAULT

L’échantillonnage multiple est autorisé sur IDirect3DSurface9Ex les surfaces uniquement.

S’applique à