Der Beitrag ist zwar schon etwas älter, aber trifft fast mein Problem.
Bin gerade dabei für meinen Prof. einen Paintclone in C und SDL zu schreiben und ich breche hier gleich ins Essen. Unter anderem möchte er gerne die klassische Füllfunktion realisiert haben. Grundlage meiner Idee zur Lösung des Problems ist, das ich den Farbwert des Pixels n mit den Koordinaten x/y auslese. Und das will mir einfach nicht gelingen!
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
|
SDL_LockSurface (MeinSurface);
SDL_PixelFormat *format = MeinSurface->format;
SDL_GetRGB(32100, format, &r, &g, &b);
SDL_UnlockSurface (MeinSurface->GetImage());
cout << "r: " << r << " g: " << g << " b: " << b << endl;
|
Die Ausgabe des Pixels ergibt für r, g und b aber nur ASCII-Schrott. Irgendwelche Zeichen. Oder die Ausgabe bricht ganz ab.
Außerdem finde ich es irgendwie total bescheuert, das ich ein Pixel nicht mit den Koordinaten x/y ansprechen kann, sondern aus den Koordinaten noch erst die fortlaufende Nummer berechnen muss. Gibt es da nicht evtl. auch eine schönere Lösung mit Koordinaten? Das Problem macht mich jedenfalls voll fertig und ich bin kurz vorm Platzen.
Für Hilfe wäre mein Blutdruck echt dankbar...