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.