Welches ist die beste GUI-Library + welche Vorgehensweise ist die beste um Grafiken zum Drucken zu erstellen?
-
@titan99_ sagte in Welches ist die beste GUI-Library + welche Vorgehensweise ist die beste um Grafiken zum Drucken zu erstellen?:
Zudem dauert es so lange selbstverständliche Funktionen zu implementieren, wie Speichern, Undo und Redo, wysiwyg, usw.
@chris4cpp sagte in Welches ist die beste GUI-Library + welche Vorgehensweise ist die beste um Grafiken zum Drucken zu erstellen?:
@Swordfish Naja in so einer OpenGL GUI Lib gäbe es ja schon alle Standard Kompenenten in einem Standard Theme Hell und Dunkel, nur kann man dies komplett ändern wenn man denn möchte. Es müsste niemand jedes Mal den Button ein Menu oder ne Combobox neu erfinden, wenn er es nicht mag.
Deswegen habe das andere schon getan. Und wenn man sich was mit C-Bindings aussucht ist die verwendete Sprache auch ziemlich wurscht. Trotzdem gebe ich nochmal zu bedenken daß es einen Grund gibt warum es X verschiedene Window Manager gibt. Die wählt man auch wegen $Grund.
-
@Mechanics Ich meinte CEF & Co.
-
@chris4cpp sagte in Welches ist die beste GUI-Library + welche Vorgehensweise ist die beste um Grafiken zum Drucken zu erstellen?:
@Swordfish Naja in so einer OpenGL GUI Lib gäbe es ja schon alle Standard Kompenenten in einem Standard Theme Hell und Dunkel, nur kann man dies komplett ändern wenn man denn möchte. Es müsste niemand jedes Mal den Button ein Menu oder ne Combobox neu erfinden, wenn er es nicht mag.
Deswegen habe das andere schon getan. Und wenn man sich was mit C-Bindings aussucht ist die verwendete Sprache auch ziemlich wurscht. Trotzdem gebe ich nochmal zu bedenken daß es einen Grund gibt warum es X verschiedene Window Manager gibt. Die wählt man auch wegen $Grund.
Gibt es denn da eine Lib, die per OpenGL/Vulkan zeichnet und bei der die Standard Widgets wirklich auf jeder Plattform gleich aussehen? Also ich lasse eine ComboBox zeichnen und die sieht unter Linux(Gnome, XFCE, KDE), Windows XP, 7, 10, MacOS, Android, iOS und meinetwegen BareMetal RaspPi exakt gleich aus?
-
@chris4cpp sagte in Welches ist die beste GUI-Library + welche Vorgehensweise ist die beste um Grafiken zum Drucken zu erstellen?:
die Standard Widgets wirklich auf jeder Plattform gleich aussehen?
Sag mal, wer außer Du will das? Schreibst Du Software für Dich selbst? Tu was Du willst. Hast Du Software die ein gewisses Alleinstellungsmerkmal hat? Tu was Du willst. Nein? Halte Dich an übliche Konventionen.
Wozu willst Du ein Hundsordinäres GUI überhaupt mit OpenGL rendern?
@chris4cpp sagte in Welches ist die beste GUI-Library + welche Vorgehensweise ist die beste um Grafiken zum Drucken zu erstellen?:
Windows XP
Kidding, right?
-
Du keine Ahnung ob das überhaupt noch jemand gerne sehen würde, so eine Einheits-GUI in OpenGL. Warum Hardwarbeschleunigte GUI? Nun weil die CPU entlastet wird, gibt ja auch sehr aufwändige visuelles Feedback und OpenGL ist mittlerweile auch auf Kleinstrechner wie Android oder RaspPI vorhanden, also nutzen.
Ich schreibe derzeit nur Software für mich selbst. Also solche Sachen. die ich gern von anderen Firmen sehen würde, die es aber so nicht gibt. Ob dann mal was für die Allgemeinheit daraus wird, das wird sich zeigen, ist aber nicht mein primäres Ziel.Als ich auf der Suche nach einem GUI-Framwork war, habe ich mich an Blender erinnert und mich halt gefragt ob es so was nicht so in der Art von Qt gibt. Gibt es leider nicht, ein paar Ansätze habe ich gefunden wie CEGUI aber so richtig gefallen tut mir da nix. Deswegen meine Frage hier ob es so etwas in der Richtung noch gibt. Dass nicht jeder einen Sinn hinter meiner Suche sehen wird, ist mir schon klar.
-
@chris4cpp sagte in Welches ist die beste GUI-Library + welche Vorgehensweise ist die beste um Grafiken zum Drucken zu erstellen?:
gibt ja auch sehr aufwändige visuelles Feedback
Ja ne. Pixel rauswerfen tut inzwischen jeder Grafikchip im Schlaf und nebenbei.
-
@Swordfish sagte in Welches ist die beste GUI-Library + welche Vorgehensweise ist die beste um Grafiken zum Drucken zu erstellen?:
@chris4cpp sagte in Welches ist die beste GUI-Library + welche Vorgehensweise ist die beste um Grafiken zum Drucken zu erstellen?:
gibt ja auch sehr aufwändige visuelles Feedback
Ja ne. Pixel rauswerfen tut inzwischen jeder Grafikchip im Schlaf und nebenbei.
Ähh, du weißt aber schon, dass man GUIs trotzdem mit OpenGL & Co. zeichnet? Warum sollte man nicht? OpenGL ist schließlich erst einmal ganz neutral ein Grafikframework und meistens bekommt man am Ende noch vom Grafiktreiber die Hardwarebeschleunigung geschenkt. Niemand setzt einzelne Pixel. Und wenn man Pixel setzt, dann wird das Pixelsetzframework intern auch OpenGL oder ähnliches nutzen, um sie an den Grafiktreiber zu bringen.
-
@SeppJ Ähm. Ja. Aber das würde bedeuten daß GUI malen aufwändiger ist als $Arbeit.
-
@Swordfish sagte in Welches ist die beste GUI-Library + welche Vorgehensweise ist die beste um Grafiken zum Drucken zu erstellen?:
@SeppJ Ähm. Ja. Aber das würde bedeuten daß GUI malen aufwändiger ist als $Arbeit.
Häh?
-
@SeppJ Naja, wenn GUI malen aufwändiger ist als eigentliche Arbeit dann was falsch.
-
@Swordfish sagte in Welches ist die beste GUI-Library + welche Vorgehensweise ist die beste um Grafiken zum Drucken zu erstellen?:
@SeppJ Naja, wenn GUI malen aufwändiger ist als eigentliche Arbeit dann was falsch.
Wiederholung macht weder deine Aussage, noch worauf sie sich bezieht, klarer. Aber soll mir egal sein. Wie die zeitgenössischen GUI-Grafikstacks aufgebaut sind, können du und chris4cpp selber nachschauen. Jedenfalls hat chris4cpp nicht unrecht, es kommt OpenGL (oder DirectX, etc.) irgendwo tief unten drin vor. Windowsbeschleunigerkarten wie Anno 1993 gibt es nicht mehr.
-
@SeppJ Ich weiß nicht wie ich das klarer ausdrücken soll. Aber wenn GUI-Darstellung zu lahm ist dann ist was anderes falsch und nicht das Knöpfchenmalen.
-
@Swordfish sagte in Welches ist die beste GUI-Library + welche Vorgehensweise ist die beste um Grafiken zum Drucken zu erstellen?:
@SeppJ Ich weiß nicht wie ich das klarer ausdrücken soll. Aber wenn GUI-Darstellung zu lahm ist dann ist was anderes falsch und nicht das Knöpfchenmalen.
Indem du das so sagst
Da haste Recht, aber es gibt natürlich trotzdem keinen Grund, nicht die GPU-Beschleunigung zu nutzen, die man quasi geschenkt bekommt. Tatsächlich müsste man sich ja sogar ganz schön anstrengen, die GPU im Rechner zu umgehen, wenn man irgendetwas malen möchte.
-
@SeppJ sagte in Welches ist die beste GUI-Library + welche Vorgehensweise ist die beste um Grafiken zum Drucken zu erstellen?:
@Swordfish sagte in Welches ist die beste GUI-Library + welche Vorgehensweise ist die beste um Grafiken zum Drucken zu erstellen?:
@SeppJ Ich weiß nicht wie ich das klarer ausdrücken soll. Aber wenn GUI-Darstellung zu lahm ist dann ist was anderes falsch und nicht das Knöpfchenmalen.
Indem du das so sagst
^^
Jedenfalls hat chris4cpp nicht unrecht, es kommt OpenGL (oder DirectX, etc.) irgendwo tief unten drin vor.
Ja ne. Aber das heißt nicht daß man sich selbst die Finger schmutzig machen muss.
-
@Swordfish sagte in Welches ist die beste GUI-Library + welche Vorgehensweise ist die beste um Grafiken zum Drucken zu erstellen?:
@SeppJ sagte in Welches ist die beste GUI-Library + welche Vorgehensweise ist die beste um Grafiken zum Drucken zu erstellen?:
@Swordfish sagte in Welches ist die beste GUI-Library + welche Vorgehensweise ist die beste um Grafiken zum Drucken zu erstellen?:
@SeppJ Ich weiß nicht wie ich das klarer ausdrücken soll. Aber wenn GUI-Darstellung zu lahm ist dann ist was anderes falsch und nicht das Knöpfchenmalen.
Indem du das so sagst
^^
Jedenfalls hat chris4cpp nicht unrecht, es kommt OpenGL (oder DirectX, etc.) irgendwo tief unten drin vor.
Ja ne. Aber das heißt nicht daß man sich selbst die Finger schmutzig machen muss.
Korrekt. Dann gucken wir zur Belehrung aller Leser vielleicht doch einmal den Stack eines üblichen Linux-Desktops an:
- GTK+ (oder anderes GUI-Framework)
- Cairo (oder andere 2D-Zeichenbibliothek)
- OpenGL (oder anderes Renderframework)
- X-Server (kann evtl. vom OpenGL-Renderkontext umgangen werden)
- Grafiktreiber im Kernel
- Hardware
Natürlich etwas vereinfacht, da es außer dem Renderkontext auch noch mehr Möglichkeiten zur Direktverbindung von Schichten gibt.
Aber ja, wir lernen, chris4cpp sucht so etwas wie cairo und sollte diesem überlassen, das Renderframework zu steuern.
PS: Viele Spiele und ähnliches zeichnen ihre GUI natürlich direkt mit OpenGL & Co.
Schließlich können sie sich darauf verlassen, dass es vorhanden ist, und sie sprechen sowieso schon direkt mit dem Renderframework. Insofern wäre dort eine Zwischenschicht nur unnötiger Mehraufwand.
-
@SeppJ sagte in Welches ist die beste GUI-Library + welche Vorgehensweise ist die beste um Grafiken zum Drucken zu erstellen?:
sollte diesem überlassen, das Renderframework zu steuern.
@SeppJ sagte in Welches ist die beste GUI-Library + welche Vorgehensweise ist die beste um Grafiken zum Drucken zu erstellen?:
Viele Spiele und ähnliches zeichnen ihre GUI natürlich direkt mit OpenGL & Co.
Dabei geht es aber seltenst um Effizienz sondern um eye candy. Ja, i know that You know.
-
Ich denke schon, dass es bei der Spielentwicklung um jedes Tröpfchen Effizienz geht. Genauso wie bei der Entwicklung von Grafikappilikationen oder Software Synthesizer und DAWs. Dort das teilweise extreme Echtzeitfeedback mit Gradienten, Transparenz etc. per CPU zeichnen zu lassen wäre extrem ineffizient in meinen Augen. Klar kann man alles bestimmt auch mit einem 2D Software Renderer hinbekommen, aber wozu Ressourcen brach liegen lassen? Mittlerweile hat wirklich jeder SoC eine GPU die irgendwie mindestens OpenGL ES versteht. Also nutzen was eh schon da ist.
-
@chris4cpp CPUs zeichnen nichts (heute zumindest nimmer).
@SeppJ sagte in Welches ist die beste GUI-Library + welche Vorgehensweise ist die beste um Grafiken zum Drucken zu erstellen?:
Tatsächlich müsste man sich ja sogar ganz schön anstrengen, die GPU im Rechner zu umgehen
das da.
Heck, Windows 10 ist ohne mindestens DX9 garnicht supported.
-
@Swordfish sagte in Welches ist die beste GUI-Library + welche Vorgehensweise ist die beste um Grafiken zum Drucken zu erstellen?:
Für Leute, die nur das Bild angucken: GDI(+) ist nur noch wegen der heiligen Abwärtskompatibilität in Windows. Microsoft empfiehlt, heutzutage nur die rechte Hälfte des Bildes zu nutzen.
-
@Swordfish sagte in Welches ist die beste GUI-Library + welche Vorgehensweise ist die beste um Grafiken zum Drucken zu erstellen?:
@chris4cpp CPUs zeichnen nichts (heute zumindest nimmer).
Alles was nicht OpenGL/DX etc, also GPU ist, wird von der CPU gezeichnet(Software Rendering). Aktuell zeichne ich noch mit der CPU und schiebe das Ergebnis als Bild an ein QLabel. Mit Zechenfunktionen von Qt selbst war das recht langsam, per Hand in einen Framebuffer schreiben ging wesentlich schneller. Aber das ist erst mal nur eine Krücke für die Echtzeitdarstellung der Soundbufffers, später soll die GPU vieles übernehmen. Meine Echtzeitwidgets in der GUI werden alle 40ms aktualisiert und das soll in etwa auch so bleiben. Jeder kleinste Geschwindigkeitsbonus zählt da für mich und daher auch mein Wunsch nach einer GPU GUI und das am liebsten mit 1:1 Look egal auf welcher Plattform. Denn dann wäre ich save und mir kann es egal sein wenn ein OS mal wieder seine Widgets ändert.