PB OPENGL et mon application WIN32 - C - Programmation
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
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
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;
}
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"
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);
}
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
|
Marsh Posté le 30-01-2004 à 19:37:57
Y manque les appels glbegin / glEnd()
la fonction drawVertex
Marsh Posté le 30-01-2004 à 20:42:37
chrisbk a écrit : Y manque les appels glbegin / glEnd() |
et encore c'est pas sur, ce bout de code est peut etre deja situer entre glBegin/glEnd
Marsh Posté le 30-01-2004 à 20:43:39
skelter a écrit : |
surement, mais je dis ca pour essayer d'avoir le vrai code d'affichage....
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 !!!!
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 ...
Marsh Posté le 30-01-2004 à 20:54:03
ola suis pas encore expert en OPENGL alors c koi tout ca !!!
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
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?
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!!!
Marsh Posté le 30-01-2004 à 21:07:14
nonn la taille de la fenerte c 300*300 ou 850*850 c un carre
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
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...
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
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.
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.... |
Marsh Posté le 04-02-2004 à 15:38:49
littleboy1982 a écrit : |
Marsh Posté le 04-02-2004 à 15:41:31
tu les envoies a harkonneen ca lui fera plaisir de les poster pour toi
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).
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 |
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
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é
Marsh Posté le 04-02-2004 à 16:04:39
antp a écrit : |
m'enfin, qu'est-ce que vous racontez ? 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.
Marsh Posté le 04-02-2004 à 16:06:18
chrisbk a écrit : KIKOOOOOO |
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
Faut envoyer le mail à DarkLord
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
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