D3DImage используя DX10 - PullRequest
       8

D3DImage используя DX10

9 голосов
/ 10 августа 2009

Можно ли использовать DirectX 10 (я использую SlimDX) с WPF D3DImage? Единственные примеры и документы, которые я могу найти, показывают только с использованием поверхностей DX9.

Ответы [ 3 ]

8 голосов
/ 07 мая 2010

Да, вы можете использовать DirectX 10, 11 и DirectWrite, используя D3DImage в WPF, создав целевую поверхность рендеринга как общую, а затем создав текстуру DX9 на основе этого общего дескриптора текстуры для использования в WPF.

Это означает, что по сути вы можете использовать 10, 11 и DirectWrite так же, как вы используете DX9 без дополнительных накладных расходов и без проблем с воздушным пространством.

Пример проекта WPF с интеграцией DX9, DX10, DX11 и DirectWrite можно найти в этой публикации блога здесь:

http://blogs.windowsclient.net/rob_relyea/archive/2010/04/30/gizmodo-posts-wpf-direct2d-sample-wow.aspx

Microsoft Code Pack содержит тонкую управляемую оболочку для компонентов Windows 7, включая DX9, DX10, DX11 и DirectWrite, в дополнение к различным другим неуправляемым библиотекам в Windows 7.

SurfaceQueueInteropHelper - это элемент управления WPF, который управляет автоматическим созданием контекстов DX9, 10 и 11 в WPF и управлением обновлением D3DImage и различными другими аспектами системы рендеринга, включая события потери устройства.

2 голосов
/ 15 августа 2009

Не из коробки, насколько я знаю. WPF основан на DirectX, но поскольку WPF также поддерживается в Windows XP, он основан на DirectX 9.

Я знаю, что можно использовать DirectX 10 с WPF, но тогда ваше приложение не сможет работать на XP.

Существует библиотека для WPF под названием Bling, которая поддерживает DirectX 10 (в Vista и Windows 7), которая может вас заинтересовать. Вы можете найти это здесь . Я не знаю, насколько он зрелый.

Кроме того, я столкнулся с этим блогом (в основном на французском языке), в котором говорится об использовании DirectX 10 с WPF.

Наконец, есть хорошее введение в использование D3DImage с DirectX в CodeProject

Я знаю, что это не совсем отвечает на ваш вопрос, но я все равно поделился этим с вами. Желаем удачи.

1 голос
/ 03 февраля 2011

Если вы хотите использовать SlimDX для вызовов DirectX, вы можете попробовать SlimDXControl (slimdxcontrol.codeplex.com) - это элемент управления содержимым WPF, который я написал и который явно поддерживает только D3D10 вместо '9.

-mpg

...