Ich möchte die durchschnittliche Farbe des Bildschirminhalts erhalten, wenn XBMC ausgeführt wird, um die Farbe eines TV-Umgebungslichts zu ändern. XBMC läuft auf einem kleinen HTPC mit OpenGL ES 2.0 Hardware (Raspberry Pi), auf dem eine von Debian abgeleitete Distribution läuft. Ich denke, ich muss vom Bild Bildpuffer lesen, in dem XBMC mit OpenGL zeichnet. (Zumindest denke ich und hoffe, dass XBMC alles mit OpenGL rendert.)Effizient lesen Sie die durchschnittliche Farbe des Bildschirminhalts von XBMC
Ist es möglich, den OpenGL-Bildpuffer zu lesen, der die gesamte Bildschirmausgabe darstellt? Was brauche ich, um darauf zugreifen zu können? Brauche ich auch einen eigenen Renderkontext, um auf den Bildspeicher des Bildschirms zuzugreifen? (Ich mache nichts selbst auf den Bildschirm, ich möchte nur lesen).
Effiziente Berechnung der durchschnittlichen Farbe ist die nächste Aufgabe. Ich denke darüber nach, jeden 8. oder 16. Pixel pro Zeile/Spalte zu lesen (es reicht, wir reden über 1080p HD-Filme) und berechnen dann den Durchschnitt auf der CPU. Irgendwelche Ideen für eine bessere Lösung sind willkommen.
Rahmenpuffer, nicht Bildschirmpuffer, da Sie gefragt. Beide sind jedoch richtig. – Linuxios
@Linuxios Danke. Ich dachte darüber nach "Framepuffer" zu sagen, aber der Leser könnte denken, dass ich etwas, das ich vorher gerendert habe, zurücklesen möchte. Was ist hier nicht der Fall. Ich betone nur, dass es der ganze Bildschirm ist. – leemes
Der Bildpuffer enthält genau das, was gerade auf dem Bildschirm ist. Deshalb sage ich das. – Linuxios