begin process at 2012 05 27 17:34:46
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

OpenGL

 > [OPENGL] LOADER XPM: TEXTURES DANS L'EXE

[OPENGL] LOADER XPM: TEXTURES DANS L'EXE


 Information sur la source

Note :
8 / 10 - par 1 personne
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :OpenGL Niveau :Initié Date de création :13/11/2004 Vu / téléchargé :5 321 / 308

Auteur : Funto66

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

 Description

Cliquez pour voir la capture en taille normale
Le format XPM est un format d'image texte, qui est en fait une source C.
XPM signifie X PixMap; il a été créé à la base pour les icônes sous les environnements X-Window.

L'avantage, c'est que l'on peut écrire une ligne du style :
#include "mon_image.xpm"
dans son code :) Cela nous donne accès à une variable static char* mon_image_xpm[] qui contient les informations nécessaires à l'utilisation de l'image.

Dans ce code, j'ai créé une classe capable, à partir de la variable static char* image_xpm[], de créer une texture OpenGL.

Le but est de pouvoir créer des programmes OpenGL utilisant des textures qui ne soient pas externes à l'exécutable : tout est dans l'exe !

Par contre, un défaut du format XPM est qu'il utilise un système de "colormap", ce qui n'est pas adapté du tout aux photographies. Avec des images de type photographies, qui contiennent bcp de couleurs différentes, le loader devient affreusement lent :( (si quelqu'un a une idée pour optimiser...je pense en avoir une mais bon de toutes façons je pense que je créerai un autre système que le XPM :)).

Pour ceux qui auraient déjà vu ma source Loader TGA, c'est presque le même système (j'ai modifié la source en fait ^^).

Bref voilà je pense avoir dit ce qui en valait la peine; pour le reste, Cf les sources.

Dernier truc : main.cpp n'est qu'un exemple simplifié de l'utilisation de la classe XPMDataLoader; s'il y a des variables globales, que le code est moche...etc c'est normal ^^ Si par contre c'est XPMDataLoader qui ne va pas bien, là signalez-le moi svp ;)

Ah oui un autre truc : si jamais vous l'utilisez dans un de vos projets, dites-le moi avant (il n'y a cependant aucune obligation, mais ça fait toujours plaisir ;)).

Ah ben non encore un truc que j'ai oublié de dire (décidément :p) : pour créer des images XPM, le mieux est d'utiliser GIMP 2, j'ai testé mon loader avec ce qu'il exporte et ça marche nickel :) Sinon y'a aussi ma source Alpha Edit ou celle de fredcl, XpmConvert.



 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 du même auteur

Source avec Zip Source avec une capture GÉNÉRATEUR DE LIGHTMAPS À PARTIR D'UNE HEIGHTMAP
Source avec Zip CHARGER UNE DLL DYNAMIQUEMENT (PORTABLE)
Source avec Zip Source avec une capture LECTEUR VIDEO OPENGL
Source avec Zip Source avec une capture HEIGHTMAP OPENGL
Source avec Zip Source avec une capture ALPHA EDIT 3.5 (OUTIL POUR OPENGL)

 Sources de la même categorie

Source avec Zip Source avec une capture AFFICHER DES COURBES DE BEZIER par shorzy
Source avec Zip Source avec une capture BASE/MOTEUR 3D EN QT/OPENGL (COMPLET ET FONCTIONNEL!) POUR U... par envi33
Source avec Zip Source avec une capture CLASSE AVEC OPENGL - OBJETS 3D ET ANIMATIONS par rasta63
Source avec Zip Source avec une capture LETTRES 3D AVEC OPENGL ET QT par opossum_farceur
Source avec Zip CUBE 3D GLUT32 VC++ ET DEVC++ par bobby03

Commentaires et avis

Commentaire de gimli123 le 13/11/2004 22:32:15

Salut, ça à l'air très interressant, même si je ne suis pas encore au niveaux ou j'aurai besoin d'utiliser ce système ^^
Bonne prog ;)

Commentaire de Arnaud16022 le 13/11/2004 23:25:15

ahah encore un super loader!
tu te déchaines funto ;)
bon je pense pas qu'il servira autant que ton mondialement connu tgaloader mais qu'est-ce que ca change hein?
Le format de fichier est bizarre...et ya un probleme (petit et je ne suis pas sur): dans un éditeur de textes on peur jamais mettre une ligne de plus de 1024 caracteres. je sais pas si c'est du au format de fichier ou au bloc-notes (je penche plutot vers le bloc note ;) )
mais comme chaque ligne commence pas ':' ca voudrait dire que la plus grande largeur c'est 512?? dis moi que non :)
c'est intelligent, le "static char * coucou_xpm[] = {...}" mais c'est bon que pour des progs genre démos pasque pour un vrai jeu on peut pas se permettre un truc comme ca; mais c'est dans cette optique que tu as fait ca je pense.

bon en fait c'est trop bien comme prog.  :p
surtout que la source est minuscule, ca j'aime ;)

Commentaire de Funto66 le 14/11/2004 00:35:11

Content de voir que ça plaît :)
Pour le format, normalement on doit bien pouvoir dépasser les 1024 de dimensions, je ne vois pas où l'on devrait être limité...
A mon avis comme tu dis ce doit être une limitation du bloc-notes; faut pas oublier que pour les fichiers .txt trop importants on est obligés d'utiliser au moins WordPad ^^

En fait la seule véritable limitation de ce format je trouve, à part la taille que prend un fichier comme ça (encore que dans l'exe ça doit en prendre moins), c'est l'utilisation de colormaps (comme pour le GIF je crois d'ailleurs).
Je ferai une version avec un format perso en true colors je pense un jour :)

Commentaire de Arnaud16022 le 14/11/2004 19:44:08

true colors? mais autant cpoier-coller un bmp dans un xpm alors!

Commentaire de patemino le 16/11/2004 22:02:54

Hey Funto tu aimes bien les formats d'image n'est-ce pas!
- la video en jpeg
- le tga
- le xpm
Wow !
Bon pour parler bien,
je trouve ça bien que tu gardes un schéma similaire entre tes classes loaders ( tga et xpm )!

Commentaire de Funto66 le 16/11/2004 22:17:30

Oué ça me plaît les formats d'image :) Et j'ai pas fini je pense ;)

Sinon pour ce que tu dis Arnaud : j'ai dit true colors mais attention, j'ai pas dit que je ne compressais pas; en fait je me verrais bien un format texte avec une compression RLE, facultative (à la façon TGA), et en RGB ou RGBA, au choix.
Une fois dans l'exe ça prendra moins de place qu'un fichier BMP n'en prendrait tout seul, vu que tout le texte aura disparu avec la compilation, pour ne laisser plus que les données elles-mêmes (le static char* image[]) ^^

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,842 sec (3)

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