|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Mr. Data Mini JLI'ler
Anmeldedatum: 16.09.2002 Beiträge: 39
Medaillen: Keine
|
Verfasst am: 17.07.2003, 13:50 Titel: Farbbestimmung |
|
|
Hallo
Ich hab eine Frage zu Kapitel 17 im Buch genauer gesagt zu den Funktionen 'DeterminePixelFormat(...)' und 'CalcColor(...)'
Bei 'DeterminePixelFormat(...)' frag ich mich bei den if-Anweisungen was es mit den Werten der Shift-Variablen auf sich hat und ob mit der 31 die Farbtiefe gemeint ist.
Bei 'CalcColor(...)' frag ich mich welche Variablen als Parameter übergeben werden
Danke für Antworten _________________ nothing is inmpossible |
|
Nach oben |
|
|
Mr.X Junior JLI'ler
Anmeldedatum: 15.04.2003 Beiträge: 88
Medaillen: Keine
|
Verfasst am: 17.07.2003, 17:48 Titel: Re: Farbbestimmung |
|
|
Mr. Data hat Folgendes geschrieben: | ...ob mit der 31 die Farbtiefe gemeint ist... |
Nein. Die 31 ist nur die dezimale Schreibweise für die Binär-Zahl 11111, d.h. bei den if-Abfragen wird geprüft, ob die Anzahl an Bits innerhalb der jeweiligen Bitmaske gleich 5 (31 == 5 pos. Bits) ist. Das funktioniert daher, weil vorher die jeweils abgefragte Bitmaske solange nach rechts geshiftet wurde, bis das niederwertigste Bit eine 1 ist.
Mmh kompliziert erklärt :/ Mal'n optisches Beispiel:
0000001111100000 // das wäre z.B. eine Bitmaske für Grün im 6-5-5-RGB-Modus bei 16 Bit
0000000000011111 //diesselbe Bitmaske nach dem rechts-shiften bis das niederwertigste Bit 1 geworden ist
0000000000011111==11111 //Vergleich der Bitmaske mit 31
Bei Gleichheit weisst Du nun, daß für Grün 5 Bits genommen werden.
P.S.: Genaugenommen werden in der ALU der CPU eigentlich 2 32-Bit-Werte verglichen. Untereinandergeschrieben so:
00000000000000000000000000011111 //die geshiftete Bitmaske auf 32 Bit erweitert
00000000000000000000000000011111 //die Zahl 31 ist eine 32-Bit-Integer-Zahl |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|