Affichage avec X11

Signaler
Messages postés
19
Date d'inscription
mercredi 3 janvier 2007
Statut
Membre
Dernière intervention
20 février 2008
-
Messages postés
19
Date d'inscription
mercredi 3 janvier 2007
Statut
Membre
Dernière intervention
20 février 2008
-
nouveau developpeur, dans le cadre de ses étude.

1 réponse

Messages postés
19
Date d'inscription
mercredi 3 janvier 2007
Statut
Membre
Dernière intervention
20 février 2008

bonjour,
j'essai de faire un truk apparemment trop simple, mais déja hors de ma porté pour l'instant...
masi je ne me décourage pas et persévere!!!
j'ai un buffer RGB24,je connai la taille de l'image, la largeur ,longueur, et profondeur.
je souhaiterai l'afficher dans une fenetre et pouvoir la manager , cad la déplacer la fermer et la reduire.
j'ai tentai de faire déja l'affichage dans une fenetre, mais sans résultat...après de longue huere a cherché, je ne trouve pas quel est mon erreur.
voici mon bout de code.



#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <stdio.h>
#include <stdlib.h>
#include <X11/extensions/Xdbe.h>
#include <sys/types.h>
#include
# include <sys/mman.h>
#include <errno.h>
#include "affiche.h"



int affiche(unsigned char*buffer,int width,int height)
{

Drawable BackBuffer;
Display *dpy;
Window root,win;
void *args;
XGCValues attributs;
unsigned long gcmasque;
int ecran;
XImage *img;
Visual *vis;
unsigned long wpx, bpx;
unsigned int x=0, y=0,Depthfenetre;
GC gcx;




/* Connection serveur */
dpy = XOpenDisplay (":0.0");

/* Creation de la fenetre */
ecran = DefaultScreen(dpy);
root = DefaultRootWindow(dpy);

/* Profondeur de couleur (en bit) dans la fenetre par d�ault, depend de la configuration du serveur X */
Depthfenetre = DefaultDepth(dpy, ecran);


bpx = BlackPixel(dpy, ecran); /* pixel blanc */
wpx = WhitePixel(dpy, ecran); /* pixel noir */

/* visual par d�ault */
vis = DefaultVisual (dpy, ecran);

/* Cr�tion de la fenetre */
win = XCreateSimpleWindow(dpy, root, 100, 100, width, height, 1, bpx, wpx);
XInitImage(img);
BackBuffer = XdbeAllocateBackBufferName(dpy, win, XdbeUntouched);

XInitImage(img);

img = XCreateImage(dpy, vis, Depthfenetre, ZPixmap, 0, buffer, width, height, 8 , width*3);

attributs.foreground = bpx;
attributs.background = wpx;
gcmasque = GCForeground | GCBackground;

gcx = XCreateGC(dpy, win, gcmasque, &attributs);


XStoreName (dpy, win, "fenetre d'essai");
XMapWindow(dpy,win);


/*
while(1)
{
XMapWindow(dpy,win);
sleep(10);
}*/

XFreeGC(dpy, gcx);
XDestroyImage (img);
XDestroyWindow(dpy, win);

}

n'importe quel commentaire ou aide est la bien venu.
Merci.



nouveau developpeur, dans le cadre de ses étude.