begin process at 2012 02 10 06:03:59
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Multimédia

 > EXEMPLE D'AFFICHAGE MULTIPLATEFORME D'UN TRIANGLE (DIRECTX ET OPENGL)

EXEMPLE D'AFFICHAGE MULTIPLATEFORME D'UN TRIANGLE (DIRECTX ET OPENGL)


 Information sur la source

Note :
Aucune note
Catégorie :Multimédia Classé sous :opengl, directx, multiplateforme, windows, linux Niveau :Initié Date de création :22/01/2008 Vu / téléchargé :5 691 / 219

Auteur : Zacks

Ecrire un message privé
Site perso
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

 Description

Cette étude personnelle est développée en C++. Les API DirectX et OpenGL sont utilisées. La source est compilable à la fois sur Windows (via Visual Studio 2005, ainsi DirectX ou OpenGL peut-être utilisé avec une gestion de la fenêtre grâce aux libs de windows) et sur d'autres plateforme (testé sur Linux : Ubuntu 7.10, ainsi OpenGL est utilisé avec une gestion de la fenêtre grâce à la lib GLUT). Je n'ai pas voulu utiliser SDL, ce qui permet de s'affranchir de programmes externes.
(FreeGLUT a été utilisé pour remplacer GLUT)

Il n'y a aucune modification à apporter au code pour compiler l'ensemble sur visual studio 2005 ou par g++.

Historique :

22-01-2008 ::: Création du projet OGL/DX multi-plateformes


 Conclusion

Au final, on obtient un tas de #ifdef _WINDOWS... Ce qui est assez redondant mais nécessaire.
Un autre problème beaucoup plus embêtant est l'utilisation de GLUT. C'est une bibliothèque développée en C, ce qui pose donc quelques inconvénients quand à la modélisation du rendu sous forme de classes : glut nécessite de faire appel à des fonctions globales effectuant le rendu.
glutReshapeFunc(reshape);
glutDisplayFunc(d raw);

Ces deux méthodes prennent une fonction en paramètre, et on ne peut les remplacer par des méthodes de classe. Il faut donc créer deux fonctions globales appelant les méthodes des diverses classes.

