| 1234567891011121314151617181920212223242526272829303132333435 |
- using ChocolArm64.Memory;
- using Ryujinx.Graphics.Gal;
- using Ryujinx.Graphics.Memory;
- namespace Ryujinx.Graphics.Texture
- {
- static class TextureWriter
- {
- public unsafe static void Write(IAMemory Memory, TextureInfo Texture, byte[] Data)
- {
- ISwizzle Swizzle = TextureHelper.GetSwizzle(Texture, 1, 4);
- (AMemory CpuMem, long Position) = TextureHelper.GetMemoryAndPosition(
- Memory,
- Texture.Position);
- fixed (byte* BuffPtr = Data)
- {
- long InOffs = 0;
- for (int Y = 0; Y < Texture.Height; Y++)
- for (int X = 0; X < Texture.Width; X++)
- {
- long Offset = (uint)Swizzle.GetSwizzleOffset(X, Y);
- int Pixel = *(int*)(BuffPtr + InOffs);
- CpuMem.WriteInt32(Position + Offset, Pixel);
- InOffs += 4;
- }
- }
- }
- }
- }
|