Affichage avec X11

aziatedu13 Messages postés 19 Date d'inscription mercredi 3 janvier 2007 Statut Membre Dernière intervention 20 février 2008 - 23 janv. 2008 à 08:59
aziatedu13 Messages postés 19 Date d'inscription mercredi 3 janvier 2007 Statut Membre Dernière intervention 20 février 2008 - 23 janv. 2008 à 08:59
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
23 janv. 2008 à 08:59
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.
0
Rejoignez-nous