Details | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 244 | chris | 1 | { |
| 2 | ulong* anAlphaData = new ulong[mWidth*mHeight]; |
||
| 3 | |||
| 4 | if (theNumBits == 16) |
||
| 5 | { |
||
| 6 | for (int i = 0; i < mWidth*mHeight; i++) |
||
| 7 | { |
||
| 8 | ulong val = NEXT_SRC_COLOR; |
||
| 9 | |||
| 10 | int anAlpha = val >> 24; |
||
| 11 | |||
| 12 | int r = ((val >> 16) & 0xFF) * anAlpha >> 8; |
||
| 13 | int g = ((val >> 8 ) & 0xFF) * anAlpha >> 8; |
||
| 14 | int b = ((val ) & 0xFF) * anAlpha >> 8; |
||
| 15 | |||
| 16 | anAlphaData[i] = |
||
| 17 | ((((r * theRMask) >> 8) & theRMask) | |
||
| 18 | (((g * theGMask) >> 8) & theGMask) | |
||
| 19 | (((b * theBMask) >> 8) & theBMask) | |
||
| 20 | (anAlpha << 24)); |
||
| 21 | } |
||
| 22 | } |
||
| 23 | else if (theNumBits == 32) |
||
| 24 | { |
||
| 25 | for (int i = 0; i < mWidth*mHeight; i++) |
||
| 26 | { |
||
| 27 | ulong val = NEXT_SRC_COLOR; |
||
| 28 | |||
| 29 | int anAlpha = val >> 24; |
||
| 30 | |||
| 31 | int r = (((val >> 16) & 0xFF) * anAlpha) >> 8; |
||
| 32 | int g = (((val >> 8 ) & 0xFF) * anAlpha) >> 8; |
||
| 33 | int b = (((val ) & 0xFF) * anAlpha) >> 8; |
||
| 34 | |||
| 35 | anAlphaData[i] = |
||
| 36 | (((r * theRMask) >> 8) & theRMask) | |
||
| 37 | (((g * theGMask) >> 8) & theGMask) | |
||
| 38 | (((b * theBMask) >> 8) & theBMask) | |
||
| 39 | (anAlpha << 24); |
||
| 40 | } |
||
| 41 | } |
||
| 42 | |||
| 43 | mNativeAlphaData = anAlphaData; |
||
| 44 | } |