From ce1d5be212e6f71a7ca32c3bd7b48e32d9f51b9a Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Sat, 8 Sep 2018 14:51:50 -0300 Subject: 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 --- Ryujinx.Graphics/Texture/TextureInfo.cs | 60 +++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 Ryujinx.Graphics/Texture/TextureInfo.cs (limited to 'Ryujinx.Graphics/Texture/TextureInfo.cs') diff --git a/Ryujinx.Graphics/Texture/TextureInfo.cs b/Ryujinx.Graphics/Texture/TextureInfo.cs new file mode 100644 index 00000000..66445dcc --- /dev/null +++ b/Ryujinx.Graphics/Texture/TextureInfo.cs @@ -0,0 +1,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; + } + } +} \ No newline at end of file -- cgit v1.2.3