TutorielsVous débutez ? C'est ici qu'on commence !
Mon compte
Recherche
Livre d'or
PublicitéVous devez être inscrit pour pouvoir poster des messages
| Page : 1 2 Suivante | |||||||
| Auteur | Message | ||||||
|---|---|---|---|---|---|---|---|
| 1 visiteur sur ce sujet (1 anonyme) | |||||||
| Page : 1 2 Suivante | |||||||
Yno
|
# Posté le 07/06/2007 à 13:43:49 | ||||||
SCE![]() Groupe : Membres |
Bonjour à toutes et à tous,
Suite à la création de la FAQ C et de son rapide enrichissement en questions/réponses sur les bibliothèques tierces, nous avons décidé de créer une FAQ spécialement dédiée à celles-ci. Dans ce sujet seront regroupées les questions concernant les bibliothèques suivantes :
Avant de créer un sujet pour poser une question sur l'une des bibliothèques énumérées ci-dessus, merci de bien vouloir vérifier qu'elle n'a pas déjà été traitée dans cette FAQ, cela permettra de faire gagner du temps à tout le monde. FAQsOpenGL
SDL
GTK+
Pour participerAjout de question/réponseVous avez une idée de question/réponse ? Vous pouvez bien entendu participer à l'évolution de cette FAQ en postant une nouvelle réponse. Pour cela, je vous demanderai de bien vouloir respécter le format suivant : Code : Zcode
Exemple : Citation : Exemple de question/réponse [SDL][1] Comment initialiser la SDL ? Il faut utiliser la fonction SDL_Init(). Veuillez également désactiver votre signature svp, cela augmenterait la lisibilité de cette FAQ. Si votre question/réponse est un minimum correct, elle sera bien sûr ajoutée à la liste ci-dessus, avec nos remerciements ![]()
Édité
le 20/09/2008 à 02:05:50
par Yno
|
||||||
Kevin Leonhart
|
# Posté le 07/06/2007 à 13:48:32 | ||||||
![]() Groupe : Membres |
[OpenGL][1] Qu'est-ce qu'OpenGL ?
OpenGL est une API graphique programmée en langage C permettant de développer aussi bien des applications 2D que 3D. Créé par la société Silicon Graphics, OpenGL est la version "open-specifications" de l'avant dernière version de GL (par exemple si GL est en version 2.2, alors OpenGL est en version 2.1). OpenGL ne doit pas être confondu avec ce que l'on appelle un moteur 3D (ou moteur graphique), ce n'est pas la même chose, OpenGL est une API bas niveau. OpenGL présente le grand avantage d'être une API portable et simple à manipuler, ce qui fait qu'elle est très utilisée chez les programmeurs souhaitant s'initier à la programmation 3D. Ce qui ne l'empèche pas d'être également très utilisée dans le monde professionnel, notamment dans les logiciels d'imagerie médicale mais aussi dans des logiciels de modélisation 3D, comme Blender ou encore Maya. Dans quels autres projets a-t-il été utilisé ?
Dans plusieurs jeux multiplate-forme. Des jeux libres comme Nexuiz ou Quake3, mais aussi commerciaux comme les très connus Doom3 et Quake4. Liens relatifs :
Édité
le 08/06/2007 à 13:18:29
par Kevin Leonhart
|
||||||
Yno
|
# Posté le 07/06/2007 à 13:50:01 | ||||||
SCE![]() Groupe : Membres |
[OpenGL][2] Comment installer OpenGL ?
OpenGL ne s'installe pas, vous l'avez normalement d'office avec votre système d'exploitation. Si vous souhaitez développer avec OpenGL, votre EDI quel qu'il soit vous fourni normalement les fichiers de développement nécessaires. Avec Visual Studio, vous aurez besoin d'installer le Platform SDK. Sous Linux, vous aurez probablement besoin d'installer les fichiers de développement MESA : Code : Console sudo apt-get install mesa-dev
|
||||||
Kevin Leonhart
|
# Posté le 07/06/2007 à 13:52:31 | ||||||
![]() Groupe : Membres |
[OpenGL][3] Où trouver de la documentation de référence sur OpenGL ?
Sur le site d'OpenGL : http://www.opengl.org/sdk/docs/man/xhtml/ |
||||||
Yno
|
# Posté le 07/06/2007 à 13:54:29 | ||||||
SCE![]() Groupe : Membres |
[OpenGL][4] Où trouver des tutoriels sur OpenGL ?
|
||||||
Kevin Leonhart
|
# Posté le 07/06/2007 à 13:57:27 | ||||||
![]() Groupe : Membres |
[OpenGL][5] Qu'est-ce que les extensions d'OpenGL ?
Votre implémentation d'OpenGL ne pouvant être mise à jour, il a fallu trouver une astuce pour que vous puissez bénéficier des mises à jour de l'API, cette astuce s'appelle les extensions. Il y a de fortes chances pour que votre implémentation soit en version 1.1, mais aujourd'hui OpenGL étant en version 2.1, vous allez devoir passer par les extensions pour pouvoir bénéficier des ajouts apportés à l'API depuis sa version 1.1. Les extensions représentant le seul moyen d'évolution d'OpenGL, il est important de les normer. La normalisation des extensions d'OpenGL était assurée jusqu'à présent par l'ARB, mais c'est maintenant Khronos Group qui s'en occupe. Liens relatifs :
Édité
le 07/06/2007 à 13:58:33
par Kevin Leonhart
|
||||||
Yno
|
# Posté le 07/06/2007 à 13:58:21 | ||||||
SCE![]() Groupe : Membres |
[OpenGL][6] Comment mettre à jour ma version d'OpenGL ?
Voir : qu'est-ce que les extensions d'OpenGL ?
Édité
le 10/06/2007 à 07:45:57
par Yno
|
||||||
Kevin Leonhart
|
# Posté le 07/06/2007 à 14:08:00 | ||||||
![]() Groupe : Membres |
[OpenGL][7] Comment utiliser OpenGL dans mes programmes ?
Afin de fonctionner, OpenGL doit avoir un contexte, il vous faut donc avant toute chose créer celui-ci. En règle général, il vous est impossible de créer un contexte OpenGL de façon portable, en effet, vous devrez utiliser le gestionnaire de fenêtres de votre système d'exploitation, WGL sous Windows, et GLX pour le gestionnaire de fenêtres X Window (Linux & MacOS). Toutefois, il existe des bibliothèques portables vous permettant de vous simplifier la vie, qui se chargeront pour vous de la création d'un contexte OpenGL. Il en existe plusieurs très connues :
La pratique utilisant la SDL est présentée dans le tutoriel de Kayl du Site du Zér0. La bibliothèque GLUT n'est plus maintenue à jour, son utilisation est donc déconseillée. Liens relatifs :
Avec l'aimable participation de : - scriptoff
Édité
le 13/02/2008 à 18:08:48
par Kevin Leonhart
|
||||||
Yno
|
# Posté le 07/06/2007 à 14:08:52 | ||||||
SCE![]() Groupe : Membres |
[OpenGL][8] Mes polygones se rentrent dedans en scintillant, que se passe-t-il ?
Si vous avez un problème comparable à ce qui se passe en bas de cette image : ![]() alors vous avez certainement un problème lié à la profondeur. Un problème de profondeur est causé par un depth-buffer (ou Z-buffer) mal réglé. Deux possibilités :
Édité
le 07/06/2007 à 14:18:36
par Yno
|
||||||
Kevin Leonhart
|
# Posté le 07/06/2007 à 14:14:25 | ||||||
![]() Groupe : Membres |
[OpenGL][9] Ma texture est toute blanche lorsque je l'affiche, que faire ?
Votre texture n'est pas blanche en réalité, c'est simplement que son chargement a échoué, et donc la couleur de votre polygone texturé est celle par défaut : le blanc. Le chargement d'une texture peut échouer pour plusieurs raisons :
Édité
le 01/01/2008 à 11:15:27
par Kevin Leonhart
|
||||||
Yno
|
# Posté le 07/06/2007 à 14:16:07 | ||||||
SCE![]() Groupe : Membres |
[OpenGL][10] Comment changer la couleur de fond ?
La "couleur de fond" par défaut est le noir. En fait, cette couleur est la couleur de vidange par défaut de votre tampon de couleur, et il vous est bien sûr possible de la modifier. Pour cela, utilisez glClearColor(), cette fonction attend quatre valeurs flottantes situées entre 0 et 1 inclus : Code : C glClearColor(R, G, B, A);
Ainsi, les prochains appels à glClear() vidangeront votre tampon de couleur avec la couleur que vous aurez spécifiée à glClearColor(). Notez que l'alpha n'influera pas sur la transparence de votre fenêtre.
Édité
le 20/06/2007 à 19:35:54
par Yno
|
||||||
GuilOooo
|
# Posté le 07/06/2007 à 14:21:35 | ||||||
PriPrOTtTt§!!!§![]() Groupe : Membres |
[SDL][1] Comment faire pour gérer plusieurs événements claviers en même temps ?
Plus généralement, pour gérer le clavier, il existe 2 possibilités. La première c'est celle qu'enseigne m@teo21 dans son cours : Code : C switch(evt.type) Cette méthode consiste en 1° récupérer un événement 2° Voir s'il ne s'agit pas d'un appui de touche 3° Réagir selon la touche appuyée.
{ switch(evt.key.keysym.sym) { case SDLK_q: /* ... */ break; /* ... */ } } La deuxième méthode, c'est d'utiliser un tableau de booléens. En gros, on a un tableau d'int, dont chaque int correspond à une touche. Donc si l'int de, mettons, la touche 'q' est égal à 1, la touche est enfoncée. Ainsi, on peut gérer, par exemple, les touches maintenues enfoncées sans EnableKeyRepeat, ou encore gérer 2 touches maintenues enfoncées en même temps. OK C'est cool et ton tableau je l'obtiens comment ? Comme ceci :Code : C/* Je vous passe le début de main */ Après, à vous de gérer. Mais, de cette manière, si l'utilisateur enfonce 'o' et 'h' pendant longtemps, vous pourrez gérer sans aucun problème les deux.
while(continuer) { /* Uint8 est environ égal à unsigned int, c'est un type défini par la SDL. Le paramètre de cette fonction se laisse généralement à NULL, et elle retourne notre fameux tableau. */ Uint8 *touches = SDL_GetKeyState(NULL); /* On n'a plus qu'a tester si telle où telle touche est enfoncée : */ if(touches[SDLK_q]) continuer = 0; if(touches[SDLK_UP]) positionPerso.y--; //imaginaire... }
Édité
le 07/06/2007 à 14:25:50
par GuilOooo
|
||||||
GuilOooo
|
# Posté le 07/06/2007 à 14:26:04 | ||||||
PriPrOTtTt§!!!§![]() Groupe : Membres |
[SDL][3] Comment lire l'animation d'un GIF animé avec la SDL ?
Directement, c'est impossible. Il faut séparer les différentes images de l'animation, puis toutes les charger, et les blitter les unes après les autres pour donner une illusion d'animation. Petit exemple : Code : C //Pour une animation de 4 images : SDL_Surface *animation[4]; gif[0] = IMG_Load("image1.png"); gif[1] = IMG_Load("image2.png"); /* [...] */ /* Je vous passe les tests pour voir si l'image à été chargée et tout le reste du programme, vous êtes grands :) .*/ while(continuer) //On arrive à la boucle évènementielle { /* [...] */ /*Nombre de secondes écoulées depuis le lancement du programme*/ Uint32 temps = SDL_GetTicks() / 1000; /*Blittage d'une image du tableau en fonction du temps écoulé. */ SDL_BlitSurface(gif[temps%4], NULL, ecran, &position); } Ici, on s'est basé sur le temps pour savoir laquelle des quatre images blitter. On a utilisés un modulo pour obtenir une valeur qui rentre dans le tableau, et on a blitté l'image correspondante. Il existe bien sûr d'autres façons de faire, mais c'est pour vous donner une idée
edit pour yno : c'est vrai, merci.
Édité
le 07/06/2007 à 14:44:36
par GuilOooo
|
||||||
Kevin Leonhart
|
# Posté le 07/06/2007 à 14:26:18 | ||||||
![]() Groupe : Membres |
[SDL][2] Mes appels à SDL_GL_SetAttribute() sont ignorés, pourquoi ?
Les appels à SDL_GL_SetAttribute() doivent être faits avant la création du contexte OpenGL, soit avant SDL_SetVideoMode(..., SDL_OPENGL). Pourquoi ?
Car SDL_GL_SetAttribute() permet en général d'initialiser des états qui ne peuvent être changés une fois le contexte créé. (taille des tampons, multi-sampling, ...)
Édité
le 07/06/2007 à 14:27:12
par Kevin Leonhart
|
||||||
GuilOooo
|
# Posté le 07/06/2007 à 14:29:03 | ||||||
PriPrOTtTt§!!!§![]() Groupe : Membres |
[SDL][4] Pourquoi le 2e paramètre de SDL_BlitSurface est-il toujours NULL ? A quoi sert-il ?
Il n'est pas toujours NULL. Ce 2e paramètre est, comme le 4e, un SDL_Rect. Vous vous souvenez du 4e paramètre ? Il sert à dire sur quelle partie de l'écran on blitte la surface. Ben, le 2e, c'est le contraire : il sert à dire quelle partie de la surface on blitte sur l'écran. Par exemple, si vous voulez, mettons, prendre une surface, et ne blitter que la moitié droite de celle-ci, vous allez créer un SDL_Rect qui englobe la moitié droite de la surface, et faire un SDL_BlitSurface en passant comme 2e paramètre l'adresse de ce SDL_Rect. Notez que vous pouvez utiliser le 2e et le 4e paramètre en même temps : c'est très utile pour programmer le défilement d'une map par exemple (pour les maps plus grandes que l'écran). En faisant des tests et jouant un peu avec le 2e et le 4e paramètre de BlitSurface, vous devriez trouver comment on code ça .
Édité
le 07/06/2007 à 14:44:22
par GuilOooo
|
||||||
Yno
|
# Posté le 07/06/2007 à 14:33:13 | ||||||
SCE![]() Groupe : Membres |
<délestage>
Pensez à marquer en <déléstage> les messages de la FAQ C
Édité
le 10/06/2007 à 07:47:36
par Yno
|
||||||
Kevin Leonhart
|
# Posté le 07/06/2007 à 14:40:58 | ||||||
![]() Groupe : Membres |
[SDL][5] Comment faire fonctionner la SDL et GTK+ ? (Windows et Linux)
voici un lien vers la réponse : http://gtk.developpez.com/faq/?page=gtksdl
Édité
le 07/06/2007 à 21:10:06
par Kevin Leonhart
|
||||||
Ismus
|
# Posté le 07/06/2007 à 20:27:12 | ||||||
J'aime le sang :p![]() Groupe : Membres |
[SDL][6] Comment avoir son propre curseur personnalisé ?
Il existe plusieurs façons pour effectuer cette opération. La solution la plus portable et celle qui donnera le meilleur résultat est de définir une surface "mouse" qui contiendra l'image de la souris. Voici les fragments de code substantielles pour avoir son propre curseur : On commence par désactiver le curseur par défaut : Code : C
Puis, on charge une surface qui sera notre souris : Code : C
Et pour finir, on récupère la position de la surface et on fait un rendu : Code : C
Voici le lien d'un exemple complet.
Édité
le 19/09/2008 à 21:06:16
par Ismus
|
||||||
Kevin Leonhart
|
# Posté le 07/06/2007 à 20:59:23 | ||||||
![]() Groupe : Membres |
[GTK+][1] Qu'est-ce que GTK + ?
GTK+ (The GIMP Tool Kit) est un ensemble de bibliothèques logicielles, c'est-à-dire un ensemble de fonctions informatiques, développé originellement pour les besoins du logiciel de traitement d'images The GIMP. GTK+ est également utilisé pour le développement des environnements de bureau GNOME, Xfce et ROX. GTK+ est libre (licence GNU LGPL) et multi-plateforme. Lien relatifs : |
||||||
Ismus
|
# Posté le 07/06/2007 à 21:32:53 | ||||||
J'aime le sang :p![]() Groupe : Membres |
[GTK+][2] Pourquoi un + derrière GTK ?
Le + derrière GTK sert à faire la distinction entre la version original de GTK et la nouvelle version. On peut considérer ceci comme une mise en valeur de la version originale de GTK à laquelle ont été ajoutées des caractéristiques orientées objets.
Édité
le 19/09/2008 à 21:07:31
par Ismus
|
||||||
Yno
|
# Posté le 07/06/2007 à 21:38:54 | ||||||
SCE![]() Groupe : Membres |
<délestage>
Pourquoi ne pas fusionner les questions 1 et 2 de GTK+ ?
Édité
le 09/06/2007 à 22:50:57
par Yno
|
||||||
Ismus
|
# Posté le 07/06/2007 à 21:42:36 | ||||||
J'aime le sang :p![]() Groupe : Membres |
<delestage>
Personnellement, je ne suis pas trop pour cette idée... Je trouve que les questions sont assez différents pour qu'on les sépare. D'autre part, c'est vrai qu'il ne serait pas tout à fait faux de fusionner ces questions ... Vote Blanc
Édité
le 08/06/2007 à 20:45:19
par Ismus
<< L'expérience est une bougie qui n'éclaire que celui qui la tient >>IBA Graphics 1.0 : Logiciel TERMINE : bientôt sur le SdZ ! IBA Graphics 1.1 : 3,6% ||||||||||||||| Correction des différentes fautes orthographiques et grammaticales. ![]() ![]() |
||||||
guimers8
|
# Posté le 07/06/2007 à 22:05:55 | ||||||
Cocoa/ObjC![]() Groupe : Membres |
<délestage>
Je suis pour. D'ailleurs, il faudrait que tu explique avec tes mots, en citant, pas que tu donne juste la traduction française du texte. Ismus, pas de signature sur les articles de la FAQ stp. Edit : Oui, les signatures dans ce topic sont à proscrire. Ça prend de la place, et c'est inutile. Ici, seul le contenu a sa place. (tu voit que j'ai pas de signature là)
Édité
le 08/06/2007 à 17:11:33
par guimers8
|
||||||
Ismus
|
# Posté le 07/06/2007 à 22:12:45 | ||||||
J'aime le sang :p![]() Groupe : Membres |
<delestage>
Citation : guimers8 Je suis pour. D'ailleurs, il faudrait que tu explique avec tes mots, en citant, pas que tu donne juste la traduction française du texte. Ok je vais reformer tout ça demain ![]() Citation : guimers8 Ismus, pas de signature sur les articles de la FAQ stp. Compris
Édité
le 13/11/2007 à 16:27:28
par Ismus
<< L'expérience est une bougie qui n'éclaire que celui qui la tient >>IBA Graphics 1.0 : Logiciel TERMINE : bientôt sur le SdZ ! IBA Graphics 1.1 : 3,6% ||||||||||||||| Correction des différentes fautes orthographiques et grammaticales. ![]() ![]() |
||||||
guimers8
|
# Posté le 07/06/2007 à 22:17:52 | ||||||
Cocoa/ObjC![]() Groupe : Membres |
[GTK+][3] Comment installer GTK+ pour developper ?
Par "bibliothèque GTK+", on désigne en fait tout un framework, formé des bibliothèques suivantes :
Chacune de ces bibliothèque a une fonction bien particulière dans l'ensemble, consultez la documentation pour plus d'informations. Les paquets de développement sont disponibles pour la plupart des distributions GNU/Linux, MacOSX via le projet Fink, et Windows. Sinon, vous pouvez aussi compiler les sources vous-même (elles sont disponibles sur le site officiel). Il existe de nombreux tutos sur le net, pour vous aider dans l'installation, qui peut paraitre complexe à certain. Il y en a un ici même sur le Site du Zér0.
Édité
le 10/06/2007 à 00:36:33
par guimers8
|
||||||
guimers8
|
# Posté le 10/06/2007 à 00:34:56 | ||||||
Cocoa/ObjC![]() Groupe : Membres |
[GTK+][4] Où trouver la documentation de référence pour GTK+ ?
La documentation de référence pour GTK+, et ses bibliothèques connexes, est disponible sur le site du projet GNOME, section développeurs. Voiçi en gros à quoi correspond chaque bibliothèque :
Les documentations sont à visiter impérativement avant de poser une question. Je vous conseille aussi de prendre un peu de temps, pour vous balader dedans, vous apprendrez plein de choses, et vous pourrez même découvrir des fonctionnalités dont vous ignoriez l'existence.
|
||||||
scriptoff
|
# Posté le 10/06/2007 à 09:29:09 | ||||||
While I breath , I hope![]() Groupe : Membres |
|||||||
Ismus
|
# Posté le 10/06/2007 à 10:08:47 | ||||||
J'aime le sang :p![]() Groupe : Membres |
<delestage>
Édité
le 13/11/2007 à 16:27:58
par Ismus
<< L'expérience est une bougie qui n'éclaire que celui qui la tient >>IBA Graphics 1.0 : Logiciel TERMINE : bientôt sur le SdZ ! IBA Graphics 1.1 : 3,6% ||||||||||||||| Correction des différentes fautes orthographiques et grammaticales. ![]() ![]() |
||||||
guimers8
|
# Posté le 10/06/2007 à 14:14:21 | ||||||
Cocoa/ObjC![]() Groupe : Membres |
<délestage>
J'ai fait exprès de l'omettre, y compris ATK, parce qu'on aura beaucoup moins souvent besoin de ces bibliothèques directement. En général, on a juste besoin d'une fonction qui est citée dans une autre doc (ex: la GDK cite la doc de Gdk-Pixbuf). Après ça fait trop je trouve
Au fait Ismus, le + il est derrière GTK, pas devant !
Édité
le 10/06/2007 à 14:15:43
par guimers8
|
||||||
Yno
|
# Posté le 13/06/2007 à 01:01:34 | ||||||
SCE![]() Groupe : Membres |
[OpenGL][11] Comment afficher des images 2D par dessus un rendu 3D ?
Il est bien sûr possible de dessiner sur l'écran en "mode 2D" comme avec la SDL, après un rendu 3D, pour afficher des informations comme le nombre de vies restantes, etc... Pour cela, il vous faut reconfigurer votre matrice de projection en perspective cavalière, ou mode "ortho", puis dessiner les objets (généralement munis de textures pour obtenir un plus joli rendu) qui devront être rendus "à plat" sur l'écran. La théorie de la technique est la suivante :
Et en pratique, ça donne ça : Code : C
On suppose ici que W et H sont, respectivement, la largeur et la hauteur de votre fenêtre de rendu.
Édité
le 03/05/2008 à 17:46:51
par Yno
|
||||||
Retour au forum "Langage C" ou à la liste des forums
Vous devez être inscrit pour pouvoir poster des messages
Changer de design |
En savoir plus |
Plan du site |
Politique d'accessibilité |
Règles |
RSS tutoriels |
RSS news
Édité par Simple IT SARL :
Nous contacter
| Notre blog | Revue de presse | Publicité
Y'a plus rien à lire, faut remonter maintenant !
Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.
531 Zéros connectés |
6 requêtes |
0.0373s (0.0143s)
