using System;
namespace Ryujinx.Graphics.Texture
{
class LinearSwizzle : ISwizzle
private int _pitch;
private int _bpp;
private int _sliceSize;
public LinearSwizzle(int pitch, int bpp, int width, int height)
_pitch = pitch;
_bpp = bpp;
_sliceSize = width * height * bpp;
}
public void SetMipLevel(int level)
throw new NotImplementedException();
public int GetMipOffset(int level)
if (level == 1)
return _sliceSize;
public int GetImageSize(int mipsCount)
int size = GetMipOffset(mipsCount);
size = (size + 0x1fff) & ~0x1fff;
return size;
public int GetSwizzleOffset(int x, int y, int z)
return z * _sliceSize + x * _bpp + y * _pitch;