Ejemplo n.º 1
0
        /// <summary>
        /// Attempts to create a new DataRenderer instance for the given type.
        /// </summary>
        public static bool TryGetRenderer(DataAccessor dataType, out DataRenderer renderer)
        {
            int id = dataType.Id;

            if (_renderers.ContainsKey(id))
            {
                Type rendererType = _renderers[id];
                renderer = (DataRenderer)Activator.CreateInstance(rendererType);
                return(true);
            }

            renderer = null;
            return(false);
        }
        private void OnDataRemoved(RemovedDataEvent removedData)
        {
            SparseArray <DataRenderer> renderers;

            if (_renderers.TryGetValue(removedData.Entity.UniqueId, out renderers))
            {
                var accessor = new DataAccessor(removedData.RemovedDataType);

                if (renderers.ContainsKey(accessor.Id))
                {
                    DataRenderer renderer = renderers[accessor.Id];
                    renderers.Remove(accessor.Id);

                    renderer.Dispose();
                }
            }
        }