GTK und Truecolor Grafiken (GdkPixMap)



  • Hallo 🙂

    Irgendwie wollen bei mir die 24 Bit Grafiken nicht so wirklich.
    Ich kann zwar in 24 Bit Farben auf den Bildschirm malen, aber das dauert alles viel zu lange.

    Was ich programmiere ist in gewisser Weise mit einem Bildbetrachter vergleichbar, ich muss also viele Farben auf den Bildschirm bringen und das möglichst schnell.
    Unter SDL ging das soweit wunderbar, aber nun brauche ich das ganze unter Gtk - und ohne SDL.
    Derzeit mache ich das mit einer GdkPixMap und setze dort die Punkte. Die GdkPixMap kopiere ich dann in eine GtkDrawingArea.
    Das Setze der Punkte in der PixMap dauert aber sehr(!) lange, die Bearbeitung meiner Grafiken geht sehr schnell, aber sobald ich die etwa 1 Million Punkte in die PixMap schreiben will, ist alles vorbei.

    Ich habe bisher noch keine brauchbare Möglichkeit gefunden, das zu beschleunigen. Weiß jemand ein gutes Tutorial oder kann mir 2,5 Tipps geben?
    Mit meiner Rumprobiererei komme ich hier nicht richtig weiter.

    Die Frage ist letztenendes: Wie kopiert man so schnell wie möglich Daten in eine GdkPixMap.

    Bin für jeden Tipp dankbar. 🙂

    Edit: Aus GtkPixMap wird GdkPixMap



  • Da sonst keiner mit mir redet, tue ich das eben selbst. ^^

    Die Lösung ist ein GdkRGB. Hier kann man 8 Bit S/W Daten oder 24Bit RGB Daten direkt in ein GdkDrawable kopieren. Die Daten liegen dabei als Array vor.

    Größere Farbauflösungen sind leider nicht möglich,
    Meine 16 Bit S/W Daten musste ich dadurch in zwei Arrays trennen, so dass die höherwertigen Bits in einem eigenen char-Array liegen und die Niederwertigen in einem anderen. Dadurch läßt sich das höherwertige Array direkt auf den Bildschirm kopieren, was unter Windows und unter Linux einwandtfrei und schnell funktioniert.

    Hoffe mir geholfen zu haben 😉


Anmelden zum Antworten