expose freigeben?!
-
hiho,
habe nochmal ne frage..undzwar habe ich das alte programm umgeschreiben das es jetzt funktioniert, aber wenn es verdeckt ist, ist die linie weg, und soll neu gezeichnet werden, mit mapnotify und configurenotify ghet es, also mit denen die nur was am fenster selber tun und nicht mit den inhalt, aber warum funktioniert das mit expose nicht? das wenn das fenster verdeckt ist und wieder in den vordergrund kommt,dass die linie neu geziechnet wird.do { /* Wait for an event */ XNextEvent(dpy,&event); switch (event.type) { case MapNotify: case Expose: case ConfigureNotify: /* Draw the line */ XDrawLine(dpy,win,gc,10,60,180,20); /* Send the "DrawLine" request to the server */ XFlush(dpy); break; } sleep(1); } while (1);
so das is die stelle mit den expose
wenn ihr mehr code wollte nur bescheid sagen
mfg
scrap
-
das ist doch nicht etwa ANSI C?
mfG (c)h
PS.: welcher Compiler?
-
chille07 schrieb:
das ist doch nicht etwa ANSI C?
mfG (c)h
PS.: welcher Compiler?
Nein es ist eindeutig kein ANSI-C.
Mich würde eher das Betriebssystem interesieren. Linux/Unix??
-
Linux compiler is gcc
-
hallo,
das Problem kenne ich und habe ihn noch nicht gelöst aber ich weiss was man versuchen kann um diesen problem zu lösen.
------
Xlib repainting: der X-Server kann den Inhalt von einem Fenster nicht im Speicher halten. D.h. der Client muss selber dafür sorgen, dass es neu gezeichnet wird wenn z.B. eine Überlappung zwischen mehrere Fenster stattfindet oder wenn das Fenster minimiert wird.
Es gibt zwei Methoden diese Arbeit zu erledigen:1. Parallel in einer Pixmap zeichnen und den Pixmap in dem Fenster kopieren wenn es neu gezeichnet wird. Das führt dazu, dass der ganzen Inhalt des Fenster beim jedem Zeichen-Event gezeichnet werden muss.
Diese Methode hat den Nachteil, dass Der Server nicht genug Speicher hat um viele Pixmap zu speichern.2. Wenn ein Teil des Fensters durch z.B. eine Überlappung unsichtbar wird, wird ein Expose-Event ausgelöst. Dieser Event enthält die Position und Größe des betroffenen Bereiches. Anschließend wird aus dieser Informationen eine Clip-Region gesetzt und es wird nur in dieser Region gezeichnet. Der Vorteil ist, dass nur die betroffene Bereiche und nicht das ganze Fenster gezeichnet werden müssen. Dies Führt zu besseren Performance.
-----------------du kannst mehr infos dazu in das Buch
http://www.ac3.edu.au/SGI_Developer/books/XLib_PG/sgi_html/ch03.html
such nach Repainting the Windowviel Spass noch und falls es geklappt hat sag bescheid
youssef
-
Dieser Thread wurde von Moderator/in Shade Of Mine aus dem Forum ANSI C in das Forum Linux/Unix verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.