protected override void Dispose(bool disposing)
        {
            base.Dispose(disposing);

            if (disposing)
            {
                _shadowsController?.Dispose();
                _shadowsController = null;

                _shadowsLayer?.Dispose();
                _shadowsLayer = null;
            }
        }
        protected override void Dispose(bool disposing)
        {
            base.Dispose(disposing);

            if (disposing)
            {
                _shadowsController?.Dispose();
                _shadowsController = null;

                _shadowsLayer?.Dispose();
                _shadowsLayer = null;
            }

            instanceCount--;

            InternalLogger.Debug(_tag, () => $"Disposed( disposing: {disposing} ) => {instanceCount} instances");
        }