ThreadedImageArray.cs
1 using Ryujinx.Graphics.GAL.Multithreading.Commands.ImageArray; 2 using Ryujinx.Graphics.GAL.Multithreading.Model; 3 4 namespace Ryujinx.Graphics.GAL.Multithreading.Resources 5 { 6 /// <summary> 7 /// Threaded representation of a image array. 8 /// </summary> 9 class ThreadedImageArray : IImageArray 10 { 11 private readonly ThreadedRenderer _renderer; 12 public IImageArray Base; 13 14 public ThreadedImageArray(ThreadedRenderer renderer) 15 { 16 _renderer = renderer; 17 } 18 19 private TableRef<T> Ref<T>(T reference) 20 { 21 return new TableRef<T>(_renderer, reference); 22 } 23 24 public void Dispose() 25 { 26 _renderer.New<ImageArrayDisposeCommand>().Set(Ref(this)); 27 _renderer.QueueCommand(); 28 } 29 30 public void SetImages(int index, ITexture[] images) 31 { 32 _renderer.New<ImageArraySetImagesCommand>().Set(Ref(this), index, Ref(images)); 33 _renderer.QueueCommand(); 34 } 35 } 36 }