Levente Uzonyi uploaded a new version of Graphics to project The Trunk:
http://source.squeak.org/trunk/Graphics-ul.152.mcz==================== Summary ====================
Name: Graphics-ul.152
Author: ul
Time: 2 November 2010, 3:12:47.835 am
UUID: f2a5386f-5f44-5f45-a35c-1dab7538fb00
Ancestors: Graphics-dtl.151
- use paragma declarations for #inline: and #var:declareC:
=============== Diff against Graphics-dtl.151 ===============
Item was changed:
----- Method: WarpBlt>>rgbMap:from:to: (in category 'smoothing') -----
rgbMap: sourcePixel from: nBitsIn to: nBitsOut
"NOTE: This code is copied verbatim from BitBltSimulation so that it
may be removed from the system"
"Convert the given pixel value with nBitsIn bits for each color component to a pixel value with nBitsOut bits for each color component. Typical values for nBitsIn/nBitsOut are 3, 5, or 8."
| mask d srcPix destPix |
+ <inline: true>
- self inline: true.
(d := nBitsOut - nBitsIn) > 0
ifTrue:
["Expand to more bits by zero-fill"
mask := (1 << nBitsIn) - 1. "Transfer mask"
srcPix := sourcePixel << d.
mask := mask << d.
destPix := srcPix bitAnd: mask.
mask := mask << nBitsOut.
srcPix := srcPix << d.
^ destPix + (srcPix bitAnd: mask)
+ (srcPix << d bitAnd: mask << nBitsOut)]
ifFalse:
["Compress to fewer bits by truncation"
d = 0 ifTrue: [^ sourcePixel]. "no compression"
sourcePixel = 0 ifTrue: [^ sourcePixel]. "always map 0 (transparent) to 0"
d := nBitsIn - nBitsOut.
mask := (1 << nBitsOut) - 1. "Transfer mask"
srcPix := sourcePixel >> d.
destPix := srcPix bitAnd: mask.
mask := mask << nBitsOut.
srcPix := srcPix >> d.
destPix := destPix + (srcPix bitAnd: mask)
+ (srcPix >> d bitAnd: mask << nBitsOut).
destPix = 0 ifTrue: [^ 1]. "Dont fall into transparent by truncation"
^ destPix]!