2010-03-03 1 views
3

Je travaille sur une application C# qui doit utiliser Direct3D dans un contrôle dans un formulaire Windows, ET (en même temps) en plein écran sur un moniteur secondaire. Fondamentalement, je veux une application Windows Forms sur un écran avec une interface utilisateur pour contrôler les graphiques, et je voudrais montrer des graphiques de prévisualisation dans un petit contrôle, et fullgreen graphiques fullgreen megafancy fullscreen sur un secondaire moniteur.C#: Direct3D dans un contrôle, ET plein écran sur un moniteur secondaire - quelle est la meilleure façon?

Quelle est la meilleure façon d'aborder cela?

(Par exemple, je sais que XNA peut rendre dans un contrôle Windows Forms, mais est-il possible d'ajouter ensuite une fenêtre plein écran sur un autre moniteur aussi bien?)

Répondre

0

Vous ne pouvez pas avoir une vraie fullscreen comme ça (aussi loin que je me souvienne), mais vous pouvez faire une fenêtre sans bordure que vous pouvez ensuite faire aussi grand que l'écran lui-même. Il semblera comme si son plein écran, mais vous souffrira toujours des pénalités de performance en mode fenêtré. (ils sont acceptables)

1

AFAIK la seule manière de faire ceci est de créer 2 Direct3DDevices complets. Vous en créez un en mode plein écran sur le moniteur 2, puis vous créez l'autre en tant que périphérique fenêtré normal. Cela devrait faire ce que vous voulez. Soyez averti, cependant, que vous ne serez pas en mesure de partager des ressources entre les deux appareils ~ (Ils devront être créés sur chacun) et que les performances seront pires que d'avoir 2 chaînes d'échange en plein écran sur un seul appareil.

1

Je sais que vous avez dit Windows Forms, mais je vais quand même vous suggérer d'utiliser WPF. L'avantage est que vous serez en mesure d'utiliser la même technologie pour les deux fenêtres. WPF est un très bon remplacement pour les formes de fenêtres traditionnelles. Cela vous stimule également à concevoir de meilleures solutions avec une meilleure séparation du modèle et de la vue. D'autre part, WPF est tout rendu au-dessus de directx. Il vous offre un joli moteur 3D où vous pouvez facilement mettre en œuvre toutes sortes de choses, pour quelques exemples, jetez un oeil sur les liens suivants:

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

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

Questions connexes