45 lines
1000 B
C#
45 lines
1000 B
C#
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)
|
|
{
|
|
this.Pitch = Pitch;
|
|
this.Bpp = Bpp;
|
|
SliceSize = Width * Height * Bpp;
|
|
}
|
|
|
|
public void SetMipLevel(int Level)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public int GetMipOffset(int Level)
|
|
{
|
|
if (Level == 1)
|
|
return SliceSize;
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
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;
|
|
}
|
|
}
|
|
} |