public void Setup(RenderTargetIdentifier camerColorRT, IMeshesCache meshesCache, IRenderersCache renderersCache, ICustomOutlineRenderersCache customRenderersCache)
 {
     m_meshesCache          = meshesCache;
     m_renderersCache       = renderersCache;
     m_customRenderersCache = customRenderersCache;
     m_cameraColorRT        = camerColorRT;
 }
        public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData)
        {
            if ((renderingData.cameraData.camera.cullingMask & m_settings.LayerMask) != 0)
            {
                IMeshesCache    meshesCache    = IOC.Resolve <IMeshesCache>(m_settings.MeshesCacheName);
                IRenderersCache renderersCache = IOC.Resolve <IRenderersCache>(m_settings.RenderersCacheName);
                ICustomOutlineRenderersCache customRenderersCache = IOC.Resolve <ICustomOutlineRenderersCache>(m_settings.CustomRenderersCacheName);

                if ((meshesCache == null || meshesCache.IsEmpty) && (renderersCache == null || renderersCache.IsEmpty) && (customRenderersCache == null || customRenderersCache.GetOutlineRendererItems().Count == 0))
                {
                    return;
                }

                var src = renderer.cameraColorTarget;
                m_scriptablePass.Setup(src, meshesCache, renderersCache, customRenderersCache);
                renderer.EnqueuePass(m_scriptablePass);
            }
        }