void OnEnable()
        {
            m_CoreConvertersList = new List <RenderPipelineConverter>();

            // This is the drop down choices.
            m_ConverterContainers = TypeCache.GetTypesDerivedFrom <RenderPipelineConverterContainer>();

            var converters = TypeCache.GetTypesDerivedFrom <RenderPipelineConverter>();

            for (int i = 0; i < converters.Count; ++i)
            {
                // Iterate over the converters
                RenderPipelineConverter conv = (RenderPipelineConverter)Activator.CreateInstance(converters[i]);
                m_CoreConvertersList.Add(conv);

                // Create a new ConvertState which holds the active state of the converter
                var converterState = new ConverterState
                {
                    isEnabled     = conv.IsEnabled,
                    isActive      = true,
                    isInitialized = false,
                    items         = new List <ConverterItemState>(),
                    index         = i,
                };
                m_ConverterStates.Add(converterState);

                // This just creates empty entries in the m_ItemsToConvert.
                // This list need to have the same amount of entries as the converters
                List <ConverterItemDescriptor> converterItemInfos = new List <ConverterItemDescriptor>();
                m_ItemsToConvert.Add(converterItemInfos);
            }
        }
        void GetConverters()
        {
            ClearConverterStates();
            var converterList = TypeCache.GetTypesDerivedFrom <RenderPipelineConverter>();

            for (int i = 0; i < converterList.Count; ++i)
            {
                // Iterate over the converters that are used by the current container
                RenderPipelineConverter conv = (RenderPipelineConverter)Activator.CreateInstance(converterList[i]);
                if (conv.container == m_ConverterContainers[m_ContainerChoiceIndex])
                {
                    m_CoreConvertersList.Add(conv);
                }
            }

            // this need to be sorted by Priority property
            m_CoreConvertersList = m_CoreConvertersList
                                   .OrderBy(o => o.priority).ToList();

            for (int i = 0; i < m_CoreConvertersList.Count; i++)
            {
                // Create a new ConvertState which holds the active state of the converter
                var converterState = new ConverterState
                {
                    isEnabled     = m_CoreConvertersList[i].isEnabled,
                    isActive      = false,
                    isInitialized = false,
                    items         = new List <ConverterItemState>(),
                    index         = i,
                };
                m_ConverterStates.Add(converterState);

                // This just creates empty entries in the m_ItemsToConvert.
                // This list need to have the same amount of entries as the converters
                List <ConverterItemDescriptor> converterItemInfos = new List <ConverterItemDescriptor>();
                //m_ItemsToConvert.Add(converterItemInfos);
                m_ItemsToConvert.Add(new ConverterItems {
                    itemDescriptors = converterItemInfos
                });
            }
        }