JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.phpMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Farbbestimmung

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Mr. Data
Mini JLI'ler



Anmeldedatum: 16.09.2002
Beiträge: 39

Medaillen: Keine

BeitragVerfasst am: 17.07.2003, 14:50    Titel: Farbbestimmung Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Mr.X
Junior JLI'ler



Anmeldedatum: 15.04.2003
Beiträge: 88

Medaillen: Keine

BeitragVerfasst am: 17.07.2003, 18:48    Titel: Re: Farbbestimmung Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
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

Impressum