/// <summary> /// Adds a callback for when the hint is set. /// </summary> /// <param name="callback">The callback.</param> /// <param name="data">Data to pass to the callback.</param> public void AddCallback(HintCallback callback, IntPtr data) { Native.SDL_AddHintCallback(_name, callback, data); if (_callbacks == null) { _callbacks = new Dictionary <HintCallback, int>(); } if (!_callbacks.TryGetValue(callback, out var count)) { count = 1; } _callbacks[callback] = count; }
/// <summary> /// Deletes a callback for when the hint is set. /// </summary> /// <param name="callback">The callback.</param> /// <param name="data">Data to pass to the callback.</param> public void DeleteCallback(HintCallback callback, IntPtr data) { Native.SDL_DelHintCallback(_name, callback, data); if (_callbacks != null) { var count = _callbacks[callback] - 1; if (count == 0) { _ = _callbacks.Remove(callback); } else { _callbacks[callback] = count; } } }