IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Comment essayer de comprendre ce code source ?


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 234
    Par défaut Comment essayer de comprendre ce code source ?
    Salut,

    Voici le lien vers un "renderer" pour un shooter assez connu. Il s'agit plus précisement d'une dll qui permet d'afficher en opengl.

    http://cwdohnal.home.mindspring.com/...utglr34src.zip

    Ma question c'est de savoir ou débuter pour mieux comprendre ce code source. Je ne demande pas des explications complètes mais juste quelques indices sur les include au début et sur les fonctions à partir de "OpenGLDrv" dans le fichier cpp.

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Bonjour,
    Pourrais-tu extraire les parties qui te pose problème. Je ne suis pas sûr que tu trouves beaucoup de volontaire pour éplucher plus de 15 000 lignes de code

  3. #3
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 635
    Par défaut
    Salut,

    Ce que tu peux déjà faire, c'est générer une documentation utilisateur de la dll.

    Tu peux - par exemple - utiliser doxygen à cette fin

    Grace à la doc, tu auras déjà beaucoup plus facile à repérer les différentes classes et les relations qui existent entre elles.

    L'étape suivante sera de t'habituer aux services que peuvent rendre toutes ces classes, et cela se fera en comprenant ce que sont sensées faire leurs différentes méthodes publiques (en espérant que les noms des méthodes soient suffisemment explicites)

    Comme il semblerait qu'il y a énormément de definition préprocesseur, il sera ensuite plus que temps d'au moins apprendre les valeurs de celles que tu devra utiliser, non pas les valeurs qu'elles représentent, mais bel et bien l'usage auquel elles sont destinées.

    Encore une fois, il faudra espérer que les noms soient suffisemment explicites

    Un petit tour du coté des typedef te permettra de te rendre compte du type réel qui est représenté par ces alias de types.

    Enfin, il sera utile de chercher à te rappeler de ce qui est déclaré dans quel fichier, afin de pouvoir gérer sereinement tes inclusions.

    Tout cela devrait pouvoir t'aider à démarrer *plus ou moins* facilement avec ta dll, et la doc correspondante sera générée (si tu le configure correctement) automatiquement par doxygen
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  4. #4
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 234
    Par défaut
    koala, merci pour l'utilitaire et pour les conseils. Je vais passer la source à la moulinette pour voir si j'y comprends quelque chose.

    Pour expliquer ma démarche, je me suis lancé un défi de modifier la source de sorte que les textures ne soient pas affichées et remplacer ca par une couleur solide. Par la suite, j'aimerais modifier le rendu de sorte qu'un ton de gris spécifique soit affiché selon la distance au spectateur, le but étant de créer un genre d'alpha channel.

    Citation Envoyé par 3DArchi Voir le message
    Bonjour,
    Pourrais-tu extraire les parties qui te pose problème. Je ne suis pas sûr que tu trouves beaucoup de volontaire pour éplucher plus de 15 000 lignes de code
    A vrai dire, je n'ai pas encore eu le temps de tout parcourir (ce seras pour ce weekend ou les congés de toussaint). Mais ta réaction me rassure dans le sens où je trouve que le code est assez long et qu'il est difficile d'y voir clair.

    Pourtant, quelqu'un y est bien arrivé car il s'agit ici d'une dll mise à jour par un particulier qui exploite mieux les cartes graphiques dernière génération. Peut être aurais-je plus facile à décortiquer la version originale qui a été produite en 2002.

Discussions similaires

  1. Comprendre le code source de jQuery
    Par boboss123 dans le forum jQuery
    Réponses: 2
    Dernier message: 02/04/2013, 09h33
  2. [Installation] comment installer SVN à partir de code source sous Debian
    Par bliml dans le forum Subversion
    Réponses: 1
    Dernier message: 23/08/2007, 08h05
  3. Comment extraire le chemin du code source ?
    Par elsouljacker dans le forum Langage
    Réponses: 9
    Dernier message: 13/04/2007, 16h29
  4. Comment interdir l'affichage du code source d'un site ?
    Par jj del amorozo dans le forum Sécurité
    Réponses: 10
    Dernier message: 14/03/2006, 16h23
  5. [Juridique] Comment réutiliser le code source d'une classe ?
    Par mathieu dans le forum Général Java
    Réponses: 8
    Dernier message: 17/05/2004, 13h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo