[TIP/Linux] Pygame ersatz für DFB

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Antworten
KC25m
User
Beiträge: 65
Registriert: Freitag 14. Juli 2006, 12:11
Wohnort: Kassel
Kontaktdaten:

Hallo Leute ,
da es immer wieder user gibt die unzufrieden sind mit der Grafikausgabe von Pygame in bezug auf der geschwindigkeit habe ich hier mal ein kleinen Tip.

Anstelle von Pygame kann man auch für den Direct Frame Buffer PyDFB einsetzen , vorrausgesetzt man hat den Direct Frame Buffer eingerichtet.

Dieses bringt ein geschwindigkeitszuwachs um bis zum faktor 3.

Unter Windows entwickeln wir mit Pygame und unter Linux setzen wir seid nun ca. 3 Monate PyDFB ein.

Zu finden gibt es PyDFB auf Sourceforge.

Downloadseite

Importiren einfach gemacht :P

Code: Alles auswählen

import pydfb as pygame
Pygame wird nicht weiter benötigt.

Mehr infos zu DirectFB findet ihr unter directfb.org

Wünsche viel spass beim experimentieren !

Gruß der KC[/url]
thelittlebug
User
Beiträge: 188
Registriert: Donnerstag 20. Juli 2006, 20:46
Wohnort: Wien
Kontaktdaten:

Was hab ich falsch verstanden?
Warum nimmt man nicht gleich OpenGL oder eine Library die Pygame ähnlich ist aber auf OpenGL basiert?

lgherby
Benutzeravatar
Michael Schneider
User
Beiträge: 569
Registriert: Samstag 8. April 2006, 12:31
Wohnort: Brandenburg

thelittlebug hat geschrieben:Warum nimmt man nicht gleich OpenGL oder eine Library die Pygame ähnlich ist aber auf OpenGL basiert?
lgherby
Vielleicht, weil es nicht jeder zur Verfügung hat? Außerdem ist Pygame zur Nutzung durch Python angepasst, so dass es sehr gut mit der Python Objektstruktur umgehen kann.

Grüße,
Michael
Diese Nachricht zersört sich in 5 Sekunden selbst ...
thelittlebug
User
Beiträge: 188
Registriert: Donnerstag 20. Juli 2006, 20:46
Wohnort: Wien
Kontaktdaten:

Ja, aber hier gehts nicht um Pygame sondern um pyDFB das Pygame zwar ähnlich aber nicht gleich ist soweit ich das recherchieren konnte ;)

-> ich nehme einen Ersatz der eben nicht gleich ist und hoffe das alles weiterhin so läuft wie gewohnt. DFB läuft auch nur auf einer Handvoll Karten soweit es mir die Liste auf der Homepage verrät.

Warum nehm ich dann nicht gleich etwas was auf jeder Karte läuft die OpenGL beherrscht, damit bin ich dann sogar Platformunabhängiger.

Nochmals: Pygame kenn ich, ist mir klar, verwende ich. Es mir hierbei nur um das DFB das ich das letzte mal ~2001 bewusst im zusammenhang mit Videos unter Linux mitbekommen habe.

lgherby
BlackJack

Plattformunabhänger ist in dem Fall wohl Definitionssache, oder hängt davon ab, welche Plattformen man anvisiert. SDL ist so simpel, dass es im Grunde auf jedem Gerät läuft, dass einen Framebuffer zur Verfügung stellt. OpenGL setzt eine viel grössere "Infrastruktur" vorraus bzw. ist als reine Software-Emulation sicher langsamer, da das OpenGL-Modell recht komplex ist.
thelittlebug
User
Beiträge: 188
Registriert: Donnerstag 20. Juli 2006, 20:46
Wohnort: Wien
Kontaktdaten:

Vorsichtshalber nochmal, scheinbar überlesen das einige:

Es geht nicht um Pygame, es geht hier um pyDFB

lgherby
Benutzeravatar
Michael Schneider
User
Beiträge: 569
Registriert: Samstag 8. April 2006, 12:31
Wohnort: Brandenburg

thelittlebug hat geschrieben:Vorsichtshalber nochmal, scheinbar überlesen das einige:

Es geht nicht um Pygame, es geht hier um pyDFB
Hi,

vielleicht überliest hier auch einer, dass es um die Vorzüge von pyDFB gegenüber Pygame geht.