Je suis donc en train de réfléchir à une meilleur solution que GLUT pour le développement sous linux (ou d'autres plateformes).

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources de la même categorie

Source avec Zip ADAPTER LES TEMPS DE SUBTITLES DE SOUS TITRAGE ENTRE DEUX LA... par berrami
Source avec Zip Source avec une capture DÉTECTION DE VISAGE (YEUX, NEZ, BOUCHE) AVEC OPENCV EN TEMPS... par MadM@tt
Source avec Zip Source avec une capture GÉNÉRATEUR FM EXPÉRIMENTAL par tontonCD
Source avec Zip LECTEUR MULTIMÉDIA par omegatou
Source avec Zip IMPLÉMENTATION D'UN ALGORITHME DE COMPRESSION/DECOMPRESSION ... par eemikhm

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture SOKOBAN EN C POUR DÉBUTANT (VERSION AMÉLIORÉE BASÉE SUR LE T... par eustatika
Source avec Zip [MYLIB] GESTION DE FICHIERS par Galaad2908
Source avec Zip [SDL/C++] JEU SIMPLE POUR COMMENCER DANS LA PROGRAMMATION DE... par marmous
Source avec Zip Source avec une capture OPENGL SOUS LINUX par xave4552
Source avec Zip Source avec une capture [DEV-C++] -> OPENGL : VBO'S par alpha

Commentaires et avis

Commentaire de luhtor le 22/01/2008 18:28:52

Une question et une remarque.

La question: Je me demandais quel est l'intérêt de gérer openGL et directX:
- Si on faire un soft uniquement pour windows, alors autant faire que du DirectX.
- Si on veut faire du portable, alors autant tout faire en OpenGL.
Non ?

La remarque: Ta méthode pour afficher un triangle est openGL est un peu dépassée.

Commentaire de Zacks le 22/01/2008 18:41:15

En fait, cette étude me sert de tests préliminaires pour le redéveloppement de mon moteur. A la base, il n'utilise que DirectX et ne fonctionne que sur Windows. J'ai envie d'intégrer OpenGL et de le rendre compilable multiplateforme, et ce sans utiliser SDL puisque SDL impose d'avoir une DLL en externe or mon moteur est aussi compilé sous la forme d'une bibliothèque dynamique.

Il est donc intéressant de pouvoir utiliser à la fois DirectX et OpenGL, si ce n'est pour comparer les rendus, offrir ce choix à l'utilisateur. Comme ce que font pas mal d'applications vidéo-ludiques.

Bref, vu qu'à la base je suis plutôt orienté DirectX, pourrais-tu me donner un lien pour observer la bonne méthode permettant d'afficher un triangle ? (VertexBuffers ?)

Commentaire de luhtor le 22/01/2008 18:59:42

"SDL impose d'avoir une DLL en externe or mon moteur est aussi compilé sous la forme d'une bibliothèque dynamique"
=> Avoir deux dlls, ne posent un pb particulier ?

"si ce n'est pour comparer les rendus"
=> Les rendus sont censés être rigoureusement équivalent: la somme et le produit de deux nombres fera tjs le meme résultat sous DirectX ou OpenGL (heureusement) et comme la 3D, ca ne se résume qu'a ca...

"la bonne méthode permettant d'afficher un triangle (VertexBuffers ?)"
=> Oui, il s'agit simplement d'utiliser le meme principe que DirectX.
http://www.g-truc.net/article/vbo-fr.pdf

Commentaire de Zacks le 22/01/2008 21:08:28

Pour SDL, ça fait un truc de moins à distribuer et je suis un peu plus propriétaire du code comme ça, c'est juste une histoire de goûts. De plus, tout est installé par défaut normalement pour OpenGL et DirectX, quoiqu'il faut mettre à jour DirectX sur la machine cible suivant le SDK utilisé, c'est vrai. Le problème peut se poser pour GLUT sur Linux, mais sur la plupart des distributions il y a de quoi le gérer par défaut.
Bref juste une histoire de goûts encore une fois.

Je te remercie pour tes critiques, j'ai justement posté ces sources pour ça. Je cherche tout de même à garder une compatibilité OpenGL et DirectX sur Windows. Peut-être vais-je abandonner l'idée de compiler sous Linux, puisque des softs comme Wine gèrent très bien l'émulation windows. Je réfléchis donc à un bon compromis pour redévelopper mon moteur.

Je te remercie de même pour le cours que tu m'as donné. Le problème avec le net, c'est qu'on trouve bien souvant de la documentation qui n'est plus à jour depuis pas mal de temps. Et la plupart des sites les plus connus proposent encore de développer avec OpenGL de la même manière que j'ai procédé. Je savais que le système de VB et IB existait aussi sur OGL mais je n'étais pas tombé sur de la bonne documentation à ce propos.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Linux questions facile [ par xarier ] -------------salut tout le monde comme vous savez tous opengl est multiplate form alors il existe des library qui le rend portable ma question et tout problème avec devc++ opengl windows [ par Dyr3e ] bonjour j'aimerai créer une application openGL sous windows mais compatible Linux, du coup je voudrais eviter les déclaration de windows qui Apprendre les sockets en C (multiplateforme) [ par nikoland ] Bonjour,J'aimerais apprendre la programmation des sockets en C. Auriez-vous quelques liens de référence à m'indiquer ?J'aimerais si possible des sourc Création d'un projet compilable sous windows et linux [ par BloP68 ] Salut a vous....Donc voila je vais exposer mon probleme : Dans le cadre d'un projet de cour je dois creer une appli (un client mail pour être plus pré Création du jeu DirectX ou/et OpenGL [ par nico1610 ] Bonjour à tous, je me présente, Je m'appel Nicolas alias "=SG-Pro= ergo" je fais (à ce titre) parti de l'exélente teams Stargate-Pro et nous sommes à Problèmes de Création de Threads Windows/Linux [ par LaKiks51 ] Bonjour Le but est de savoir combien de threads peuvent etre executer simultanément c'est à dire que j'ai un executable qui réalise une opération pe pb avec windows.h sous linux [ par mattpss ] Salut,Je suis actuellement en 2eme année de bts informatique. J'aimerais Executer un programme sous eclipse mais dans mon programme j'utilise la bibli Pour windows, les APIs mais pour LINUX c'est quoi? [ par ndubien ] Bonjour,Je me pose une question que je pense interressante :Sachant que les APIs sont spécifiques à Windows.Quel est l'équivalent d'une API pour Linu Dll sous Linux et Windows [ par alexatique ] Bonjour,Voilà, j'arrive à réaliser des dlls sous windows à l'aide de visual studio.J'arrive également à faire un programme qui appelle cette dll.Mais Portabilité [ par Arnauti ] Bonjour, j'ai réalisé un petit programme sur l'algorithme d'Euclide. Jusque là tout va bien. Cependant, j'ai un probleme de portabilité windows/linux


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,936 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales