Devices.cs
 1  using Ryujinx.Graphics.Device;
 2  using System;
 3  using System.Collections.Generic;
 4  
 5  namespace Ryujinx.Graphics.Host1x
 6  {
 7      class Devices : IDisposable
 8      {
 9          private readonly Dictionary<ClassId, IDeviceState> _devices = new();
10  
11          public void RegisterDevice(ClassId classId, IDeviceState device)
12          {
13              _devices[classId] = device;
14          }
15  
16          public IDeviceState GetDevice(ClassId classId)
17          {
18              return _devices.TryGetValue(classId, out IDeviceState device) ? device : null;
19          }
20  
21          public void Dispose()
22          {
23              foreach (var device in _devices.Values)
24              {
25                  if (device is ThiDevice thi)
26                  {
27                      thi.Dispose();
28                  }
29              }
30          }
31      }
32  }