Schnelle Zeichenbibliothek
Schnelle Zeichenbibliothek
Kann da jemand etwas empfehlen? (Plattform unabhängig) Mir geht es hauptsächlich um die Zeichnung von Images um das Canvas etwas/deutlich zu beschleunigen. Ein sehr deutliches Beispiel wäre die msimg32 Library, welche Farbverläufe selbst bei Vollbild extrem schnell darstellt, wohingegen ein PB Farbverlauf die Anwendung gleich ins stolpern und flackern bringt.
Re: Schnelle Zeichenbibliothek
Cairo? Dafür gibts sogar schon einen PB-Wrapper.
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster
PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Re: Schnelle Zeichenbibliothek
Kenne ich bereits, ist allerdings viel zu langsam. (jetzt keine genaueren Tests) Aber wohl eher vergleichbar mit GDI+. Wie gesagt, allein durch Images kann schon 90% realisiert werden. 
Re: Schnelle Zeichenbibliothek
Der große Vorteil von Cairo gegenüber GDI+ besteht darin, dass es plattformübergreifend einsetzbar ist, denn man kann es neben Linux (wo es sowieso zur Grundausstattung gehört, weil GTK es ab Version 2.8 für alle Zeichenoperationen einsetzt) auch in Windows und MacOS X nutzen.
Re: Schnelle Zeichenbibliothek
Mir sind die Eigenschaften von Cairo bekannt, mir geht es aber hauptsächlich um Geschwindigkeit bei Images. Am besten logischerweise kombinierbar mit den PB internen StartDrawing(..), um z.B die Blend-Modes umzuschalten.
Re: Schnelle Zeichenbibliothek
blöde frage, aber wieso findest du die Drawing2D-Image sachen eigentlich zu langsam (du bist ja scheinbar nicht der einzige)?
Klar ist es nicht für Echtzeit-Rendern von gezoomten Images mit 60FPS auf Full-HD gedacht.
Aber sowas ist ja bei einer GUI auch garnicht nötig.
Die Oberfläche wird halt einmal komplett gerändert, und danach nur noch die Objekte die sich ändern aktualisiert.
Zusätzlich kannst du Buffer-Images nutzen, um komplizierte Elemente als Block zu rendern, und nicht immer einzeln zusammen zu bauen.
Die Drawing2D-Lib bietet ja sogar den "Nachteil" (der zum Vorteil wird), dass sie kein Antialiasing durchführt.
Klar ist es nicht für Echtzeit-Rendern von gezoomten Images mit 60FPS auf Full-HD gedacht.
Aber sowas ist ja bei einer GUI auch garnicht nötig.
Die Oberfläche wird halt einmal komplett gerändert, und danach nur noch die Objekte die sich ändern aktualisiert.
Zusätzlich kannst du Buffer-Images nutzen, um komplizierte Elemente als Block zu rendern, und nicht immer einzeln zusammen zu bauen.
Die Drawing2D-Lib bietet ja sogar den "Nachteil" (der zum Vorteil wird), dass sie kein Antialiasing durchführt.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: Schnelle Zeichenbibliothek
Da es die CPU bei großen Flächen mit vielen recht kleinen Tiles sehr belastet. Wie du selbst beim GTL gemerkt hast. Durch das Double-Buffering des Canvas wirkt es auch im Vollbild sehr schnell, belastet die CPU aber sehr. Man kann es effizient gestalten wie man will, wenn die CPU zwischen 0-10% schwankt ist das (nur für ein Steuerelement) nicht akzeptabel.STARGÅTE hat geschrieben:blöde frage, aber wieso findest du die Drawing2D-Image sachen eigentlich zu langsam
Buffer nutze ich bei komplexen Elementen schon, aber ändern tut sich meist alles. Beim scrollen sowieso - größte Last, aber manche Bereiche müssen einfach neu gezeichnet werden, wenn es sonst zu Überlagerungen führt.STARGÅTE hat geschrieben: Die Oberfläche wird halt einmal komplett gerändert, und danach nur noch die Objekte die sich ändern aktualisiert.
Zusätzlich kannst du Buffer-Images nutzen, um komplizierte Elemente als Block zu rendern, und nicht immer einzeln zusammen zu bauen.
Das GTL z.B ist längst sehr effizient aufgebaut und rendert nur aktive sichtbare Bereiche. Es würde schon ein schneller Plattform unabhängiger Bild-Zeichner reichen.
Re: Schnelle Zeichenbibliothek
Natürlich tut sie das, wäre ja schimm wenn nicht, dann würde Drawing2D ja "Zeit verschwenden".cOoki3druqs hat geschrieben:Da es die CPU bei großen Flächen mit vielen recht kleinen Tiles sehr belastet.
Hää, im Ruhezustand (keine Events) sollte die CPU 0% haben, bei reinen Maus-Event sollte die CPU immer noch nahe bei 0% liegen, da ja nichts neu gezeichnet werden muss, außer ggf. Hovers.cOoki3druqs hat geschrieben:Man kann es effizient gestalten wie man will, wenn die CPU zwischen 0-10% schwankt ist das (nur für ein Steuerelement) nicht akzeptabel.
Und nur dann wenn zB das Fenster Resized wird, dann sollte die CPU sehr wohl eine Spitzenleistung von 100% erreichen, um die Sache schnell erledigt zu haben.
Hm, dann solltest du vielleicht überlegen auf OpenGL umzusteigen um das ganze wirklich über die Grafikkarte laufen zu lassen. OpenGL benötigt auch nicht zwangsweise eine PB-Screen, sondern kann auch auf einem Window oder halt Canvas rendern. Du musst dich natürlich mit der OpenGL-API auseinandersetzen, aber diese ist zumindest auch Cross-Plattform.cOoki3druqs hat geschrieben:Das GTL z.B ist längst sehr effizient aufgebaut und rendert nur aktive sichtbare Bereiche. Es würde schon ein schneller Plattform unabhängiger Bild-Zeichner reichen.
Im übrigen hab ich dir das schon im Januar gesagt, wo du genau die gleiche Frage gestellt hast: Schnelle Zeichenbibliothek
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: Schnelle Zeichenbibliothek
Also kommSTARGÅTE hat geschrieben: Natürlich tut sie das, wäre ja schimm wenn nicht, dann würde Drawing2D ja "Zeit verschwenden".![]()
Auch klar ist, dass es im "Ruhezustand" bzw keiner größeren Neuzeichnung die CPU nicht sonderlich bis gar nicht belastet. Aber es reicht ja bereits teils großflächig neu zu zeichnen. Im Grunde das selbe Thema wie mit GDI+, nur das PB natürlich wesentlich schneller ist, nur nicht schnell genug.