D3DImage.SetBackBuffer Método

Definición

Asigna una superficie de Direct3D como origen del búfer de reserva.

Sobrecargas

Nombre Description
SetBackBuffer(D3DResourceType, IntPtr)

Asigna una superficie de Direct3D como origen del búfer de reserva.

SetBackBuffer(D3DResourceType, IntPtr, Boolean)

Asigna una superficie de Direct3D como origen del búfer de reserva.

SetBackBuffer(D3DResourceType, IntPtr)

Asigna una superficie de Direct3D como origen del búfer de reserva.

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)

Parámetros

backBufferType
D3DResourceType

Tipo de superficie direct3D. Debe ser un valor válido D3DResourceType.

backBuffer
IntPtr

nativeint

Superficie de Direct3D que se va a asignar como búfer de reserva.

Atributos

Excepciones

No D3DImage ha sido bloqueado por una llamada a los Lock() métodos o TryLock(Duration) .

backBufferType no es un valor válido D3DResourceType.

Los parámetros de creación para backBuffer no cumplen los requisitos de - backBufferTypeo-El backBuffer dispositivo no es válido.

Ejemplos

En el ejemplo de código siguiente se muestra cómo llamar al SetBackBuffer método para asignar una superficie de Direct3D. Para obtener más información, vea Tutorial: Hospedaje de contenido de Direct3D9 en 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();

Comentarios

Llame al SetBackBuffer método para asignar una superficie de Direct3D al búfer de reserva.

Nota:

El rendimiento depende en gran medida de la configuración de la superficie de Direct3D. Para obtener más información, vea Consideraciones de rendimiento para la interoperabilidad de Direct3D9 y WPF.

Llamar a la SetBackBuffer(D3DResourceType, IntPtr) sobrecarga es idéntica a llamar a la SetBackBuffer(D3DResourceType, IntPtr, Boolean) sobrecarga con el enableSoftwareFallback parámetro establecido falseen . Cuando se llama a SetBackBuffer(D3DResourceType, IntPtr) o llama SetBackBuffer(D3DResourceType, IntPtr, Boolean) con el enableSoftwareFallback parámetro establecido falseen , el sistema de representación libera su referencia al búfer de reserva cuando el búfer frontal deja de estar disponible y no se muestra nada. Cuando el búfer frontal está disponible de nuevo, el sistema de representación genera el IsFrontBufferAvailableChanged evento para notificar a su aplicación WPF. Puede crear un controlador de eventos para el evento IsFrontBufferAvailableChanged que reinicie la representación con una superficie de Direct3D válida. Para reiniciar la representación, debe llamar a SetBackBuffer.

En la lista siguiente se muestra la configuración necesaria del búfer de reserva para el IDirect3DSurface9 tipo .

  • D3DFMT_A8R8G8B8 o D3DFMT_X8R8G8B8

  • D3DUSAGE_RENDERTARGET

  • D3DPOOL_DEFAULT

Solo se permite el muestreo múltiple en IDirect3DSurface9Ex superficies.

Consulte también

Se aplica a

SetBackBuffer(D3DResourceType, IntPtr, Boolean)

Asigna una superficie de Direct3D como origen del búfer de reserva.

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)

Parámetros

backBufferType
D3DResourceType

Tipo de superficie direct3D. Debe ser un valor válido D3DResourceType.

backBuffer
IntPtr

nativeint

Superficie de Direct3D que se va a asignar como búfer de reserva.

enableSoftwareFallback
Boolean

true para revertir a la representación de software; de lo contrario, false.

Atributos

Comentarios

Cuando se llama a la SetBackBuffer(D3DResourceType, IntPtr) sobrecarga o se llama a la SetBackBuffer(D3DResourceType, IntPtr, Boolean) sobrecarga con el enableSoftwareFallback parámetro establecido en false, el sistema de representación libera su referencia al búfer trasero cuando el búfer frontal deja de estar disponible y nada se muestra. Cuando el búfer frontal está disponible de nuevo, el sistema de representación genera el IsFrontBufferAvailableChanged evento para notificar a su aplicación WPF. Puede crear un controlador de eventos para el evento IsFrontBufferAvailableChanged que reinicie la representación con una superficie de Direct3D válida. Para reiniciar la representación, debe llamar a SetBackBuffer.

Cuando se llama SetBackBuffer(D3DResourceType, IntPtr, Boolean) con el enableSoftwareFallback parámetro establecido trueen , el sistema de representación conserva su referencia al búfer de reserva cuando el búfer frontal deja de estar disponible, por lo que no es necesario llamar SetBackBuffer a cuando el búfer frontal está disponible de nuevo. Puede haber situaciones en las que el dispositivo del usuario deje de estar disponible. Cuando esto ocurre, llame SetBackBuffer a para liberar la referencia de WPF al búfer de reserva. Si necesita restablecer el dispositivo, llame SetBackBuffer a con establecido nullen backBuffer y vuelva a llamar SetBackBuffer a con establecido en backBuffer una superficie de Direct3D válida.

En la lista siguiente se muestra la configuración necesaria del búfer de reserva para el IDirect3DSurface9 tipo .

  • D3DFMT_A8R8G8B8 o D3DFMT_X8R8G8B8

  • D3DUSAGE_RENDERTARGET

  • D3DPOOL_DEFAULT

Solo se permite el muestreo múltiple en IDirect3DSurface9Ex superficies.

Se aplica a