begin process at 2012 05 27 20:56:11
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

OpenGL

 > DU TEXTE SUR UNE TEXTURE OPENGL

DU TEXTE SUR UNE TEXTURE OPENGL


 Information sur la source

Note :
8,33 / 10 - par 3 personnes
8,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :OpenGL Classé sous :texture, texte, opengl, win32 Niveau :Initié Date de création :02/07/2005 Vu / téléchargé :6 203 / 452

Auteur : Arnaud16022

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

 Description

Cliquez pour voir la capture en taille normale
Attention code non portable, win32 uniquement. si quelqu'un sait le porter a Linux (au minimum) je suis preneur, je n'attends que ca

ce code sert a créer une texture openGL avec du texte dessus...atention contrairement a certains codes existantson ne fait pas un copier-coller de caracreres venant d'une texture de 1Mo sur le disque. tout est créé dynamiquement, de maniere tres simple pour l'utilisateur.
le but, a terme,de toutes mes sources a venir, est d'éviter de charger a partir du disque le maximum de fichiers
cela se fera au détriment du temps de chargement, mais ca je m'en fiche (pour ce que je veux faire)


 Conclusion

c'est sur ce code qu'est basé mes prochaines sources mais je peux pas encore les poster elles sont pas finies
ps: vous verrez je me suis pas foulé pour l'affichage ^^ le but était de montrer l'utilisation du .h

 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 OCCLUSION QUERY
Source avec Zip Source avec une capture FENÊTRE DE DEBUG GTK+ POUR OPENGL
Source avec Zip FÊTES SUR LE BUREAU
Source avec Zip Source avec une capture EFFET 3D SUR TEXTE OPENGL
Source avec Zip Source avec une capture UNE VACHE. UN TRAMPOLINE. ENSEMBLE, ILS COMBATTENT LE CRIME.

 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

 Sources en rapport avec celle ci

Source avec Zip CHARGEMENT DES TEXTURES EN OPENGL par Jackyzgood
Source avec Zip Source avec une capture EDITEUR DE MAP 2D ISOMÉTRIQUE par F0ra
Source avec Zip Source avec une capture DEMO 4K AVEC OPENGL ET L'API WIN32 par XT95
Source avec Zip 3DS FILES VIEWER par hibi
Source avec Zip DOOM LIKE EN OPENGL EN LANGAGE C AVEC LA BIB GLUT par kled

Commentaires et avis

Commentaire de Taranael le 02/07/2005 14:00:04

Pour ce qui est de la source j'ai pas encore jeté un oeil mais en regardant la capture d'écran j'ai pas pu m'empêcher de rire en voyant le nom de la fenêtre :D
Je vais aller jeter un oeil dans le code voir si c'est de mon niveau parce que pour la qualité je me fais pas trop de soucis :D
++ Taranael

Commentaire de NoRabbit le 02/07/2005 17:58:42

sympa

Commentaire de Arnaud16022 le 02/07/2005 19:53:43

qu'est-ce qu'il a la nom de la fenetre? je vais qd meme pas m'embeter a retaper tout le basecode chaque fois! celui de NeHe est pas mal fait du tout et comme ya un wizard pour VC6 en 2 clics le projet est créé!
++
ad

Commentaire de T_Mehdi le 02/07/2005 19:53:59

Comme tu chercher un code 100% portable en voila un qui utilise la lib opengl+devil(pour le chargement des texture)

