SDL: Uint8 lässt sich nicht aus Datei lesen
-
ROFL
-
TGGC schrieb:
im Speicher stehen immer Nullen oder Einsen.
Stimmt. Und wenn zufällig 8 nullen in dem byte stehen, ist die ausgabe auch leer.
-
Deshalb habe ich ja auch nicht nach der Ausgabe gefragt, denn die ist typabhängig.
Bye, TGGC (Pipe my World.)
-
Kommt's in die Heldenliste?
-
Deshalb sollte man immer wenigstens nen Punkt am Ende seiner Testausgaben setzen..
Dann sieht man ob da was steht..
-
schöne Antworten, aber wenn ich Uint8 schreibe ist der Wert 32 und wenn man mal in die SDL Doku schauen würde, dann würde man auch erfahren, dass surface->format->BitsPerPixel vom Typ Uint8 ist. Von daher würde es mich sehr wundern wenn an dieser Stelle in der Datei nur Nullen stehen.
-
Welchen Wert hat bpp denn nun?
Bye, TGGC (Pipe my World.)
-
Es könnte vielleicht an der Ausrichtung der Strukturmitglieder liegen. Stell die mal probeweise (!) auf 1 Byte (in den Projekteinstellungen, falls Du Visual C++ benutzt).
-
Er liest einen einzelnen Uint8 ein.
Bye, TGGC (Pipe my World.)
-
Ich weiß. Probieren kann er's trotzdem.
-
tom07, vermutlich war ich vorher nicht deutlich genug. Uint8 ist vermutlich ein typedef von unsigned char. Wenn du ein char / signed char / unsigned char mit cout ausgibst, wird der Wert nicht als Zahl, sondern als ASCII-Code interpretiert:
unsigned char c = 32; cout << '[' << c << ']'; // gibt ein Leerzeichen aus
Wenn du den Wert als Zahl willst, musst du für die Ausgabe einen anderen Typ als Uint8 benutzen:
cout << "SDL_Surface hat Bittiefe: " << int(bpp) << "\n";