protected override void EncodeTile(byte[] src, int srcPos, int stride, byte[] dst, int dstPos) { int srcCurrentPos = srcPos, dstCurrentPos = dstPos; for (int ty = 0; ty < TileHeight; ty++, srcCurrentPos += stride - TileWidth * 4) { for (int tx = 0; tx < TileWidth; tx++, srcCurrentPos += 4) { if ((tx & 1) == 0) { dst[dstCurrentPos] = (byte)(ColorConversion.ColorToI4(ColorRGBA.Read(src, srcCurrentPos)) << 4); } else if ((tx & 1) == 1) { dst[dstCurrentPos] |= ColorConversion.ColorToI4(ColorRGBA.Read(src, srcCurrentPos)); dstCurrentPos++; } } } }
protected override ColorRGBA TrimColor(ColorRGBA color) { return(ColorConversion.I4ToColor(ColorConversion.ColorToI4(color))); }