#ifndef _Text_H_
#define _Text_H_
extern ProWiz::MainApp* GAME;
extern bool STATE[10];
namespace ProWiz
{
namespace IO
{
class GuiText

{

UINT Tbase;
public :


int Font;

void BuildFont(int X_Axes=15, int Y_Axes=0,int SizeOfFont=20) // Creé notre list de caractaire depuis bmp
{
float cx;
float cy;

Tbase=glGenLists(256); // Creé 256 Display Lists
glBindTexture(GL_TEXTURE_2D,Font);
for (UINT loop=0; loop<256; loop++) // Boucle 256 (Lists)
{
cx=float(loop%16)/16.0f;// Position X du Caracter
cy=float(loop/16)/16.0f;// Position Y du Caracter

glNewList(Tbase+loop,GL_COMPILE);//Commence la creation de la list
glBegin(GL_QUADS); // Utilisé un Carré pour chaque caractaire
glTexCoord2f(cx,1-cy-0.0525f);
glVertex2i(0,0);
glTexCoord2f(cx+0.0625f,1-cy-0.0625f);
glVertex2i(SizeOfFont,0);
glTexCoord2f(cx+0.0625f,1-cy);
glVertex2i(SizeOfFont,SizeOfFont);
glTexCoord2f(cx,1-cy);
glVertex2i(0,SizeOfFont);
glEnd();// Terminé le dessin du carré
glTranslated(X_Axes,Y_Axes,0);//Espace entre chaque caractére
glEndList();// Terminé le dessin de la list
}
}

void KillFont(GLvoid)
{
glDeleteLists(Tbase,256); // Efface les 256 lists
}

void PrintText(PWI_Point2D Position, char *String, PW_Color4 Color,bool Blood,bool Transparent=false)
{
glBindTexture(GL_TEXTURE_2D,Font);// applique Texture de font

glTranslated(Position.X,Position.Y,0);// Position le Texte
glListBase(Tbase-32+(128*Blood));//Choix du Fonts Normal->0 Gras->1


if (Transparent==true)
{
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE);
}
Color.SetColor();

glCallLists(strlen(String),GL_BYTE,String); // Ecrire le texte

if(STATE[ProWiz::State::BLENDING]==false)glDisable(GL_BLEND);

}


};

}
}
#endif

Commentaire de Arnaud16022 le 02/07/2005 20:43:16

heu ...
^^
t'as pas tout compris la :D
1 -> je ne veux pas de Devil ni d'aucune autre lib de chargement
2 -> ton code n'a rien a voir avec Devil
3 -> ton code n'a rien a voir avec ce qui est pas portable
4 -> a peu de choses pres j'ai déja ce code
5 -> c'est d'ailleurs le code basique, que j'ai évité dans cette source, de Nehe, pour ce genre de chose, ce qui te ramene a la présentation de cette source
6 -> merci qd meme :D
++
ad

Commentaire de T_Mehdi le 02/07/2005 21:37:15

