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.
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
ouD3DFMT_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
ouD3DFMT_X8R8G8B8
D3DUSAGE_RENDERTARGET
D3DPOOL_DEFAULT
L’échantillonnage multiple est autorisé sur IDirect3DSurface9Ex
les surfaces uniquement.