PB OPENGL et mon application WIN32

PB OPENGL et mon application WIN32 - C - Programmation

Marsh Posté le 30-01-2004 à 19:20:24    

salut a tous dabord bonjour car suis tout nouveau dans ce forum... alors ma question porte sur l'OPENGL ? vous connaissez ??? alors vous m'interessez !! g repris une application VC++ en OPENGL et lorsque je la mets sur dautre Systeme d'exploitation ... oh surprise il y a des soucis d'affichage. mon application tourne bien sous WNT avec un Proc de 500MHz et une carte graphique de 8Mo et moi je dois la porter sur un PC (  tout nase !!) Proc 600MHz carte graphique S3 savage avec 4Mo. alors si vous avez des tuyaux sur les pbs entre configuration et OPENGL ben merci de men faire part !!!
voila bon pour un premier message c long  
dsl
a bientot

Reply

Marsh Posté le 30-01-2004 à 19:20:24   

Reply

Marsh Posté le 30-01-2004 à 19:21:16    

KIKOOOOOO
oui je connais un peu OPENGL
decrit voir ton PROBLEME de facon plus PRECISE sinon je pourrais pas t'aider lol ptdr rofl asv

Reply

Marsh Posté le 30-01-2004 à 19:25:03    

ben en fait dans un cas (le bon PC) jaffiche une video radar correct et dans lautre c des traits immondes ???
merci

Reply

Marsh Posté le 30-01-2004 à 19:26:05    

he ben on est pas arrivé
code ?

Reply

Marsh Posté le 30-01-2004 à 19:28:57    

ola ca c long !!!! t sur que tu le ve ???

Reply

Marsh Posté le 30-01-2004 à 19:30:10    

pas tout evidemment, la routine d'affichage

Reply

Marsh Posté le 30-01-2004 à 19:33:15    

//////////////////////////////////////////////////////
// Fonction d'affichage
// (appelée a chaque boucle evenementielle de GTK)
//////////////////////////////////////////////////////
bool expose_event (GtkWidget *widget,
     GdkEventExpose *event,
     gpointer data)
{  
 GdkGLContext *glcontext = gtk_widget_get_gl_context(widget);
 gldrawable = gtk_widget_get_gl_drawable (widget);
 
 // Pointeur sur la structure de la trame video
 FrameHeader *pFrame;  
 
 /* Initialise la zone d'affichage */
 if (flag.ini_zone) {   // si le flag ini_zone est a TRUE
  // Obligatoire pour faire le swap apres
  glBegin(NULL);
  glEnd();
 // swap des buffers d'affichage (fonction specifique a GDKGlExt)
  gdk_gl_drawable_swap_buffers (gldrawable);
 }
 // si le flag animate est a TRUE
 if(flag.animate) {  
  // Flag indiquant la lecture d'un fichier
  if (flag.fichier) {
   // Lecture d'un paquet par une fonction PCAP
  /*  Execute la fonction callback ReadPcap   */
   if (pcap_loop(fp, 1, ReadPcap, NULL) != NULL) {
    flag.fichier = FALSE;
    flag.animate = FALSE;
    flag.ini_zone = TRUE;
   }    
  }
  // Flag indiquant qu'ion utilise la liaison ethernet  
  else if  (flag.socket) {
   // Declarations pour la lecture des données reseau
   PBYTE    FrameBuffer[MAX_FRAME_LENGTH];
   int     NumBytes;
   // Lecture sur le socket
   NumBytes = UdpServer.Read (&FrameBuffer, MAX_FRAME_LENGTH, 32767);
   // erreur sur le socket
   if (NumBytes == SOCKET_ERROR) {
    // recuperation de l'erreur
    int err = WSAGetLastError ();
    // affichage du message d'erreur
    g_print("erreur systeme numero %d\n",err);
   } else {
    // pointage sur l'en-tete de trame video
    pFrame = (FrameHeader *)(FrameBuffer);
    // Affichage des données video
    ProcessFrame (NULL, pFrame);
   }
  }
  // Mise a FALSE du flag d'initialisation de l'affichage (car tracé)
  flag.ini_zone = FALSE;
 }
 else {
  gdk_gl_drawable_swap_buffers (gldrawable);
 }
 return TRUE;
}

Reply

Marsh Posté le 30-01-2004 à 19:34:09    

mais le pb doit pas venir du code mais de la configuration materiel je pense ... c t peut etre pas la bonne place mais g aussi tenter dans categorie "matos"

Reply

Marsh Posté le 30-01-2004 à 19:34:12    

ouais nan mais la t'affiche rien du tout

Reply

Marsh Posté le 30-01-2004 à 19:36:23    

