예제 #1
0
        /// <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;
        }
예제 #2
0
        /// <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;
                }
            }
        }