diff --git a/src/Ryujinx.Input.SDL3/SDL3MotionDriver.cs b/src/Ryujinx.Input.SDL3/SDL3MotionDriver.cs index 77530cb3b4..2a46c617b2 100644 --- a/src/Ryujinx.Input.SDL3/SDL3MotionDriver.cs +++ b/src/Ryujinx.Input.SDL3/SDL3MotionDriver.cs @@ -7,7 +7,8 @@ using System.Numerics; using static SDL3.SDL3; namespace Ryujinx.SDL3; -public unsafe class SDL3MotionDriver : IHandheld + +public unsafe class SDL3MotionDriver : IHandheld, IDisposable { private Dictionary sensors; public SDL3MotionDriver() @@ -16,6 +17,14 @@ public unsafe class SDL3MotionDriver : IHandheld sensors = SDL_GetSensors().ToArray().ToDictionary(SDL_GetSensorTypeForID, SDL_OpenSensor); } + public void Dispose() + { + foreach (var sensor in sensors.Values) + { + SDL_CloseSensor(sensor); + } + } + public Vector3 GetMotionData(MotionInputId gyroscope) { var data = stackalloc float[3];