Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>Hilfe gesucht: SDL Bildschirmausgabe

Hilfe gesucht: SDL Bildschirmausgabe

andreas_g
andreas_g19.05.1210:01
Liebe MTN Community!

Sind Programmierer mit SDL-Erfahrungen unter euch?

Folgende Aufgabe habe ich:
Das Programm an dem ich arbeite (Emulator) schreibt seine Daten für die Bildschirmausgabe in ein Array (2*1024*1024 Elemente zu je 1 Byte). Dabei definieren je 2 Byte ein Pixel (das Ganze für 1120 x 832 Pixel).

16-bit Format: 0xFFF0
Maske rot: 0xF000
Maske grün: 0x0F00
Maske blau: 0x00F0

Es gibt somit für jede Farbe 16 möglich Werte, also 4096 darstellbare Farben.

Es soll nun jedes Pixel auf dem Host-Screen dargestellt werden und das mit möglichst geringem Rechenaufwand.
Es würde sich also anbieten, die umgewandelten Daten für jedes Pixel aus einem Look-up-table mit den 4096 möglichen Werten zu beziehen, anstatt sie jeweils neu zu berechnen.

Bin für jeden Tipp, wie das umgesetzt werden kann, dankbar!

Hier kann der aktuelle Code eingesehen werden:


Er funktioniert bereits für ein 2-bit (schwarz, weiß, 2 Graustufen) Format.
0

Kommentare

bmc desgin22.05.1222:20
Deine links funktionieren nicht???
„Ask your questions...“
0
bmc desgin22.05.1222:21
Und was ist mit dem alpha???
0x000f ???
„Ask your questions...“
0
Stefan S.
Stefan S.22.05.1222:33
Link 1:
Link 2:
0
bmc desgin24.05.1200:41
Mmhh...

Wo kommt den der Bitcount her ???

Direkt von screen oder wird der händisch gesetzt???
„Ask your questions...“
0
bmc desgin24.05.1200:42
39 Uint8 pNEXTScreen[(1120*832)*2];


Müssten hier nicht auch 8bits übergeben werden???
„Ask your questions...“
0
andreas_g
andreas_g26.05.1211:36
Und was ist mit dem alpha???
Nach dem derzeitigen Wissensstand nutzt das Gast-System kein Alpha.
Direkt von screen oder wird der händisch gesetzt???
Müssten hier nicht auch 8bits übergeben werden???
Ich verstehe leider nicht genau was hier gemeint ist. Das ist alles Neuland für mich. Eventuell wäre es sinnvoller einen beispielhaften Ablauf durchzuspielen ohne den derzeitigen Code (welcher in einem etwas chaotischen Zustand ist).

Ausgangslage wäre ein Puffer (2MB), welcher regelmäßig vom Gast-System befüllt/geändert wird. Die Daten im Puffer haben das oben erwähnte Format für die darzustellenden Pixel. Die Pixel sollen nach Umwandlung in das Host-Pixel-Format in einem Rechteck mit den Maßen 1120 x 832 Pixel dargestellt werden.
0
andreas_g
andreas_g26.05.1211:47
Wo kommt den der Bitcount her ???

Sorry, jetzt ist mir klar was gemeint war. Der bitcount wird derzeit händisch gesetzt. Nach meinem Verständnis müsste er für die 4096 Farben des Gast-Systems jedoch auf mindestens 16 gesetzt werden.
Oder wäre es besser, den bitcount automatisch an das Host-System anpassen zu lassen?
0
bmc desgin28.05.1222:28
Logisch wäre es, den bitcount vom system setzen zu lassen, dann musst du nur die jeweilige ausgabe anpassen...

Die berechnung wäre ja für alle gleich...


Vg
„Ask your questions...“
0
bmc desgin28.05.1222:32
Für weiter oben...

Müsste hier nicht stehen
1182x892x8
????

Bei 2 wären ja nur an/aus... - also schwarz oder weiss...

Oder verpeil ich jetzt gerade was vom code her???


Vg
„Ask your questions...“
0
Blubs
Blubs29.05.1200:45
x2 Byte, nicht bit
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.