Le rendu graphique en C#
Est-il une autre façon pour le rendu graphique en C# au-delà de GDI+ et XNA?
(Pour le développement d'un éditeur de niveau.)
David, viens de remarquer votre question "Comprendre les Pointeurs". La grande question, de grandes réponses! Tous les points mentionnés dans ce post applique également à mon "dangereux" réponse ci-dessous.
OriginalL'auteur David McGraw | 2008-09-12
Vous devez vous connecter pour publier un commentaire.
SDL.NET est la solution que j'ai appris à aimer. Si vous avez besoin de la 3D sur le dessus de cela, vous pouvez utiliser Tao.OpenGL pour le rendu de l'intérieur. C'est rapide, standard de l'industrie (SDL, qui est), et de croix-plateforme.
Ils ont déplacé leur wiki, de sorte que le lien ne fonctionne plus. Juste goto cs-sdl.sourceforge.net et accédez à partir de là
OriginalL'auteur Cody Brocious
Oui, j'ai écrit un contrôle Windows Forms qui encapsule DirectX 9.0 et contient des pixels de niveau de la manipulation de la vidéo de la surface.
J'ai en fait écrit un autre post sur un Débordement de Pile demander s'il existe d'autres approches mieux: Dangereux C# et des pointeurs pour le rendu 2D, bon ou mauvais?
Alors qu'il est relativement haute performance, il exige de l'insécurité compilateur option, car elle utilise des pointeurs pour accéder à la mémoire de manière efficace. D'où la raison de ce post.
C'est un niveau élevé de la procédure:
Microsoft DirectX assemblée.
(fenêtré, de retour de mise en mémoire tampon, etc.) vous avez besoin d'.
mode d'affichage actuel (bits par pixel).
Lock
le backbufferde surface et de stocker le pointeur retourné le début de surface
mémoire.
les données basées sur la surface de la hauteur,
bits par pixel et le réel x/y du pixel de coordonnées.
Unlock
le tampon d'arrière-plan de la surface. Présent à la surface.Être conscient que la prise de cette approche, vous devez être très prudent sur la façon de vérifier le mode d'affichage actuel (hauteur et nombre de bits par pxiel) de la surface de la cible. Aussi, vous aurez besoin d'avoir une stratégie en place pour faire face avec le redimensionnement de la fenêtre ou de changement de format de l'écran alors que votre programme est en cours d'exécution.
OriginalL'auteur Ash
Géré DirectX (Microsoft.DirectX espace de noms) pour accélérer les graphismes en 3D. C'est un solide .NET wrapper sur DirectX API, qui vient avec un peu de performances pour la création .NET des objets et de l'ordonnancement. À moins que vous écrivez toutes les fonctionnalités modernes moteur 3D, cela fonctionnera très bien.
Fenêtre Presentation Foundation (WPF) (Windows.Les médias de l'espace de noms), le meilleur choix pour les graphiques 2D. A aussi de la 3D capacités. Visant à remplacer les Fenêtres de Formes vectorielles, l'accélération matérielle indépendante de la résolution-cadre. Très pratique, prend en charge plusieurs saveurs de contrôles personnalisés, des ressources, de la liaison de données, des événements et des commandes... a aussi quelques WTFs. La vitesse est généralement plus rapide que la GDI et plus lent que DirectX, et dépend de la façon dont vous faites les choses (vu quelque chose de travailler à 60 fois plus rapide après la réécriture d'une manière sensible). Nous avons eu une mise en œuvre réussie de 3 1280x1024 écrans complète en temps réel des indicateurs, des graphiques et des parcelles sur un seul (et pas le meilleur) PC.
OriginalL'auteur ima
Vous pourriez essayer de regarder dans WPF, à l'aide de Visual Studio et/ou de l'Expression Blend. Je ne suis pas sûr de savoir comment sophistiqué que vous essayez d'obtenir, mais il doit être capable de gérer un simple éditeur. Découvrez ce Article MSDN pour plus d'info.
OriginalL'auteur tbreffni
Vous devriez regarder dans le Le caire bibliothèque graphique. Le Mono projet a des bindings pour C#.
OriginalL'auteur AngelBlaZe
Le caire est une option. Je suis en train de réécrire mon logiciel de cartographie à l'aide de deux GDI+ et le Caire. Il a une tuile générateur de carte, parmi les autres caractéristiques.
OriginalL'auteur Igor Brejc