C #: Direct3D в элементе управления и полноэкранный режим на дополнительном мониторе - как лучше? - PullRequest
3 голосов
/ 04 марта 2010

Я работаю над приложением C #, которому нужно использовать Direct3D в элементе управления в форме окна, И (одновременно) полноэкранный режим на дополнительном мониторе.

По сути, мне нужно приложение Windows Forms на одном экране с пользовательским интерфейсом для управления графикой, и я хотел бы показывать превью-графику в небольшом элементе управления и полномасштабном суперпользователе. Полноэкранная графика MegaFancy на дополнительном мониторе.

Какой лучший способ подойти к этому?

(Например, я знаю, XNA может отображаться в элементе управления Windows Forms, но возможно ли добавить полноэкранное окно и на другом мониторе?)

Ответы [ 3 ]

1 голос
/ 10 марта 2010

AFAIK единственный способ сделать это - создать 2 полных Direct3DDevices. Вы создаете один как полноэкранный на мониторе 2, а затем вы создаете другой как обычное оконное устройство. Это должно делать то, что вы хотите. Имейте в виду, однако, что вы не сможете совместно использовать ресурсы между двумя устройствами ~ (их нужно будет создавать на каждом) и что производительность будет хуже, чем при наличии двух полноэкранных цепочек обмена на одном устройстве.

1 голос
/ 15 марта 2010

Я знаю, что вы сказали Windows Forms, но я все равно предложу вам использовать WPF. Преимущество заключается в том, что вы сможете использовать одну и ту же технологию для обоих окон.

WPF - очень хорошая замена для традиционных форм окон. Это также стимулирует вас разрабатывать лучшие решения с лучшим разделением модели и вида.

С другой стороны, все WPF отображаются поверх directx. Он предоставляет вам хороший 3D-движок, в котором вы можете легко реализовать все виды вещей, для некоторых примеров посмотрите на следующие ссылки:

http://www.codegod.de/webappcodegod/render-3ds-3d-models-with-wpf-and-xaml-AID433.aspx

http://www.wpftutorial.net/IntroductionTo3D.html

0 голосов
/ 08 марта 2010

Вы не можете иметь настоящий полноэкранный режим (насколько я помню), но вы можете сделать окно без рамки, которое вы можете сделать таким же большим, как сам экран. Он будет выглядеть как полноэкранный, но вы по-прежнему будете страдать от снижения производительности в оконном режиме. (они приемлемы)

...