From: Kimmo R. <ki...@us...> - 2011-09-04 19:25:49
|
Update of /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d In directory vz-cvs-4.sog:/tmp/cvs-serv26547/src/games/stendhal/client/gui/j2d Modified Files: Blend.java Log Message: Speed optimization Index: Blend.java =================================================================== RCS file: /cvsroot/arianne/stendhal/src/games/stendhal/client/gui/j2d/Blend.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Blend.java 3 Sep 2011 18:55:24 -0000 1.5 --- Blend.java 4 Sep 2011 19:25:47 -0000 1.6 *************** *** 90,94 **** */ private static class BlendContext implements CompositeContext { - final int maxAlpha; final Composer composer; --- 90,93 ---- *************** *** 102,107 **** */ BlendContext(Mode mode, ColorModel srcColorModel, ColorModel dstColorModel) { - maxAlpha = srcColorModel.getAlpha(0xffffffff); - switch (mode) { case COLOR: composer = new ColorComposer(); --- 101,104 ---- *************** *** 130,136 **** for (int x = 0; x < width; x++) { - splitRgb(srcData[x], srcPixel); splitRgb(dstData[x], dstPixel); ! dstData[x] = composer.compose(srcPixel, dstPixel); } dstOut.setDataElements(0, y, width, 1, dstData); --- 127,137 ---- for (int x = 0; x < width; x++) { splitRgb(dstData[x], dstPixel); ! // These are alpha preserving modes. Just skip any ! // transparent destination pixels ! if (dstPixel[ALPHA] != 0) { ! splitRgb(srcData[x], srcPixel); ! dstData[x] = composer.compose(srcPixel, dstPixel); ! } } dstOut.setDataElements(0, y, width, 1, dstData); *************** *** 229,233 **** public int compose(int[] srcPixel, int[] dstPixel) { int[] result = new int[4]; ! result[ALPHA] = dstPixel[ALPHA] * srcPixel[ALPHA] / maxAlpha; result[RED] = dstPixel[RED] * srcPixel[RED] / 255; result[GREEN] = dstPixel[GREEN] * srcPixel[GREEN] / 255; --- 230,234 ---- public int compose(int[] srcPixel, int[] dstPixel) { int[] result = new int[4]; ! result[ALPHA] = dstPixel[ALPHA]; result[RED] = dstPixel[RED] * srcPixel[RED] / 255; result[GREEN] = dstPixel[GREEN] * srcPixel[GREEN] / 255; |