Seite 1 von 1

[TIP/Linux] Pygame ersatz für DFB

Verfasst: Mittwoch 18. April 2007, 12:32
von KC25m
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]

Verfasst: Freitag 15. Juni 2007, 01:30
von thelittlebug
Was hab ich falsch verstanden?
Warum nimmt man nicht gleich OpenGL oder eine Library die Pygame ähnlich ist aber auf OpenGL basiert?

lgherby

Verfasst: Freitag 15. Juni 2007, 06:42
von Michael Schneider
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

Verfasst: Freitag 15. Juni 2007, 10:16
von thelittlebug
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

Verfasst: Freitag 15. Juni 2007, 12:25
von 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.

Verfasst: Freitag 15. Juni 2007, 20:04
von thelittlebug
Vorsichtshalber nochmal, scheinbar überlesen das einige:

Es geht nicht um Pygame, es geht hier um pyDFB

lgherby

Verfasst: Samstag 16. Juni 2007, 10:19
von Michael Schneider
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

Verfasst: Samstag 16. Juni 2007, 13:33
von veers
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 :)

Verfasst: Samstag 16. Juni 2007, 17:48
von Michael Schneider
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

Verfasst: Sonntag 17. Juni 2007, 15:11
von thelittlebug
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