Affichage avec X11

aziatedu13 Messages postés 19 Date d'inscription mercredi 3 janvier 2007 Statut Membre Dernière intervention 20 février 2008 - 22 janv. 2008 à 13:57
aziatedu13 Messages postés 19 Date d'inscription mercredi 3 janvier 2007 Statut Membre Dernière intervention 20 février 2008 - 22 janv. 2008 à 13:58
nouveau developpeur, dans le cadre de ses étude.

1 réponse

aziatedu13 Messages postés 19 Date d'inscription mercredi 3 janvier 2007 Statut Membre Dernière intervention 20 février 2008
22 janv. 2008 à 13:58
bonjours a tous,

j'essai d'utiliser les fonciton de X11 pour afficher une image dans une fenetre,

j'ai trouver quelque petit truk, masi je n'arrive pas a bien les adapter et ej ne sait pas pourquoi..voici mon code :



int affiche(char*buffer)
{

Display * display;
int screen;
Window window,root;
XImage *image;
FILE *f;

XEvent ev;
GC gcx;
XGCValues gcv;
unsigned int pxl,pxh;
unsigned long bpx,wpx;
Pixmap pixl,fond;
FILE* file;

Drawable d;
int i;
unsigned long gcmask;




gcv.background=BlackPixel(display,screen);
gcv.foreground=BlackPixel(display,screen);
gcv.function=GXcopy;
gcmask=GCForeground|GCBackground|GCFunction;


display = XOpenDisplay(NULL);


if (display == NULL)
{
printf("Error : Cannot open display.\n" );
}

screen =DefaultScreen(display);

root=DefaultRootWindow(display);


window=XCreateSimpleWindow(display,root,0,0,384,288,8,bpx,wpx);
XMapWindow(display,window);


image=XCreateImage(display,DefaultVisual(display,DefaultScreen(display)),32,ZPixmap,0,buffer,384,284,8,0);

gcx=XCreateGC(display,d,gcmask,&gcv);

XPutImage(display,d,gcx,image,0,0,0,0,384,288);

while(i<5)
{
XMapWindow(display,window);
sleep(1);
i++;
}
while(1)
{
XEvent ev;
XNextEvent(display,&ev);
}


}
j'ai une erreur de segmentation,et je ne voi vraiment pas le bug,
le buffer est un buffer RGB24.
auriez vous des explication ???
aurai je zapper une étape ???
merci.

nouveau developpeur, dans le cadre de ses étude.
0
Rejoignez-nous