[ LUGOS ] X programiranje

Igor Zaverski igor.zaverski na izum.si
Sre Sep 24 09:00:36 CEST 1997


Gasper Fele wrote:
> 
> Kateri je najhitrejsi nacin za metanje xpmjev v okna ?
> Zdi se mi, da XPutImage ni najhitrejsi, je pa edini, ki ga poznam.
> Pa kje naj jaz tole raje sprasujem? Na tej listi vse kaze da
> se bolj malo ljudi resno ukvarja z X.
> 

Obstaja tudi XShmPutImage, ki je hitrejsa, vendar jo lahko uporabis le,
ce tece tvoj program na isti masini kot Xserver. To pa je zato, ker
XShmPutImage uporablja namesto IP socket-a, kjer je treba precrpati
sliko iz naslovnega prostora tvojega procesa v naslovni prostor
Xserver-ja, kar 'shared memory', kjer obvesti Xserver le o tem, na
kateri lokaciji se zacne slika.

Ker zgornji nacin ni ravno elegantent, saj ne omogoca delovanja preko
mreze, je XPutImage najboljsa izbira. Glede hitrosti bi ti priporocal
naslednje:
  - z XPutImage preslikaj sliko v pixmap-o na Xserver-ju in ne na zaslon
  - nato z XCopyArea preslikaj pixmap-o na Display, kar se zgodi
prakticno v trenutku in ocem nezaznavno. Takemu nacinu se rece 
DubbleBuffering, saj se slika poleg tega, da je na zaslonu (se pravi v
spominu graficne kartice), nahaja tudi v spominu Xserver-ja. To sicer
povzroci, da Xserver papa vec spomina, vendar je pridobitev na
kavaliteti ogromna. Recimo na ta nacin se doseze, da slika, ki se
obnavlja zelo hitro, ne utripa.

    L.P.
       IgorZ




Dodatne informacije o seznamu Starilist