MatrixStruct.cs
1 using Ryujinx.Common.Utilities; 2 3 namespace Ryujinx.Graphics.Vic.Types 4 { 5 readonly struct MatrixStruct 6 { 7 private readonly long _word0; 8 private readonly long _word1; 9 private readonly long _word2; 10 private readonly long _word3; 11 12 public int MatrixCoeff00 => (int)_word0.ExtractSx(0, 20); 13 public int MatrixCoeff10 => (int)_word0.ExtractSx(20, 20); 14 public int MatrixCoeff20 => (int)_word0.ExtractSx(40, 20); 15 public int MatrixRShift => (int)_word0.Extract(60, 4); 16 public int MatrixCoeff01 => (int)_word1.ExtractSx(64, 20); 17 public int MatrixCoeff11 => (int)_word1.ExtractSx(84, 20); 18 public int MatrixCoeff21 => (int)_word1.ExtractSx(104, 20); 19 public bool MatrixEnable => _word1.Extract(127); 20 public int MatrixCoeff02 => (int)_word2.ExtractSx(128, 20); 21 public int MatrixCoeff12 => (int)_word2.ExtractSx(148, 20); 22 public int MatrixCoeff22 => (int)_word2.ExtractSx(168, 20); 23 public int MatrixCoeff03 => (int)_word3.ExtractSx(192, 20); 24 public int MatrixCoeff13 => (int)_word3.ExtractSx(212, 20); 25 public int MatrixCoeff23 => (int)_word3.ExtractSx(232, 20); 26 } 27 }