| 83 | } |
| 84 | |
| 85 | public static int[][] generateMipMapData(int[] data, int width, int height, Dimension[] mipmapDimensions) |
| 86 | { |
| 87 | int[] aint = data; |
| 88 | int i = width; |
| 89 | boolean flag = true; |
| 90 | int[][] aint1 = new int[mipmapDimensions.length][]; |
| 91 | |
| 92 | for (int j = 0; j < mipmapDimensions.length; ++j) |
| 93 | { |
| 94 | Dimension dimension = mipmapDimensions[j]; |
| 95 | int k = dimension.width; |
| 96 | int l = dimension.height; |
| 97 | int[] aint2 = new int[k * l]; |
| 98 | aint1[j] = aint2; |
| 99 | int i1 = j + 1; |
| 100 | |
| 101 | if (flag) |
| 102 | { |
| 103 | for (int j1 = 0; j1 < k; ++j1) |
| 104 | { |
| 105 | for (int k1 = 0; k1 < l; ++k1) |
| 106 | { |
| 107 | int l1 = aint[j1 * 2 + 0 + (k1 * 2 + 0) * i]; |
| 108 | int i2 = aint[j1 * 2 + 1 + (k1 * 2 + 0) * i]; |
| 109 | int j2 = aint[j1 * 2 + 1 + (k1 * 2 + 1) * i]; |
| 110 | int k2 = aint[j1 * 2 + 0 + (k1 * 2 + 1) * i]; |
| 111 | int l2 = alphaBlend(l1, i2, j2, k2); |
| 112 | aint2[j1 + k1 * k] = l2; |
| 113 | } |
| 114 | } |
| 115 | } |
| 116 | |
| 117 | aint = aint2; |
| 118 | i = k; |
| 119 | |
| 120 | if (k <= 1 || l <= 1) |
| 121 | { |
| 122 | flag = false; |
| 123 | } |
| 124 | } |
| 125 | |
| 126 | return aint1; |
| 127 | } |
| 128 | |
| 129 | public static int alphaBlend(int c1, int c2, int c3, int c4) |
| 130 | { |