231fae1a4c
* Initial implementation of the texture cache * Cache vertex and index data aswell, some cleanup * Improve handling of the cache by storing cached ranges on a list for each page * Delete old data from the caches automatically, ensure that the cache is cleaned when the mapping/size changes, and some general cleanup
55 lines
1.4 KiB
C#
55 lines
1.4 KiB
C#
using Ryujinx.Graphics.Gal;
|
|
|
|
namespace Ryujinx.Core.Gpu
|
|
{
|
|
struct Texture
|
|
{
|
|
public long Position { get; private set; }
|
|
|
|
public int Width { get; private set; }
|
|
public int Height { get; private set; }
|
|
public int Pitch { get; private set; }
|
|
|
|
public int BlockHeight { get; private set; }
|
|
|
|
public TextureSwizzle Swizzle { get; private set; }
|
|
|
|
public GalTextureFormat Format { get; private set; }
|
|
|
|
public Texture(
|
|
long Position,
|
|
int Width,
|
|
int Height)
|
|
{
|
|
this.Position = Position;
|
|
this.Width = Width;
|
|
this.Height = Height;
|
|
|
|
Pitch = 0;
|
|
|
|
BlockHeight = 16;
|
|
|
|
Swizzle = TextureSwizzle.BlockLinear;
|
|
|
|
Format = GalTextureFormat.A8B8G8R8;
|
|
}
|
|
|
|
public Texture(
|
|
long Position,
|
|
int Width,
|
|
int Height,
|
|
int Pitch,
|
|
int BlockHeight,
|
|
TextureSwizzle Swizzle,
|
|
GalTextureFormat Format)
|
|
{
|
|
this.Position = Position;
|
|
this.Width = Width;
|
|
this.Height = Height;
|
|
this.Pitch = Pitch;
|
|
this.BlockHeight = BlockHeight;
|
|
this.Swizzle = Swizzle;
|
|
this.Format = Format;
|
|
}
|
|
}
|
|
} |