Canvas ähnlich HTML5 verfügbar?

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Antworten
soviet
User
Beiträge: 2
Registriert: Mittwoch 7. Mai 2014, 08:53

hallo zusammen.

um python zu lernen, möchte ich einen einfachen software rasterizer schreiben. ich schreibe beruflich software und kenne bereits andere sprachen (C/C++, Perl, Javascript, etc.), also bin ich kein unerfahrener programmierer.

ich habe mich für den unbequemen weg entschieden, um einen rasterizer zu schreiben:

ein einfaches, eindimensionales array dient als farbpuffer. jedes pixel ist 4 byte groß (RGBA). ein pixel wird mit einer elementaren funktion (set_pixel( xy, color)) manipuliert. diese funktion wird zum clearen des farbpuffers, zum zeichnen von primitiven usw verwendet. wenn ein frame fertig ist, soll dieser farbpuffer einem widget (canvas?) übergeben werden, der diesen farbpuffer dann anzeigen kann.

die minimale schnittstelle zum anzeigen des farbpuffers wäre also: canvas.set_image_data( colorbuffer ). intern würde ich den farbpuffer bei bedarf normalisieren (z.B. pixelformat in ARGB ändern, etc.) und an das entsprechende backend (z.b. cairo) weiterreichen.

nach oberflächlichem suchen bin ich auf pycairo (cairo.ImageSurface.create_for_data(...), leider nicht für python 3 :() aufmerksam geworden. da ich GTK3 (pygobject) für fenster/input/etc verwenden möchte, würde das (fast) ideal passen.

bin ich auf dem richtigen dampfer oder gibt es bessere alternativen? vorallem würde es mich freuen, wenn ich das projekt in python 3 schreiben könnte. für den prototypen spielt die performance keine rolle.

danke! ;)
soviet
User
Beiträge: 2
Registriert: Mittwoch 7. Mai 2014, 08:53

hallo zusammen.

ich habe mich nun für pyglet entschieden. :)
Antworten