OpenGL Bitmaps
-
Hi Leute..
In dem Buch OpenGL Game Programming wird im siebten Kapitel ja gezeigt, wie man mit OpenGL Bitmaps Buchstaben (als Beispiel wird 'A') verwendet darstellen kann.
Da steht dann folgendes:////// Bitmap Information /* |-----| |-----| |-----| |-----| 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 . . . . . * * * * * * . . . . . . . . . . * * * * * * . . . . . . . . . * * . . . . * * . . . . . . . . * * . . . . * * . . . . . . . * * . . . . . . * * . . . . . . * * . . . . . . * * . . . . . * * . . . . . . . . * * . . . . * * . . . . . . . . * * . . . * * . . . . . . . . . . * * . . * * * * * * * * * * * * * * . * * . * * * * * * * * * * . * * * * . . . . . . . . . . . . * * * * . . . . . . . . . . . . * * * * . . . . . . . . . . . . * * * * . . . . . . . . . . . . * * * * . . . . . . . . . . . . * * 0 1 2 3 4 5 6 7 8 9 A B C D E F */ unsigned char letterA[] = { 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x03, 0xDF, 0xFB, 0x7F, 0xFE, 0x60, 0x06, 0x30, 0x0C, 0x30, 0x0C, 0x18, 0x18, 0x18, 0x18, 0x0C, 0x30, 0x0C, 0x30, 0x07, 0xE0, 0x07, 0xE0 };
Irgendwie blicke ich da nicht durch? Also wie aus diesem Array obiges Bild entsteht???
Koennte mir da jemand auf die Spruenge helfen?
Danke im voraus.
MfG Aoeke
-
Nee, blicke ich auch nicht. Normalerweise schreibt man doch das LSB hinten hin, aber hier ist es schienbar genua andersrum! Ausserdem kann ich mir nicht vorstellen, das irgendeine GraKa 1bit SW-Texturen unterstützt.
-
Ahh, jetzt hab ichs! Das Ding ist upside down! Also die erste Zeile steht codiert zuletzt (warum auch immer).
-
Ja, das stand hier glaube ich auch irgendwo...
Aber wie ist das codiert?? Irgendwie komme ich da nicht drauf???
Danke.
MfG Aoeke
-
////// Bitmap Information /* |-----| |-----| |-----| |-----| 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 * * . . . . . . . . . . . . * * 0 1 2 3 4 5 6 7 8 9 A B C D E F */ unsigned char letterA[] = { 0xC0, 0x03, };
Letzte Bitmapzeile = die ersten Byte-Werte.
Er speichert immer 4 Bit in Blöcken, also für die 4 (8,4,2,1)-Blöcke = 2 Byte (0x??, 0x??).
Im ersten 4-Bit-Block: 8 + 4 = 12 -> Hex: C
Im zweiten: 0 -> Hex: 0Ergo, 1. Byte: 0xC0
Im dritten: 0 -> Hex: 0
Im vierten: 2 + 1 = 3 -> Hex: 3Ergo, 2. Byte: 0x03
Klar jetzt?!
-
Jup, dankeschoen!
MfG Aoeke