Schau da:
KC25m hat geschrieben:...da es immer wieder user gibt die unzufrieden sind mit der Grafikausgabe von Pygame ...

Anstelle von Pygame kann man auch für den Direct Frame Buffer PyDFB einsetzen ...

Code: Alles auswählen

import pydfb as pygame
Pygame wird nicht weiter benötigt.
Die eigentliche Aussage dieses Threads ist nach meiner Erkenntnis: "PyDFB ist schneller als Pygame."
Übrigens kann man die OpenGL Funktionalität auch über die PyOpenGL Erweiterung in Pygame nutzen, wie im EOM-Projekt: http://eom.sourceforge.net/ (ist noch nicht ganz tot ;-)).

Grüße,
Michael
Diese Nachricht zersört sich in 5 Sekunden selbst ...
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

OpenGL ist mir für die meistens Sachen einfach zu mühsam. Mit SDL habe ich auch schon mit C gute Erfahrungen gemacht. Die Performance von PyGame war bei mir soweit immer genügend und die API ist recht hübsch :)
Benutzeravatar
Michael Schneider
User
Beiträge: 569
Registriert: Samstag 8. April 2006, 12:31
Wohnort: Brandenburg

Hi veers,

das ist genau meine Meinung. Seit ich bei EOM als Entwickler eingestiegen bin, versuche ich, mich da einigermaßen reinzufinden. Fazit: wenn wir das weitermachen, dann vermutlich ohne OpenGL. Natürlich nur, sofern es die Performance irgendwie zulässt.

Wobei ein ordentlicher Workshop auch Wunder vollbringt. :-)

Grüße,
Michael
Diese Nachricht zersört sich in 5 Sekunden selbst ...
thelittlebug
User
Beiträge: 188
Registriert: Donnerstag 20. Juli 2006, 20:46
Wohnort: Wien
Kontaktdaten:

Ich glaube ich werde missverstanden:
KC25m hat geschrieben: Pygame wird nicht weiter benötigt.
PyGame ( nicht PyDFB ) bietet: Cdrom, Cursors, Display, Draw, Event, Font, Image, Joystick, Key, Mixer, Mouse, Movie, Music, Overlay, Pygame, Rect, Sndarray, Sprite, Surface, Surfarray, Time, Transform
PyDFB ( nicht PyGame ) bietet: Display, Surface, Rect, Draw, Image, Font, Event, Overlay

Quellen: pygame.org, interface.txt (aus dem pydfb source download)

PyDFB readme behauptet: It is a very new projects. We know that number of bugs or unexpected failures may be high.

Also kann PyDFB nicht alles was PyGame kann, somit ist es nur ein Teilersatz und in einigen bis vielen Fällen wird PyGame trotzdem noch benötigt. Auch funktioniert PyDFB nur unter *nix Systemen und dort auch nicht überall, PyDFB bietet hier über DirectFB "fallbacks" auf Softwarebasis an. Rechtfertigen die möglichen Probleme und die Unterscheidung zwischen unterschiedlichen Betriebssystemen einen vielleicht nur leichten Geschwindigkeitszuwachs oder gar Verlust wenn ein System DirectFB gar nicht unterstützt?

Oder mach ich mir hier gar zu viele Sorgen?

Und das mit OpenGL: Ich hätte erwähnen müssen das ich OpenGL nur in Verbindung mit PyGame nutze, für mich war das selbstverständlich, deswegen habe ich es nicht weiter erwähnt. Mein Fehler, sry.
Es gibt aber wie gesagt Library's die eine angenehmere Schnittstelle mit PyGame für OpenGL anbieten z.b.: http://www.pygame.org/projects/9/20/ oder
http://www.pygame.org/projects/9/103/ oder http://www.pygame.org/projects/9/68/

Von PyGame selbst bin ich begeistert, ich verwende es sooft es nur geht wenn ich eine grafische Ausgabe haben möchte da mir hier vor allem beim setzen einzelner Bildpunkte oder ähnlich simplen Operationen volle GUI Systeme wie Tkinter oder wxPython zu überladen vorkommen.

Insgesamt kann ich sagend as einige meiner Sätze schlecht waren und bei weitem nicht meine Sorgen wiedergespiegelt haben. Ich werde versuchen um 2:30 Morgens keinen Satz mehr zu posten :D

lgherby
Antworten