@@ -1510,12 +1510,10 @@ protected static int nextPowerOfTwo(int val) {
15101510 */
15111511 protected static int nativeToJavaARGB (int color ) {
15121512 if (BIG_ENDIAN ) { // RGBA to ARGB
1513- return (color >>> 8 ) | ((color << 24 ) & 0xFF000000 );
1514- // equivalent to
1515- // ((color >> 8) & 0x00FFFFFF) | ((color << 24) & 0xFF000000)
1513+ return (color >>> 8 ) | (color << 24 );
15161514 } else { // ABGR to ARGB
1517- return (( color & 0xFF ) << 16 ) | (( color & 0xFF0000 ) >> 16 ) |
1518- ( color & 0xFF00FF00 );
1515+ int rb = color & 0x00FF00FF ;
1516+ return ( color & 0xFF00FF00 ) | ( rb << 16 ) | ( rb >> 16 );
15191517 }
15201518 }
15211519
@@ -1534,13 +1532,13 @@ protected static void nativeToJavaARGB(int[] pixels, int width, int height) {
15341532 int pixy = pixels [yindex ];
15351533 int pixi = pixels [index ];
15361534 if (BIG_ENDIAN ) { // RGBA to ARGB
1537- pixels [index ] = (pixy >>> 8 ) | (( pixy << 24 ) & 0xFF000000 );
1538- pixels [yindex ] = (pixi >>> 8 ) | (( pixi << 24 ) & 0xFF000000 );
1535+ pixels [index ] = (pixy >>> 8 ) | (pixy << 24 );
1536+ pixels [yindex ] = (pixi >>> 8 ) | (pixi << 24 );
15391537 } else { // ABGR to ARGB
1540- pixels [ index ] = (( pixy & 0xFF ) << 16 ) | (( pixy & 0xFF0000 ) >> 16 ) |
1541- ( pixy & 0xFF00FF00 ) ;
1542- pixels [yindex ] = (( pixi & 0xFF ) << 16 ) | (( pixi & 0xFF0000 ) >> 16 ) |
1543- ( pixi & 0xFF00FF00 );
1538+ int rbi = pixi & 0x00FF00FF ;
1539+ int rby = pixy & 0x00FF00FF ;
1540+ pixels [index ] = (pixy & 0xFF00FF00 ) | ( rby << 16 ) | (rby >> 16 );
1541+ pixels [ yindex ] = ( pixi & 0xFF00FF00 ) | ( rbi << 16 ) | ( rbi >> 16 );
15441542 }
15451543 index ++;
15461544 yindex ++;
@@ -1553,10 +1551,10 @@ protected static void nativeToJavaARGB(int[] pixels, int width, int height) {
15531551 for (int x = 0 ; x < width ; x ++) {
15541552 int pixi = pixels [index ];
15551553 if (BIG_ENDIAN ) { // RGBA to ARGB
1556- pixels [index ] = (pixi >>> 8 ) | (( pixi << 24 ) & 0xFF000000 );
1554+ pixels [index ] = (pixi >>> 8 ) | (pixi << 24 );
15571555 } else { // ABGR to ARGB
1558- pixels [ index ] = (( pixi & 0xFF ) << 16 ) | (( pixi & 0xFF0000 ) >> 16 ) |
1559- ( pixi & 0xFF00FF00 );
1556+ int rbi = pixi & 0x00FF00FF ;
1557+ pixels [ index ] = ( pixi & 0xFF00FF00 ) | ( rbi << 16 ) | ( rbi >> 16 );
15601558 }
15611559 index ++;
15621560 }
@@ -1573,8 +1571,9 @@ protected static int nativeToJavaRGB(int color) {
15731571 if (BIG_ENDIAN ) { // RGBA to ARGB
15741572 return (color >>> 8 ) | 0xFF000000 ;
15751573 } else { // ABGR to ARGB
1576- return ((color & 0xFF ) << 16 ) | ((color & 0xFF0000 ) >> 16 ) |
1577- (color & 0xFF00FF00 ) | 0xFF000000 ;
1574+ int rb = color & 0x00FF00FF ;
1575+ return 0xFF000000 | (rb << 16 ) |
1576+ (color & 0x0000FF00 ) | (rb >> 16 );
15781577 }
15791578 }
15801579
@@ -1597,10 +1596,12 @@ protected static void nativeToJavaRGB(int[] pixels, int width, int height) {
15971596 pixels [index ] = (pixy >>> 8 ) | 0xFF000000 ;
15981597 pixels [yindex ] = (pixi >>> 8 ) | 0xFF000000 ;
15991598 } else { // ABGR to ARGB
1600- pixels [index ] = ((pixy & 0xFF ) << 16 ) | ((pixy & 0xFF0000 ) >> 16 ) |
1601- (pixy & 0xFF00FF00 ) | 0xFF000000 ;
1602- pixels [yindex ] = ((pixi & 0xFF ) << 16 ) | ((pixi & 0xFF0000 ) >> 16 ) |
1603- (pixi & 0xFF00FF00 ) | 0xFF000000 ;
1599+ int rbi = pixi & 0x00FF00FF ;
1600+ int rby = pixy & 0x00FF00FF ;
1601+ pixels [index ] = 0xFF000000 | (rby << 16 ) |
1602+ (pixy & 0x0000FF00 ) | (rby >> 16 );
1603+ pixels [yindex ] = 0xFF000000 | (rbi << 16 ) |
1604+ (pixi & 0x0000FF00 ) | (rbi >> 16 );
16041605 }
16051606 index ++;
16061607 yindex ++;
@@ -1615,8 +1616,9 @@ protected static void nativeToJavaRGB(int[] pixels, int width, int height) {
16151616 if (BIG_ENDIAN ) { // RGBA to ARGB
16161617 pixels [index ] = (pixi >>> 8 ) | 0xFF000000 ;
16171618 } else { // ABGR to ARGB
1618- pixels [index ] = ((pixi & 0xFF ) << 16 ) | ((pixi & 0xFF0000 ) >> 16 ) |
1619- (pixi & 0xFF00FF00 ) | 0xFF000000 ;
1619+ int rbi = pixi & 0x00FF00FF ;
1620+ pixels [index ] = 0xFF000000 | (rbi << 16 ) |
1621+ (pixi & 0x000FF00 ) | (rbi >> 16 );
16201622 }
16211623 index ++;
16221624 }
@@ -1630,10 +1632,10 @@ protected static void nativeToJavaRGB(int[] pixels, int width, int height) {
16301632 */
16311633 protected static int javaToNativeARGB (int color ) {
16321634 if (BIG_ENDIAN ) { // ARGB to RGBA
1633- return (( color >> 24 ) & 0xFF ) | (( color << 8 ) & 0xFFFFFF00 );
1635+ return (color >>> 24 ) | (color << 8 );
16341636 } else { // ARGB to ABGR
1635- return ( color & 0xFF000000 ) | (( color << 16 ) & 0xFF0000 ) |
1636- ( color & 0xFF00 ) | (( color >> 16 ) & 0xFF );
1637+ int rb = color & 0x00FF00FF ;
1638+ return ( color & 0xFF00FF00 ) | ( rb << 16 ) | (rb >> 16 );
16371639 }
16381640 }
16391641
@@ -1652,13 +1654,13 @@ protected static void javaToNativeARGB(int[] pixels, int width, int height) {
16521654 int pixy = pixels [yindex ];
16531655 int pixi = pixels [index ];
16541656 if (BIG_ENDIAN ) { // ARGB to RGBA
1655- pixels [index ] = (( pixy >> 24 ) & 0xFF ) | (( pixy << 8 ) & 0xFFFFFF00 );
1656- pixels [yindex ] = (( pixi >> 24 ) & 0xFF ) | (( pixi << 8 ) & 0xFFFFFF00 );
1657+ pixels [index ] = (pixy >>> 24 ) | (pixy << 8 );
1658+ pixels [yindex ] = (pixi >>> 24 ) | (pixi << 8 );
16571659 } else { // ARGB to ABGR
1658- pixels [ index ] = ( pixy & 0xFF000000 ) | (( pixy << 16 ) & 0xFF0000 ) |
1659- ( pixy & 0xFF00 ) | (( pixy >> 16 ) & 0xFF ) ;
1660- pixels [yindex ] = (pixi & 0xFF000000 ) | (( pixi << 16 ) & 0xFF0000 ) |
1661- ( pixi & 0xFF00 ) | (( pixi >> 16 ) & 0xFF );
1660+ int rbi = pixi & 0x00FF00FF ;
1661+ int rby = pixy & 0x00FF00FF ;
1662+ pixels [index ] = (pixy & 0xFF00FF00 ) | (rby << 16 ) | ( rby >> 16 );
1663+ pixels [ yindex ] = ( pixi & 0xFF00FF00 ) | ( rbi << 16 ) | (rbi >> 16 );
16621664 }
16631665 index ++;
16641666 yindex ++;
@@ -1671,10 +1673,10 @@ protected static void javaToNativeARGB(int[] pixels, int width, int height) {
16711673 for (int x = 0 ; x < width ; x ++) {
16721674 int pixi = pixels [index ];
16731675 if (BIG_ENDIAN ) { // ARGB to RGBA
1674- pixels [index ] = (( pixi >> 24 ) & 0xFF ) | (( pixi << 8 ) & 0xFFFFFF00 );
1676+ pixels [index ] = (pixi >>> 24 ) | (pixi << 8 );
16751677 } else { // ARGB to ABGR
1676- pixels [ index ] = ( pixi & 0xFF000000 ) | (( pixi << 16 ) & 0xFF0000 ) |
1677- ( pixi & 0xFF00 ) | (( pixi >> 16 ) & 0xFF );
1678+ int rbi = pixi & 0x00FF00FF ;
1679+ pixels [ index ] = ( pixi & 0xFF00FF00 ) | ( rbi << 16 ) | (rbi >> 16 );
16781680 }
16791681 index ++;
16801682 }
@@ -1688,10 +1690,10 @@ protected static void javaToNativeARGB(int[] pixels, int width, int height) {
16881690 */
16891691 protected static int javaToNativeRGB (int color ) {
16901692 if (BIG_ENDIAN ) { // ARGB to RGB
1691- return 0xFF | (( color << 8 ) & 0xFFFFFF00 );
1693+ return 0xFF | (color << 8 );
16921694 } else { // ARGB to BGR
1693- return 0xFF000000 | (( color << 16 ) & 0xFF0000 ) |
1694- (color & 0xFF00 ) | (( color >> 16 ) & 0xFF );
1695+ int rb = color & 0x00FF00FF ;
1696+ return 0xFF000000 | ( rb << 16 ) | (color & 0x0000FF00 ) | (rb >> 16 );
16951697 }
16961698 }
16971699
@@ -1711,13 +1713,15 @@ protected static void javaToNativeRGB(int[] pixels, int width, int height) {
17111713 int pixy = pixels [yindex ];
17121714 int pixi = pixels [index ];
17131715 if (BIG_ENDIAN ) { // ARGB to RGB
1714- pixels [index ] = 0xFF | (( pixy << 8 ) & 0xFFFFFF00 );
1715- pixels [yindex ] = 0xFF | (( pixi << 8 ) & 0xFFFFFF00 );
1716+ pixels [index ] = 0xFF | (pixy << 8 );
1717+ pixels [yindex ] = 0xFF | (pixi << 8 );
17161718 } else { // ARGB to BGR
1717- pixels [index ] = 0xFF000000 | ((pixy << 16 ) & 0xFF0000 ) |
1718- (pixy & 0xFF00 ) | ((pixy >> 16 ) & 0xFF );
1719- pixels [yindex ] = 0xFF000000 | ((pixi << 16 ) & 0xFF0000 ) |
1720- (pixi & 0xFF00 ) | ((pixi >> 16 ) & 0xFF );
1719+ int rbi = pixi & 0x00FF00FF ;
1720+ int rby = pixy & 0x00FF00FF ;
1721+ pixels [index ] = 0xFF000000 | (rby << 16 ) |
1722+ (pixy & 0x0000FF00 ) | (rby >> 16 );
1723+ pixels [yindex ] = 0xFF000000 | (rbi << 16 ) |
1724+ (pixi & 0x0000FF00 ) | (rbi >> 16 );
17211725 }
17221726 index ++;
17231727 yindex ++;
@@ -1730,10 +1734,11 @@ protected static void javaToNativeRGB(int[] pixels, int width, int height) {
17301734 for (int x = 0 ; x < width ; x ++) {
17311735 int pixi = pixels [index ];
17321736 if (BIG_ENDIAN ) { // ARGB to RGB
1733- pixels [index ] = 0xFF | (( pixi << 8 ) & 0xFFFFFF00 );
1737+ pixels [index ] = 0xFF | (pixi << 8 );
17341738 } else { // ARGB to BGR
1735- pixels [index ] = 0xFF000000 | ((pixi << 16 ) & 0xFF0000 ) |
1736- (pixi & 0xFF00 ) | ((pixi >> 16 ) & 0xFF );
1739+ int rbi = pixi & 0x00FF00FF ;
1740+ pixels [index ] = 0xFF000000 | (rbi << 16 ) |
1741+ (pixi & 0x0000FF00 ) | (rbi >> 16 );
17371742 }
17381743 index ++;
17391744 }
0 commit comments