aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics/Gal/Texture/BitArrayStream.cs
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2018-09-08 14:51:50 -0300
committergdkchan <gab.dark.100@gmail.com>2018-09-08 14:51:50 -0300
commitce1d5be212e6f71a7ca32c3bd7b48e32d9f51b9a (patch)
tree759fe422127ce08c545d4616ccc9691f668032ec /Ryujinx.Graphics/Gal/Texture/BitArrayStream.cs
parenta0c78f792012cdea060444d7cb6a36dbabb04d52 (diff)
Move GPU emulation from Ryujinx.HLE to Ryujinx.Graphics and misc changes (#402)
* Move GPU LLE emulation from HLE to Graphics * Graphics: Move Gal/Texture to Texture * Remove Engines/ directory and namespace * Use tables for image formats * Abstract OpCode decoding * Simplify image table * Do not leak Read* symbols in TextureReader * Fixups * Rename IGalFrameBuffer -> IGalRenderTarget * Remove MaxBpp hardcoded value * Change yet again texture data and add G8R8 flipping * Rename GalFrameBufferFormat to GalSurfaceFormat * Unident EnsureSetup in ImageHandler * Add IsCompressed * Address some feedback
Diffstat (limited to 'Ryujinx.Graphics/Gal/Texture/BitArrayStream.cs')
-rw-r--r--Ryujinx.Graphics/Gal/Texture/BitArrayStream.cs120
1 files changed, 0 insertions, 120 deletions
diff --git a/Ryujinx.Graphics/Gal/Texture/BitArrayStream.cs b/Ryujinx.Graphics/Gal/Texture/BitArrayStream.cs
deleted file mode 100644
index eb2204c4..00000000
--- a/Ryujinx.Graphics/Gal/Texture/BitArrayStream.cs
+++ /dev/null
@@ -1,120 +0,0 @@
-using System;
-using System.Collections;
-
-namespace Ryujinx.Graphics.Gal.Texture
-{
- public class BitArrayStream
- {
- public BitArray BitsArray;
- public int Position { get; private set; }
-
- public BitArrayStream(BitArray BitArray)
- {
- BitsArray = BitArray;
- Position = 0;
- }
-
- public short ReadBits(int Length)
- {
- int RetValue = 0;
- for (int i = Position; i < Position + Length; i++)
- {
- if (BitsArray[i])
- {
- RetValue |= 1 << (i - Position);
- }
- }
-
- Position += Length;
- return (short)RetValue;
- }
-
- public int ReadBits(int Start, int End)
- {
- int RetValue = 0;
- for (int i = Start; i <= End; i++)
- {
- if (BitsArray[i])
- {
- RetValue |= 1 << (i - Start);
- }
- }
-
- return RetValue;
- }
-
- public int ReadBit(int Index)
- {
- return Convert.ToInt32(BitsArray[Index]);
- }
-
- public void WriteBits(int Value, int Length)
- {
- for (int i = Position; i < Position + Length; i++)
- {
- BitsArray[i] = ((Value >> (i - Position)) & 1) != 0;
- }
-
- Position += Length;
- }
-
- public byte[] ToByteArray()
- {
- byte[] RetArray = new byte[(BitsArray.Length + 7) / 8];
- BitsArray.CopyTo(RetArray, 0);
- return RetArray;
- }
-
- public static int Replicate(int Value, int NumberBits, int ToBit)
- {
- if (NumberBits == 0) return 0;
- if (ToBit == 0) return 0;
-
- int TempValue = Value & ((1 << NumberBits) - 1);
- int RetValue = TempValue;
- int ResLength = NumberBits;
-
- while (ResLength < ToBit)
- {
- int Comp = 0;
- if (NumberBits > ToBit - ResLength)
- {
- int NewShift = ToBit - ResLength;
- Comp = NumberBits - NewShift;
- NumberBits = NewShift;
- }
- RetValue <<= NumberBits;
- RetValue |= TempValue >> Comp;
- ResLength += NumberBits;
- }
- return RetValue;
- }
-
- public static int PopCnt(int Number)
- {
- int Counter;
- for (Counter = 0; Number != 0; Counter++)
- {
- Number &= Number - 1;
- }
- return Counter;
- }
-
- public static void Swap<T>(ref T lhs, ref T rhs)
- {
- T Temp = lhs;
- lhs = rhs;
- rhs = Temp;
- }
-
- // Transfers a bit as described in C.2.14
- public static void BitTransferSigned(ref int a, ref int b)
- {
- b >>= 1;
- b |= a & 0x80;
- a >>= 1;
- a &= 0x3F;
- if ((a & 0x20) != 0) a -= 0x40;
- }
- }
-}