>>Bitshift
-
m_ddsd.lPitch>>1 warum macht man das in DirectDraw bei 16Bit und warum macht man bei 32Bit so m_ddsd.lPitch>>2
Habe es einfach nicht verstanden
-
Hi,
Also ein Shift nach Rechts um x>>1=x/2 und ein Schift um x>>2=x/4.
So Pitch gibt jetzt die länge einer Zeile in Bytes an.Wenn du jetzt wissen willst, wieviele Pixel du in deiner Linie hast teilst du ja die Anzahl der Bytes durch die Bytes pro Pixel.
Also wenn du 16Bits(=2Byte) pro Bixel hast dann sieht das folgendermaßen aus.
line_x_bytes/2 enspricht dann line_x_bytes>>1;Also wenn du 32Bits(=4Byte) pro Bixel hast dann sieht das folgendermaßen aus.
line_x_bytes/4 enspricht dann line_x_bytes>>2;Dieses verfahren macht man nur, wegen der geschwindigkeit, da shiften schneller ist als eine division operation.
Byte
-
Danke
-
Der Compiler macht ehh das gleiche draus.