diff options
| author | TSR Berry <20988865+TSRBerry@users.noreply.github.com> | 2023-04-08 01:22:00 +0200 |
|---|---|---|
| committer | Mary <thog@protonmail.com> | 2023-04-27 23:51:14 +0200 |
| commit | cee712105850ac3385cd0091a923438167433f9f (patch) | |
| tree | 4a5274b21d8b7f938c0d0ce18736d3f2993b11b1 /Ryujinx.Graphics.GAL/TextureCreateInfo.cs | |
| parent | cd124bda587ef09668a971fa1cac1c3f0cfc9f21 (diff) | |
Move solution and projects to src
Diffstat (limited to 'Ryujinx.Graphics.GAL/TextureCreateInfo.cs')
| -rw-r--r-- | Ryujinx.Graphics.GAL/TextureCreateInfo.cs | 164 |
1 files changed, 0 insertions, 164 deletions
diff --git a/Ryujinx.Graphics.GAL/TextureCreateInfo.cs b/Ryujinx.Graphics.GAL/TextureCreateInfo.cs deleted file mode 100644 index 52b3b11f..00000000 --- a/Ryujinx.Graphics.GAL/TextureCreateInfo.cs +++ /dev/null @@ -1,164 +0,0 @@ -using Ryujinx.Common; -using System; -using System.Numerics; - -namespace Ryujinx.Graphics.GAL -{ - public readonly struct TextureCreateInfo : IEquatable<TextureCreateInfo> - { - public int Width { get; } - public int Height { get; } - public int Depth { get; } - public int Levels { get; } - public int Samples { get; } - public int BlockWidth { get; } - public int BlockHeight { get; } - public int BytesPerPixel { get; } - - public bool IsCompressed => (BlockWidth | BlockHeight) != 1; - - public Format Format { get; } - - public DepthStencilMode DepthStencilMode { get; } - - public Target Target { get; } - - public SwizzleComponent SwizzleR { get; } - public SwizzleComponent SwizzleG { get; } - public SwizzleComponent SwizzleB { get; } - public SwizzleComponent SwizzleA { get; } - - public TextureCreateInfo( - int width, - int height, - int depth, - int levels, - int samples, - int blockWidth, - int blockHeight, - int bytesPerPixel, - Format format, - DepthStencilMode depthStencilMode, - Target target, - SwizzleComponent swizzleR, - SwizzleComponent swizzleG, - SwizzleComponent swizzleB, - SwizzleComponent swizzleA) - { - Width = width; - Height = height; - Depth = depth; - Levels = levels; - Samples = samples; - BlockWidth = blockWidth; - BlockHeight = blockHeight; - BytesPerPixel = bytesPerPixel; - Format = format; - DepthStencilMode = depthStencilMode; - Target = target; - SwizzleR = swizzleR; - SwizzleG = swizzleG; - SwizzleB = swizzleB; - SwizzleA = swizzleA; - } - - public int GetMipSize(int level) - { - return GetMipStride(level) * GetLevelHeight(level) * GetLevelDepth(level); - } - - public int GetMipSize2D(int level) - { - return GetMipStride(level) * GetLevelHeight(level); - } - - public int GetMipStride(int level) - { - return BitUtils.AlignUp(GetLevelWidth(level) * BytesPerPixel, 4); - } - - private int GetLevelWidth(int level) - { - return BitUtils.DivRoundUp(GetLevelSize(Width, level), BlockWidth); - } - - private int GetLevelHeight(int level) - { - return BitUtils.DivRoundUp(GetLevelSize(Height, level), BlockHeight); - } - - private int GetLevelDepth(int level) - { - return Target == Target.Texture3D ? GetLevelSize(Depth, level) : GetLayers(); - } - - public int GetDepthOrLayers() - { - return Target == Target.Texture3D ? Depth : GetLayers(); - } - - public int GetLayers() - { - if (Target == Target.Texture2DArray || - Target == Target.Texture2DMultisampleArray || - Target == Target.CubemapArray) - { - return Depth; - } - else if (Target == Target.Cubemap) - { - return 6; - } - - return 1; - } - - public int GetLevelsClamped() - { - int maxSize = Width; - - if (Target != Target.Texture1D && - Target != Target.Texture1DArray) - { - maxSize = Math.Max(maxSize, Height); - } - - if (Target == Target.Texture3D) - { - maxSize = Math.Max(maxSize, Depth); - } - - int maxLevels = BitOperations.Log2((uint)maxSize) + 1; - return Math.Min(Levels, maxLevels); - } - - private static int GetLevelSize(int size, int level) - { - return Math.Max(1, size >> level); - } - - public override int GetHashCode() - { - return HashCode.Combine(Width, Height); - } - - bool IEquatable<TextureCreateInfo>.Equals(TextureCreateInfo other) - { - return Width == other.Width && - Height == other.Height && - Depth == other.Depth && - Levels == other.Levels && - Samples == other.Samples && - BlockWidth == other.BlockWidth && - BlockHeight == other.BlockHeight && - BytesPerPixel == other.BytesPerPixel && - Format == other.Format && - DepthStencilMode == other.DepthStencilMode && - Target == other.Target && - SwizzleR == other.SwizzleR && - SwizzleG == other.SwizzleG && - SwizzleB == other.SwizzleB && - SwizzleA == other.SwizzleA; - } - } -} |