j'avais en effet oublier cela ... dsl le prgm fait quand meme 10 pages
// Lecture des donnees decompressees et creation des vecteurs opengl
 for (i=1; i < (rh ->Length + 1 - (ri ->NbIffCells)*4 - sizeof(RadialInfo)) ; i++) {
  // Regarde si la video est compressée ou non
  if (rh->SubType == 0x03) {
   // Decompression des donnees (octets par octets)
   Decomp = Decompression(rj[sizeof(RadialInfo)+i-1],rj[sizeof(RadialInfo)+i-2]);
  }
  else {
   // Si les données ne sont pas compressées
   Decomp = No_Comp(rj[sizeof(RadialInfo)+i-1]);
  }
  /* Tracé en fonction de valeurs lues */
  // plusieurs 0 a la suite
  if (*Decomp==0 && *(Decomp+1)==0 && *(Decomp+2)!=0) {
   // incrementation de num_cell correspondant au nb de 0
   num_cell += *(Decomp+2);
  }
  // 2 cellules a tracer  
  else if (*Decomp!=0 && *(Decomp+1)!=0)  
  {  
   // couleur noire (pour le "lien" avec les cellules precedentes)
   glColor3d(0,0,0);  
   // trace du debut de la premiere cellule
   DrawVertex(coord_x1,coord_y1,coord_x2,coord_y2,num_cell);  
   // increment d'une cellule
   num_cell++;    
   // couleur de la premiere cellule
   glColor3d(0,*Decomp*niv_couleur+const_couleur,0);  
   // trace de la fin de la premiere cellule
   DrawVertex(coord_x1,coord_y1,coord_x2,coord_y2,num_cell);  
   // increment d'une cellule
   num_cell++;    
   // couleur de la deuxieme cellule
   glColor3d(0,*(Decomp+1)*niv_couleur+const_couleur,0);  
   // trace de la fin de la deuxieme cellule
   DrawVertex(coord_x1,coord_y1,coord_x2,coord_y2,num_cell);      
  }
  // une cellule suivie de plusieurs 0
  else if (*Decomp!=0 && *(Decomp+2)!=0)  
  {
   // noir
   glColor3d(0,0,0);  
   // trace du debut de la cellule
   DrawVertex(coord_x1,coord_y1,coord_x2,coord_y2,num_cell);  
   // increment d'une cellule
   num_cell++;      
   // couleur de la cellule
   glColor3d(0,*Decomp*niv_couleur+const_couleur,0);
   // trace de la fin de la cellule
   DrawVertex(coord_x1,coord_y1,coord_x2,coord_y2,num_cell);      
   // increment de num_cell (en fonction du nombre de 0)
   num_cell += *(Decomp+2);    
  }

Reply

Marsh Posté le 30-01-2004 à 19:36:23   

Reply

Marsh Posté le 30-01-2004 à 19:37:01    

littleboy1982 a écrit :

j'avais en effet oublier cela ... dsl le prgm fait quand meme 10 pages

Code :
  1. // Lecture des donnees decompressees et creation des vecteurs opengl
  2. for (i=1; i < (rh ->Length + 1 - (ri ->NbIffCells)*4 - sizeof(RadialInfo)) ; i++) {
  3.  // Regarde si la video est compressée ou non
  4.  if (rh->SubType == 0x03) {
  5.   // Decompression des donnees (octets par octets)
  6.   Decomp = Decompression(rj[sizeof(RadialInfo)+i-1],rj[sizeof(RadialInfo)+i-2]);
  7.  }
  8.  else {
  9.   // Si les données ne sont pas compressées
  10.   Decomp = No_Comp(rj[sizeof(RadialInfo)+i-1]);
  11.  }
  12.  /* Tracé en fonction de valeurs lues */
  13.  // plusieurs 0 a la suite
  14.  if (*Decomp==0 && *(Decomp+1)==0 && *(Decomp+2)!=0) {
  15.   // incrementation de num_cell correspondant au nb de 0
  16.   num_cell += *(Decomp+2);
  17.  }
  18.  // 2 cellules a tracer  
  19.  else if (*Decomp!=0 && *(Decomp+1)!=0)
  20.  {
  21.   // couleur noire (pour le "lien" avec les cellules precedentes)
  22.   glColor3d(0,0,0);
  23.   // trace du debut de la premiere cellule
  24.   DrawVertex(coord_x1,coord_y1,coord_x2,coord_y2,num_cell);
  25.   // increment d'une cellule
  26.   num_cell++;
  27.   // couleur de la premiere cellule
  28.   glColor3d(0,*Decomp*niv_couleur+const_couleur,0);
  29.   // trace de la fin de la premiere cellule
  30.   DrawVertex(coord_x1,coord_y1,coord_x2,coord_y2,num_cell);
  31.   // increment d'une cellule
  32.   num_cell++;
  33.   // couleur de la deuxieme cellule
  34.   glColor3d(0,*(Decomp+1)*niv_couleur+const_couleur,0);
  35.   // trace de la fin de la deuxieme cellule
  36.   DrawVertex(coord_x1,coord_y1,coord_x2,coord_y2,num_cell);
  37.  }
  38.  // une cellule suivie de plusieurs 0
  39.  else if (*Decomp!=0 && *(Decomp+2)!=0)
  40.  {
  41.   // noir
  42.   glColor3d(0,0,0);
  43.   // trace du debut de la cellule
  44.   DrawVertex(coord_x1,coord_y1,coord_x2,coord_y2,num_cell);
  45.   // increment d'une cellule
  46.   num_cell++;
  47.   // couleur de la cellule
  48.   glColor3d(0,*Decomp*niv_couleur+const_couleur,0);
  49.   // trace de la fin de la cellule
  50.   DrawVertex(coord_x1,coord_y1,coord_x2,coord_y2,num_cell);
  51.   // increment de num_cell (en fonction du nombre de 0)
  52.   num_cell += *(Decomp+2);
  53.  }



Reply

Marsh Posté le 30-01-2004 à 19:37:57    

Y manque les appels glbegin / glEnd()
la fonction drawVertex

Reply

Marsh Posté le 30-01-2004 à 20:42:37    

chrisbk a écrit :

Y manque les appels glbegin / glEnd()
la fonction drawVertex
 


 
et encore c'est pas sur, ce bout de code est peut etre deja situer entre glBegin/glEnd

Reply

Marsh Posté le 30-01-2004 à 20:43:39    

skelter a écrit :


 
et encore c'est pas sur, ce bout de code est peut etre deja situer entre glBegin/glEnd


 
surement, mais je dis ca pour essayer d'avoir le vrai code d'affichage....

Reply

Marsh Posté le 30-01-2004 à 20:46:26    

:D

Reply

Marsh Posté le 30-01-2004 à 20:49:19    

dsl mais la reponse est bien sur que ce code est contenu entre GLBEgin et GLend sinon le pb aurait ete simple.
encore desole mais vous prenez pas a tete car la soluce est surement dans le matos... je vous rappel que la carte possede uniquement 4Mo  !!!!

Reply

Marsh Posté le 30-01-2004 à 20:52:36    

4mo et ben on va vite voir si ya un prob, quel mode video/taille fenetre? profondeur? dephtest? texture? ...
 
faut plus de precisions ...

Reply

Marsh Posté le 30-01-2004 à 20:54:03    

ola suis pas encore expert en OPENGL alors c koi tout ca !!!

Reply

Marsh Posté le 30-01-2004 à 20:55:43    

taille fenetre 850 avec resolution windows en 1024 par 700 et ca ne marche pas sur un PC avec resolution 600*800 et taille 300 de plus je suis en true color

Reply

Marsh Posté le 30-01-2004 à 20:57:39    

fait voir le code d'initialisation d'opengl
 
donc la taille de la fenetre c'est 400*300?


Message édité par skelter le 30-01-2004 à 20:59:31
Reply

Marsh Posté le 30-01-2004 à 21:06:21    

ben le code dinitialisation il est assez long alors je vais demander une autre question...
 
savais vous ce que font les fonction realize map_event et visibility_notify_event
ce sont de signaux affecte a des objets opengl mais c la seule infos que g!!!

Reply

Marsh Posté le 30-01-2004 à 21:07:14    

nonn la taille de la fenerte c 300*300 ou 850*850 c un carre

Reply

Marsh Posté le 30-01-2004 à 21:08:10    

mais bon je ne pense pas que la reponse se trouve ici dans le code !!! mais plutot dans la config materiel alors on laisse tomber ce sujet !!! sauf si VOUS avez des infos utiles sur OPENGL et carte GRAPHIQUES

Reply

Marsh Posté le 30-01-2004 à 21:10:34    

alors voit ca du cote des drivers, sinon a par ca tu peut rien faire  
moi je supposait juste que la quantité de memmoire etait trop faible mais 4mo ca suffit pour 850*850 du moment que tu reste en 2d...


Message édité par skelter le 30-01-2004 à 21:11:10
Reply

Marsh Posté le 30-01-2004 à 22:27:09    

meme si la carte video ou les drivers ne le supportent pas, il y a une version OpenGL software livrée avec windows (pour les économiseurs d'écran).
Donc si c'est pour ouvrir une fenetre et afficher deux triangles, ça marche aussi bien en software.
 
LeGreg

Reply

Marsh Posté le 04-02-2004 à 15:12:15    

merci pour ces reponses.

Reply

Marsh Posté le 04-02-2004 à 15:23:54    

si je vous envoie les images des differents essais peut etre un genie me trouveras le probleme....
 
encore merci
application qui marche sur le pc01 : 500MHz; Carte graphique 8Mo  
[img]C:\Documents and Settings\bourrigaud\Mes documents\Mes images\Visu_Vifu.sur Kayak.bmp[/img]
 
application qui marche sur le pc02 : 600MHz; Carte graphique 4Mo  
[img]C:\Documents and Settings\bourrigaud\Mes documents\Mes images\Visu_VIFU_PCPORTABLE.bmp[/img]
 
merci encore a vous braves gens.

Reply

Marsh Posté le 04-02-2004 à 15:25:08    

hum, he bien, comment dire [:meganne]

Reply

Marsh Posté le 04-02-2004 à 15:25:37    

littleboy1982 a écrit :

si je vous envoie les images des differents essais peut etre un genie me trouveras le probleme....
 
encore merci
application qui marche sur le pc01 : 500MHz; Carte graphique 8Mo  
[img]C:\Documents and Settings\bourrigaud\Mes documents\Mes images\Visu_Vifu.sur Kayak.bmp[/img]
 
application qui marche sur le pc02 : 600MHz; Carte graphique 4Mo  
[img]C:\Documents and Settings\bourrigaud\Mes documents\Mes images\Visu_VIFU_PCPORTABLE.bmp[/img]
 
merci encore a vous braves gens.


 
[:prosterne]


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 04-02-2004 à 15:38:49    

littleboy1982 a écrit :

 
[img]C:\Documents and Settings\bourrigaud\Mes documents\Mes images\Visu_Vifu.sur Kayak.bmp[/img]


[:ddr555]  

Reply

Marsh Posté le 04-02-2004 à 15:40:14    

oui je sia sg vu mais c pas commejnt les envoye...

Reply

Marsh Posté le 04-02-2004 à 15:41:31    

tu les envoies a harkonneen ca lui fera plaisir de les poster pour toi [:itm]

Reply

Marsh Posté le 04-02-2004 à 15:42:38    

littleboy1982 a écrit :

oui je sia sg vu mais c pas commejnt les envoye...


Faut les uploader sur un site externe, t'as pas un espace perso fourni avec ton abo au net par hazard? (sinon il tjs les trucs gratuit comme ifrance).

Reply

Marsh Posté le 04-02-2004 à 15:51:38    

c ki lui .... ????
 

chrisbk a écrit :

tu les envoies a harkonneen ca lui fera plaisir de les poster pour toi [:itm]

Reply

Marsh Posté le 04-02-2004 à 16:01:18    

littleboy1982 a écrit :

c ki lui .... ????


 
un gars qui héberge les photos, mais si tu les envoies à chrisbk c'est bon, il transmettra ;)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 04-02-2004 à 16:03:20    

ma connection chie un peu :/ Ca aurait ete avec plaisir mais je pense que tu devrais plutot demander a taiche, il est cool et il a free degroupé :)

Reply

Marsh Posté le 04-02-2004 à 16:04:39    

antp a écrit :


 
un gars qui héberge les photos, mais si tu les envoies à chrisbk c'est bon, il transmettra ;)


 
m'enfin, qu'est-ce que vous racontez ?  :heink:  C'est à marc ou à joce (c'est les sup-admins du forum) bien sur qu'il faut envoyer les photos. Seuls eux sont habilités à le faire. Vous êtes salauds de le faire marcher comme ça et de l'induire en erreur.  :heink:

Reply

Marsh Posté le 04-02-2004 à 16:06:18    

chrisbk a écrit :

KIKOOOOOO
oui je connais un peu OPENGL
decrit voir ton PROBLEME de facon plus PRECISE sinon je pourrais pas t'aider lol ptdr rofl asv
 


[:fuel]

Reply

Marsh Posté le 04-02-2004 à 16:12:14    

chrisbk a écrit :

ma connection chie un peu :/ Ca aurait ete avec plaisir mais je pense que tu devrais plutot demander a taiche, il est cool et il a free degroupé :)


Non, ma connec free marche pu depuis hier [:sisicaivrai]
Faut envoyer le mail à DarkLord :o


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 04-02-2004 à 16:28:45    

et on fait comment ???? pour leur ecrire.. excusez moi mais les forums je debute ..alors LOOL

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed