D3DImage.SetBackBuffer Метод

Определение

Назначает поверхность Direct3D в качестве источника заднего буфера.

Перегрузки

Имя Описание
SetBackBuffer(D3DResourceType, IntPtr)

Назначает поверхность Direct3D в качестве источника заднего буфера.

SetBackBuffer(D3DResourceType, IntPtr, Boolean)

Назначает поверхность Direct3D в качестве источника заднего буфера.

SetBackBuffer(D3DResourceType, IntPtr)

Назначает поверхность Direct3D в качестве источника заднего буфера.

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)

Параметры

backBufferType
D3DResourceType

Тип поверхности Direct3D. Должен быть допустимым D3DResourceType.

backBuffer
IntPtr

nativeint

Поверхность Direct3D, назначаемая в качестве обратного буфера.

Атрибуты

Исключения

Не D3DImage был заблокирован вызовом Lock() или TryLock(Duration) методами.

backBufferType не является допустимым D3DResourceType.

Параметры создания для backBuffer не соответствуют требованиям для backBufferTypeустройства -or-The backBuffer device недействителен.

Примеры

В следующем примере кода показано, как вызвать метод для назначения поверхности SetBackBuffer Direct3D. Для получения дополнительной информации см. пошаговое руководство по размещению содержимого Direct3D9 в 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();

Комментарии

SetBackBuffer Вызовите метод для назначения поверхности Direct3D обратному буферу.

Note

Производительность значительно зависит от параметров поверхности Direct3D. Дополнительные сведения см. раздел Соображения по производительности для интеграции Direct3D9 и WPF.

Вызов перегрузки идентичен вызову SetBackBuffer(D3DResourceType, IntPtr) перегрузки с заданным параметромSetBackBuffer(D3DResourceType, IntPtr, Boolean)enableSoftwareFallback.false При вызове или вызове SetBackBuffer(D3DResourceType, IntPtr)SetBackBuffer(D3DResourceType, IntPtr, Boolean)enableSoftwareFallback с заданным параметром falseсистема отрисовки освобождает ссылку на задний буфер, когда передний буфер становится недоступным, и ничего не отображается. Когда фронтальный буфер снова доступен, система отрисовки вызывает IsFrontBufferAvailableChanged событие для уведомления вашего приложения WPF. Вы можете создать обработчик событий для события, IsFrontBufferAvailableChanged чтобы повторно перезапустить отрисовку с допустимой поверхностью Direct3D. Чтобы перезапустить отрисовку, необходимо вызвать SetBackBuffer.

В следующем списке показаны необходимые параметры буфера задней IDirect3DSurface9 части для типа.

  • D3DFMT_A8R8G8B8 или D3DFMT_X8R8G8B8

  • D3DUSAGE_RENDERTARGET

  • D3DPOOL_DEFAULT

Мультисамплинг разрешен только на IDirect3DSurface9Ex поверхностях.

См. также раздел

Применяется к

SetBackBuffer(D3DResourceType, IntPtr, Boolean)

Назначает поверхность Direct3D в качестве источника заднего буфера.

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);
[<System.Security.SecurityCritical>]
member this.SetBackBuffer : System.Windows.Interop.D3DResourceType * nativeint * bool -> unit
Public Sub SetBackBuffer (backBufferType As D3DResourceType, backBuffer As IntPtr, enableSoftwareFallback As Boolean)

Параметры

backBufferType
D3DResourceType

Тип поверхности Direct3D. Должен быть допустимым D3DResourceType.

backBuffer
IntPtr

nativeint

Поверхность Direct3D, назначаемая в качестве обратного буфера.

enableSoftwareFallback
Boolean

true чтобы вернуться к отрисовке программного обеспечения; falseв противном случае .

Атрибуты

Комментарии

При вызове SetBackBuffer(D3DResourceType, IntPtr) перегрузки или вызове SetBackBuffer(D3DResourceType, IntPtr, Boolean) перегрузки с enableSoftwareFallback заданным параметром falseсистема отрисовки освобождает ссылку на задний буфер, когда передний буфер становится недоступным, и ничего не отображается. Когда фронтальный буфер снова доступен, система отрисовки вызывает IsFrontBufferAvailableChanged событие для уведомления вашего приложения WPF. Вы можете создать обработчик событий для события, IsFrontBufferAvailableChanged чтобы повторно перезапустить отрисовку с допустимой поверхностью Direct3D. Чтобы перезапустить отрисовку, необходимо вызвать SetBackBuffer.

При вызове SetBackBuffer(D3DResourceType, IntPtr, Boolean) с enableSoftwareFallback набором trueпараметров система отрисовки сохраняет свою ссылку на задний буфер, когда передний буфер становится недоступным, поэтому при повторной доступности переднего буфера не требуется вызывать SetBackBuffer . Могут возникнуть ситуации, когда устройство пользователя становится недоступным. При этом вызовите SetBackBuffer ссылку WPF на обратный буфер. Если необходимо сбросить устройство, вызов SetBackBuffer с backBuffer заданным значениемnull, а затем снова SetBackBuffer вызов backBuffer с установленным допустимым поверхностью Direct3D.

В следующем списке показаны необходимые параметры буфера задней IDirect3DSurface9 части для типа.

  • D3DFMT_A8R8G8B8 или D3DFMT_X8R8G8B8

  • D3DUSAGE_RENDERTARGET

  • D3DPOOL_DEFAULT

Мультисамплинг разрешен только на IDirect3DSurface9Ex поверхностях.

Применяется к