aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics/Texture/TextureInfo.cs
blob: 66445dcce74e92924e88a2b0a04b89475b846cec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
using Ryujinx.Graphics.Gal;

namespace Ryujinx.Graphics.Texture
{
    public struct TextureInfo
    {
        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 int TileWidth   { get; private set; }

        public TextureSwizzle Swizzle { get; private set; }

        public GalImageFormat Format { get; private set; }

        public TextureInfo(
            long Position,
            int  Width,
            int  Height)
        {
            this.Position = Position;
            this.Width    = Width;
            this.Height   = Height;

            Pitch = 0;

            BlockHeight = 16;

            TileWidth = 1;

            Swizzle = TextureSwizzle.BlockLinear;

            Format = GalImageFormat.A8B8G8R8 | GalImageFormat.Unorm;
        }

        public TextureInfo(
            long             Position,
            int              Width,
            int              Height,
            int              Pitch,
            int              BlockHeight,
            int              TileWidth,
            TextureSwizzle   Swizzle,
            GalImageFormat   Format)
        {
            this.Position     = Position;
            this.Width        = Width;
            this.Height       = Height;
            this.Pitch        = Pitch;
            this.BlockHeight  = BlockHeight;
            this.TileWidth    = TileWidth;
            this.Swizzle      = Swizzle;
            this.Format       = Format;
        }
    }
}