Bonjour,
je suis novice en programmation graphique sous X11 et j'aimerai savoir comment afficher un pixel coloré.
Je sais qu'il existe une fonction putpixel qui affiche un pixel a l'ecran mais on ne peut choisir la couleur.
Le seul endroit dans le programme ou est définit la couleur d'ecriture et de fond est dans la fonction " ouvre_fenetre"mais le problème c'est que si je modifie cette fonction les pixels seront toujours rouges ou toujours verts alors que moi je voudrai afficher un pixel vert puis un rouge, etc.
Est-il possible d'avoir une fonction du style:
...
couleur = rouge;
putpixel(x,y); /* j'affiche un pixel rouge*/
...
couleur = vert;
putpixel(x,y); /* j'affiche un pixel vert */
...
void ouvre_fenetre(int L,int H)
{
int i;
unsigned long white_pixel, black_pixel;
char *dpyn = NULL;
XSetWindowAttributes attrib;
XColor couleur;
if ((display = XOpenDisplay (dpyn)) == NULL) {
fprintf (stderr, "Can't open Display\n");
exit (1);
}
gc = DefaultGC (display, screen);
screen = DefaultScreen (display);
root = RootWindow (display, screen);
bg=WhitePixel (display, screen);
fg=BlackPixel (display, screen);
attrib.background_pixel= WhitePixel (display, screen);
attrib.border_pixel = BlackPixel (display, screen);
cmap=DefaultColormap(display,screen);
Affiche=XCreatePixmap(display,DefaultRootWindow(display),L,H,DefaultDepth(display,screen));
attrib.event_mask=ExposureMask|KeyPressMask|ButtonPressMask|ButtonReleaseMask|PointerMotionMask;
win=XCreateWindow(display,DefaultRootWindow(display),0,0,L,H,100,DefaultDepth(display,DefaultScreen(display)),InputOutput,DefaultVisual(display,DefaultScreen(display)),CWEventMask|CWBackPixel|CWBorderPixel,&attrib);
XStoreName (display, win, "3D");
XMapWindow (display, win);
}
Merci d'avance