A proglemam a kovetkezo lenne:
Adott egy egyszeru, tutorial szintu kepnezegeto program, ami a imlib1-est hasznal.
A lenyeg funkcihivas tekinteteben ennyi lenne:
id=Imlib_init(disp);
im=Imlib_load_image(id,argv[1]);
w=im->rgb_width;h=im->rgb_height; d=id->x.depth;
XCreateWindow(disp,DefaultRootWindow(disp),0,0,w,h,0,d,InputOutput,CopyFromParent,CWBackingStore|CWOverrideRedirect|CWEventMask|CWBorderPixel|CWSaveUnder|CWColormap|CWBackPixel,&attr);
XSelectInput(disp,win,StructureNotifyMask);
Imlib_render(id,im,w,h);
p=Imlib_move_image(id,im);
XSetWindowBackgroundPixmap(disp,win,p);
XMapWindow(disp,win);
XSync(disp,False);
Mint lathato, nem egy agysebeszet, az imlib tutorialok 90%-a is ugyanezt csinalja. Namost a problemam ezzel, hogy a d-ben visszaadott ertek hibas, emiatt a program az ablak letrehozasakor merevre fagy, mert az X szerver eldobja a kapcsolatot.
Pl. Nalam alap X.org fut 24 bites szinmelysegben a d-ben visszaadott ertek 32. Hardcodeolom a d erteket 24-re, akkor a kod siman lefut a kep megjelenik, mindenki boldog. Ha az eredeti kodot xgl alatt futtatom, akkor 32 bitet ad vissza, es gond nelkul lefut.
A dolog erdekessege, hogy mas imlib1-et hasznalo programnal is rafutottam erre a hibara.
Valami otlet?
- 1047 megtekintés