D3DImage.SetBackBuffer Méthode

Définition

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_A8R8G8B8 ou D3DFMT_X8R8G8B8

  • D3DUSAGE_RENDERTARGET

  • D3DPOOL_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_A8R8G8B8 ou D3DFMT_X8R8G8B8

  • D3DUSAGE_RENDERTARGET

  • D3DPOOL_DEFAULT

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

S’applique à