[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [linux-support] x11 programmierung



Matthias Gr?ter <m.grueter at gmx.net> wrote:

> noch ne frage an Matthias Scheidegger:
>     du hast gesagt ich könnte direkt mit XImages (oder eben GdkImages)
> arbeiten. darüber habe ich auch schon bei gtk.org gelesen. nur hab ich noch
> nicht so ganz begriffen wie das funktioniert. einmal wird gesagt, man könne
> mit den normalen gdk drawing primitives (z.b. gdk_draw_point()) auf das
> GdkImage (bzw. GdkRGB) zeichnen, aber gleich später steht geschrieben, dass
> man gdk_draw_point() niemals für grafikintensive programme benutzen solle,
> da es VIEL zu langsam sei (kann ich nur beipflichten!). was soll ich denn
> sonst benutzen? mir würde es sehr helfen, wenn du mir falls möglich etwas
> beispiel-code mailen könntest...

Tschuldige die späte Antwort, ich war noch kurz in den Ferien...
Ueber die Gdk-Version kann ich leider auch nichts genaueres sagen, aber mit
Xlib ist es folgendermassen:

Pixmaps sind auf der Server-Seite gespeichert und können nur durch Befehle
die set-pixel etc. von der Client-Seite (deinem Programm) verändert werden.
Das ergibt für Anwendungen wie deine natürlich einen Riesen-Overhead.
Images hingegen werden auf der Client-Seite gespeichert (d.h. du kannst
darauf wie auf Video-Memory zugreifen und musst das Visual berücksichtigen)
und werden nur bei Bedarf dem Server übermittelt. Soweit ich weiss, können
keine draw-Funktionen auf Images angewendet werden. Dafür kannst du ein
Pixel mit der Geschwindigkeit eines MOV-Befehls sezten (d.h. ein
Prozessorzyklus).
Shared Memory Images sind (wen wunderts) auch Images, mit dem Unterschied,
dass Server und Client denselben Speicherbereich teilen und somit die
aufwendige Kopiererei zwischen den beiden entfällt. Das funktioniert aber
nur, wenn Client und Server auf derselben Box sitzen.

Fuer Beispielcode hab ich jetzt gerade nicht Zeit (muss selber noch was
coden), aber ich bastle dir bei Gelegenheit was. Pressierts?

cheers

Matthias