D3DImage.SetBackBuffer Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Asigna una superficie de Direct3D como origen del búfer de reserva.
Sobrecargas
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 la superficie de Direct3D. Debe ser un tipo D3DResourceType válido.
- backBuffer
-
IntPtr
nativeint
Superficie de Direct3D que se va a asignar como búfer de reserva.
- Atributos
Excepciones
D3DImage no se ha bloqueado mediante una llamada al método Lock() o TryLock(Duration).
backBufferType
no es un D3DResourceType válido.
Los parámetros de creación para backBuffer
no cumplen los requisitos de backBufferType
-o-El dispositivo backBuffer
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, consulte Tutorial: Hospedar contenido 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, consulte Consideraciones de rendimiento para la interoperabilidad entre 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 en false
. Cuando se llama SetBackBuffer(D3DResourceType, IntPtr) a o llama SetBackBuffer(D3DResourceType, IntPtr, Boolean) con el enableSoftwareFallback
parámetro establecido en false
, 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 evento IsFrontBufferAvailableChanged para notificar a la aplicación WPF. Puede crear un controlador de eventos para que el evento IsFrontBufferAvailableChanged reinicie la representación de nuevo 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 de búfer de reserva necesaria para el IDirect3DSurface9
tipo .
D3DFMT_A8R8G8B8
oD3DFMT_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 la superficie de Direct3D. Debe ser un tipo D3DResourceType válido.
- backBuffer
-
IntPtr
nativeint
Superficie de Direct3D que se va a asignar como búfer de reserva.
- enableSoftwareFallback
- Boolean
true
para revertir en la representación de software; si no, false
.
- Atributos
Comentarios
Cuando se llama a la sobrecarga SetBackBuffer(D3DResourceType, IntPtr) o se llama a la sobrecarga SetBackBuffer(D3DResourceType, IntPtr, Boolean) con el parámetro enableSoftwareFallback
establecido en false
, 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 evento IsFrontBufferAvailableChanged para notificar a la aplicación WPF. Puede crear un controlador de eventos para que el evento IsFrontBufferAvailableChanged reinicie la representación de nuevo 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 en true
, 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 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 backBuffer
establecido en null
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 de búfer de reserva necesaria para el IDirect3DSurface9
tipo .
D3DFMT_A8R8G8B8
oD3DFMT_X8R8G8B8
D3DUSAGE_RENDERTARGET
D3DPOOL_DEFAULT
Solo se permite el muestreo múltiple en IDirect3DSurface9Ex
superficies.