|
1 | | -#define ASSUME_IMAGE_TILING |
2 | | - |
3 | 1 | using AssetRipper.TextureDecoder.Rgb; |
4 | 2 | using System.Diagnostics; |
5 | 3 |
|
@@ -94,12 +92,12 @@ public static int DecompressPVRTC<TOutputColor, TOutputChannelValue>(ReadOnlySpa |
94 | 92 | int blockX = (x - xBlockSize / 2); |
95 | 93 | int blockY = (y - BlockYSize / 2); |
96 | 94 |
|
97 | | - blockX = LimitCoord(blockX, xDim) / xBlockSize; |
98 | | - blockY = LimitCoord(blockY, yDim) / BlockYSize; |
| 95 | + blockX = LimitCoordinate(blockX, xDim) / xBlockSize; |
| 96 | + blockY = LimitCoordinate(blockY, yDim) / BlockYSize; |
99 | 97 |
|
100 | 98 | // compute the positions of the other 3 blocks |
101 | | - int blockXp1 = LimitCoord(blockX + 1, blockXDim); |
102 | | - int blockYp1 = LimitCoord(blockY + 1, blockYDim); |
| 99 | + int blockXp1 = LimitCoordinate(blockX + 1, blockXDim); |
| 100 | + int blockYp1 = LimitCoordinate(blockY + 1, blockYDim); |
103 | 101 |
|
104 | 102 | // map to block memory locations |
105 | 103 | uint blocki00 = TwiddleUV((uint)blockYDim, (uint)blockXDim, (uint)blockY, (uint)blockX); |
@@ -456,19 +454,20 @@ private static void Unpack5554Colour(AmtcBlock block, Span<int> abColors) |
456 | 454 | } |
457 | 455 |
|
458 | 456 | /// <summary> |
459 | | - /// Define an expression to either wrap or clamp large or small vals to the legal coordinate range |
| 457 | + /// Define an expression to either wrap or clamp large or small values to the legal coordinate range. |
460 | 458 | /// </summary> |
461 | | - [MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)] |
462 | | - private static int LimitCoord(int value, int size) |
| 459 | + private static int LimitCoordinate(int value, int size, bool assumeImageTiling = true) |
463 | 460 | { |
464 | | -#if ASSUME_IMAGE_TILING |
465 | | - // wrap coord |
466 | | - return value & (size - 1); |
467 | | -#else |
468 | | - // clamp |
469 | | - return h < x ? h : (x > l ? x : l); |
470 | | - return Clamp(Val, 0, Size - 1); |
471 | | -#endif |
| 461 | + if (assumeImageTiling) |
| 462 | + { |
| 463 | + // wrap coordinate |
| 464 | + return value & (size - 1); |
| 465 | + } |
| 466 | + else |
| 467 | + { |
| 468 | + // clamp coordinate |
| 469 | + return int.Clamp(value, 0, size - 1); |
| 470 | + } |
472 | 471 | } |
473 | 472 |
|
474 | 473 | /// <summary> |
|
0 commit comments