we c vraie j'ai juste copiez coller la classe pour l'affichage du texte donc (pour ce qui est du devil c vraie j'ai pas f attention je croyai que je lavait inseré^^)

Commentaire de kortin le 04/07/2005 09:24:54

Pour l'instant, j'ai vu un seul projet qui affiche du texte sans bitmap. Vous pouvez le trouvez le trouver dans glut : glut\progs\demos\ideas

Là, c'est spécial, il y a en fait la définition de chaque lettre.
exemple, la lettre a:

#include <GL/glut.h>

static float a_data[][2] = {
{5.618949, 10.261048},
{5.322348, 9.438848},
{5.124614, 10.030832},
{4.860968, 9.488181},
{4.811534, 9.932169},
{3.938208, 9.438848},
{3.658084, 9.685509},
{2.784758, 8.994862},
{2.801236, 9.175745},
{1.960865, 8.172662},
{1.186406, 7.761562},
{1.252317, 6.561151},
{0.576725, 6.610483},
{0.939238, 5.525180},
{0.164779, 4.883864},
{0.840371, 4.818089},
{0.230690, 3.963001},
{0.939238, 4.242549},
{0.609681, 3.255909},
{1.268795, 3.963001},
{1.021627, 3.075026},
{1.861998, 4.045221},
{1.829042, 3.535457},
{2.817714, 4.818089},
{3.163749, 4.998972},
{3.971164, 6.643371},
{4.267765, 6.725591},
{4.663234, 7.630010},

{5.404737, 9.734840},
{4.646756, 9.669065},
{5.108136, 8.731757},
{4.679712, 8.600205},
{4.926879, 7.564234},
{4.366632, 6.692703},
{4.663234, 5.344296},
{3.888774, 4.850976},
{4.630278, 4.094553},
{3.954686, 3.963001},
{4.828012, 3.798561},
{4.168898, 3.321686},
{5.157569, 3.864337},
{4.514933, 3.091470},
{5.553038, 4.045221},
{5.305870, 3.634121},
{5.932029, 4.176773},

};

void draw_a(void) {

    glBegin(GL_TRIANGLE_STRIP);
glVertex2fv(a_data[0]);
glVertex2fv(a_data[1]);
glVertex2fv(a_data[2]);
glVertex2fv(a_data[3]);
glVertex2fv(a_data[4]);
glVertex2fv(a_data[5]);
glVertex2fv(a_data[6]);
glVertex2fv(a_data[7]);
glVertex2fv(a_data[8]);
glVertex2fv(a_data[9]);
glVertex2fv(a_data[10]);
glVertex2fv(a_data[11]);
glVertex2fv(a_data[12]);
glVertex2fv(a_data[13]);
glVertex2fv(a_data[14]);
glVertex2fv(a_data[15]);
glVertex2fv(a_data[16]);
glVertex2fv(a_data[17]);
glVertex2fv(a_data[18]);
glVertex2fv(a_data[19]);
glVertex2fv(a_data[20]);
glVertex2fv(a_data[21]);
glVertex2fv(a_data[22]);
glVertex2fv(a_data[23]);
glVertex2fv(a_data[24]);
glVertex2fv(a_data[25]);
glVertex2fv(a_data[26]);
glVertex2fv(a_data[27]);
    glEnd();

    glBegin(GL_TRIANGLE_STRIP);
glVertex2fv(a_data[28]);
glVertex2fv(a_data[29]);
glVertex2fv(a_data[30]);
glVertex2fv(a_data[31]);
glVertex2fv(a_data[32]);
glVertex2fv(a_data[33]);
glVertex2fv(a_data[34]);
glVertex2fv(a_data[35]);
glVertex2fv(a_data[36]);
glVertex2fv(a_data[37]);
glVertex2fv(a_data[38]);
glVertex2fv(a_data[39]);
glVertex2fv(a_data[40]);
glVertex2fv(a_data[41]);
glVertex2fv(a_data[42]);
glVertex2fv(a_data[43]);
glVertex2fv(a_data[44]);
    glEnd();

    glBegin(GL_LINE_STRIP);
glVertex2fv(a_data[0]);
glVertex2fv(a_data[2]);
glVertex2fv(a_data[4]);
glVertex2fv(a_data[6]);
glVertex2fv(a_data[8]);
glVertex2fv(a_data[10]);
glVertex2fv(a_data[12]);
glVertex2fv(a_data[14]);
glVertex2fv(a_data[16]);
glVertex2fv(a_data[18]);
glVertex2fv(a_data[20]);
glVertex2fv(a_data[22]);
glVertex2fv(a_data[24]);
glVertex2fv(a_data[26]);
glVertex2fv(a_data[27]);
glVertex2fv(a_data[25]);
glVertex2fv(a_data[23]);
glVertex2fv(a_data[21]);
glVertex2fv(a_data[19]);
glVertex2fv(a_data[17]);
glVertex2fv(a_data[15]);
glVertex2fv(a_data[13]);
glVertex2fv(a_data[11]);
glVertex2fv(a_data[9]);
glVertex2fv(a_data[7]);
glVertex2fv(a_data[5]);
glVertex2fv(a_data[3]);
glVertex2fv(a_data[1]);
    glEnd();

    glBegin(GL_LINE_STRIP);
glVertex2fv(a_data[28]);
glVertex2fv(a_data[30]);
glVertex2fv(a_data[32]);
glVertex2fv(a_data[34]);
glVertex2fv(a_data[36]);
glVertex2fv(a_data[38]);
glVertex2fv(a_data[40]);
glVertex2fv(a_data[42]);
glVertex2fv(a_data[44]);
glVertex2fv(a_data[43]);
glVertex2fv(a_data[41]);
glVertex2fv(a_data[39]);
glVertex2fv(a_data[37]);
glVertex2fv(a_data[35]);
glVertex2fv(a_data[33]);
glVertex2fv(a_data[31]);
glVertex2fv(a_data[29]);
    glEnd();

}

Autant dire que ce n'est pas la meilleur façon de programmer ça.            

Commentaire de Arnaud16022 le 04/07/2005 13:35:19

wow !
vi effectivement ^^ c'est un peu bourrin je trouve ^^

Commentaire de T_Mehdi le 04/07/2005 15:11:24

mdr :D,la variable a_data conteint les donné d'une image bmp ^^ donc ca revien au meme.

Commentaire de kortin le 06/07/2005 09:19:16

Je me demande si il est possible de creer une serie de fonctions qui affichent du texte à partir des fichiers .ttf contenu dans c:\winnt.
Je pense que ce serait faisable sous windows. Par contre sous linux, je ne sais pas comment ça se passe. J'aimerai bien être fixé pour savoir si ça vaut le coup d'essayer. Quelqu'un est au courant ?

Commentaire de Arnaud16022 le 06/07/2005 11:05:58

c'est faisable de toute facon, comment crois-tu que les OSes font?
c'est valable pour tous les OSes qui supportent le .ttf: pour Windows, UNIX je suis sur que c'est implémenté par défault , pour Mac aucune idée
de plus ya une lib, freetype2, qui fait ca , de maniere portable en plus, mais j'ai pas réussi a la faire marcher sinon je l'aurai utilisée.
++

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Comment afficher du texte dans un fenêtre OpenGl?? [ par mastave ] Comment afficher du texte dans un fenêtre OpenGl??Et avec un police spéciale?? texture opengl [ par lapal ] salutje dois texturer une partie d' un fond marin(celui-ci etant affiche avec pleins de petits triangles). je n'arrive pas a texturer seulement une p problème de texture opengl [ par kidpigeyre ] J'ai beau regardé je ne trouve pourquoi l'affichage de ma texture ne marche pas, Pouvez-vous m'aider?J'ai commenté au max mon projet pour qu'il soit c lire la couleur d'un point d'une texture opengl [ par kawito ] Bonjour,j'ai crée des texture opengl a partir de fichier TGA.une fois les textures crées comment puis je reccuperer les information d'un pixel de la t texture opengl [ par smoove5198 ] bonjour, me suis remi sur un petit projet utilisant opengl et en essayant d'afficher des textures j'ai eu aucun résultat... mon problème c'est que je [WIN32]Histoires de couleurs... [ par Jeffray ] Bonjour,Je créé 2 edit à l'aide de CreateWindowEx() en readonly (style ES_READONLY).Jusqu'à maintenant, la couleur de fond de ces 2 edit était grise.M Couleur et texture en opengl [ par smoove5198 ] bonjour, je suis un peu newbie en opengl et je n'ai toujours pas bien compris comment faire pour colorer les objets qu'on affiche sans que cela influ Coloration de texte dans un EDIT (API WIN32) [ par Nebula ] Tout est dit dans le sujet...Petites précisions : je ne travaille qu'en C, et j'aimerais savoir si la chose est possible, car les RICHEDIT sont (beauc Coloration de texte dans un EDIT (API WIN32) [ par Nebula ] ---Hum, apparemment mon premier post n'est pas passé, je retente le coup !---Tout est dit dans le sujet...Petites précisions : je ne travaille qu'en C Texte en OpenGL [ par Zyvon ] HelloJe fais un quake-like et je cherche a afficher du texte en haut a gauche de ma fenetre (genre munitions par ex.)Je parviens a afficher du texte m


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

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,530 sec (4)

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