Пример #1
0
        private void GroupFilters()
        {
            if (Filters == null)
            {
                if (_oldVersion == 0)
                {
                    return;
                }

                _invokeFilters     = null;
                _processFilters    = null;
                ActionExecteFilter = null;
                _oldVersion        = 0;
                return;
            }

            if (Filters.Version == _oldVersion)
            {
                return;
            }

            //todo: add lock
            _processFilters    = new VersionedList <IProcessFilter>();
            _invokeFilters     = new VersionedList <IServiceInvokeFilter>();
            ActionExecteFilter = new VersionedList <IActionExecteFilter>();

            foreach (var item in Filters)
            {
                if (item is IProcessFilter)
                {
                    _processFilters.Add(item as IProcessFilter);
                }
                else if (item is IServiceInvokeFilter)
                {
                    _invokeFilters.Add(item as IServiceInvokeFilter);
                }
                else if (item is IActionExecteFilter)
                {
                    ActionExecteFilter.Add(item as IActionExecteFilter);
                }
            }

            _oldVersion = Filters.Version;
        }
Пример #2
0
        /// <summary>
        /// Construct a node set. Remember to dispose it.
        /// <seealso cref="Dispose"/>
        /// </summary>
        public NodeSet()
        {
            m_NodeDefinitions.Add(s_InvalidDefinitionSlot);

            var defaultTraits = LLTraitsHandle.Create();

            // stuff that needs the first slot to be invalid
            defaultTraits.Resolve() = new LowLevelNodeTraits();
            m_Traits.Add(defaultTraits);
            m_ForwardingTable.Allocate();
            m_ArraySizes.Allocate();
            m_ManagedAllocators.Add(new ManagedMemoryAllocator());
            // (we don't need a zeroth invalid index for nodes, because they are versioned)

            RendererModel = RenderExecutionModel.MaximallyParallel;
            m_RenderGraph = new RenderGraph(this);
            NodeSetID     = ++s_NodeSetCounter;

            m_Batches     = new VersionedList <InputBatch>(Allocator.Persistent, NodeSetID);
            m_GraphValues = new VersionedList <DataOutputValue>(Allocator.Persistent, NodeSetID);
        }
Пример #3
0
        private void GroupFilters()
        {
            if (Filters == null)
            {
                if (_oldVersion == 0)
                    return;

                _invokeFilters = null;
                _processFilters = null;
                ActionExecteFilter = null;
                _oldVersion = 0;
                return;
            }

            if (Filters.Version == _oldVersion)
                return;

            //todo: add lock
            _processFilters = new VersionedList<IProcessFilter>();
            _invokeFilters = new VersionedList<IServiceInvokeFilter>();
            ActionExecteFilter = new VersionedList<IActionExecteFilter>();

            foreach (var item in Filters)
            {
                if (item is IProcessFilter)
                {
                    _processFilters.Add(item as IProcessFilter);
                }
                else if (item is IServiceInvokeFilter)
                {
                    _invokeFilters.Add(item as IServiceInvokeFilter);
                }
                else if (item is IActionExecteFilter)
                {
                    ActionExecteFilter.Add(item as IActionExecteFilter);
                }
            }

            _oldVersion = Filters.Version;
        }