Ejemplo n.º 1
0
        private void Start()
        {
            CreateCommandBuffer();

            if (m_renderersCache == null)
            {
                m_renderersCache = gameObject.GetComponent <IRenderersCache>();
            }

            if (m_meshesCache == null)
            {
                m_meshesCache = gameObject.GetComponent <IMeshesCache>();
            }

            RefreshCommandBuffer();

            if (m_renderersCache != null)
            {
                m_renderersCache.Refreshed += OnRefresh;
            }

            if (m_meshesCache != null)
            {
                m_meshesCache.Refreshing += OnRefresh;
            }
        }
 public void Setup(RenderTargetIdentifier camerColorRT, IMeshesCache meshesCache, IRenderersCache renderersCache, ICustomOutlineRenderersCache customRenderersCache)
 {
     m_meshesCache          = meshesCache;
     m_renderersCache       = renderersCache;
     m_customRenderersCache = customRenderersCache;
     m_cameraColorRT        = camerColorRT;
 }
 private void DestroyRenderersCache()
 {
     if (m_destroyRenderersCache && m_renderersCache != null)
     {
         m_renderersCache.Destroy();
         m_renderersCache = null;
     }
 }
        private void Start()
        {
            m_cache = GetComponentInChildren <IRenderersCache>();
            IOC.Register("SelectedRenderers", m_cache);

            m_editor = IOC.Resolve <IRTE>();

            TryToAddRenderers(m_editor.Selection);
            m_editor.Selection.SelectionChanged += OnRuntimeEditorSelectionChanged;

            IOC.RegisterFallback <IOutlineManager>(this);
        }
Ejemplo n.º 5
0
        public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData)
        {
            IRenderersCache renderersCache = IOC.Resolve <IRenderersCache>(m_settings.RenderersCacheName);

            if ((renderersCache == null || renderersCache.IsEmpty))
            {
                return;
            }

            m_ScriptablePass.Setup(renderersCache);
            renderer.EnqueuePass(m_ScriptablePass);
        }
Ejemplo n.º 6
0
        public void Destroy(IRenderersCache cache)
        {
            Data tuple;

            if (m_renderersCache.TryGetValue(cache, out tuple))
            {
                Destroy(tuple.MonoBehaviour);
                for (int i = 0; i < tuple.RTECameras.Count; ++i)
                {
                    Destroy(tuple.RTECameras[i]);
                }
                m_renderersCache.Remove(cache);
            }
        }
Ejemplo n.º 7
0
        private void Start()
        {
            m_graphics = IOC.Resolve <IRTEGraphics>();
            m_cache    = m_graphics.CreateSharedRenderersCache(CameraEvent.AfterEverything);
            m_cache.MaterialOverride = m_selectionMaterial;
            m_editor = IOC.Resolve <IRTE>();

            TryToAddRenderers(m_editor.Selection);
            m_editor.Selection.SelectionChanged += OnRuntimeEditorSelectionChanged;

            IOC.RegisterFallback <IOutlineManager>(this);

            StartCoroutine(EnableSelectionFullScreenPass());
        }
        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);

                if ((meshesCache == null || meshesCache.IsEmpty) && (renderersCache == null || renderersCache.IsEmpty))
                {
                    return;
                }

                var src = renderer.cameraColorTarget;
                m_scriptablePass.Setup(src, meshesCache, renderersCache);
                renderer.EnqueuePass(m_scriptablePass);
            }
        }
Ejemplo n.º 9
0
        public void RegisterCamera(Camera camera)
        {
            m_cameras.Add(camera.gameObject);

            foreach (KeyValuePair <IMeshesCache, Data> kvp in m_meshesCache)
            {
                IMeshesCache cache = kvp.Key;
                Data         data  = kvp.Value;
                CreateRTECamera(camera.gameObject, data.Event, cache, data.RTECameras);
            }

            foreach (KeyValuePair <IRenderersCache, Data> kvp in m_renderersCache)
            {
                IRenderersCache cache = kvp.Key;
                Data            data  = kvp.Value;
                CreateRTECamera(camera.gameObject, data.Event, cache, data.RTECameras);
            }
        }
Ejemplo n.º 10
0
        private void Start()
        {
            IOC.Register("HighlightRenderers", m_cache = gameObject.AddComponent <RenderersCache>());

            m_editor = IOC.Resolve <IRTE>();

            m_activeWindow = m_editor.ActiveWindow;
            if (m_activeWindow != null && m_editor.ActiveWindow.WindowType == RuntimeWindowType.Scene)
            {
                m_selectionComponent = m_activeWindow.IOCContainer.Resolve <IRuntimeSelectionComponent>();
            }

            m_editor.Object.Enabled        += OnObjectEnabled;
            m_editor.Object.Disabled       += OnObjectDisabled;
            m_editor.Object.ComponentAdded += OnComponentAdded;

            m_editor.Selection.SelectionChanged += OnSelectionChanged;
            m_editor.ActiveWindowChanged        += OnActiveWindowChanged;
        }
Ejemplo n.º 11
0
        public void RegisterCamera(Camera camera)
        {
            foreach (KeyValuePair <IMeshesCache, Data> kvp in m_meshesCache)
            {
                IMeshesCache cache = kvp.Key;
                Data         data  = kvp.Value;
                CreateRTECamera(camera.gameObject, data.Event, cache, data.RTECameras);
            }

            foreach (KeyValuePair <IRenderersCache, Data> kvp in m_renderersCache)
            {
                IRenderersCache cache = kvp.Key;
                Data            data  = kvp.Value;
                CreateRTECamera(camera.gameObject, data.Event, cache, data.RTECameras);
            }

            if (!m_cameras.ContainsKey(camera))
            {
                m_cameras.Add(camera, new Dictionary <CameraEvent, RTECamera>());
            }
        }
Ejemplo n.º 12
0
        private static void CreateRTECamera(GameObject camera, CameraEvent cameraEvent, IRenderersCache cache, List <RTECamera> rteCameras)
        {
            RTECamera rteCamera = camera.AddComponent <RTECamera>();

            rteCamera.Event          = cameraEvent;
            rteCamera.RenderersCache = cache;
            rteCameras.Add(rteCamera);
        }
Ejemplo n.º 13
0
 public void Setup(IRenderersCache renderersCache)
 {
     m_renderersCache = renderersCache;
 }
Ejemplo n.º 14
0
        private static void CreateRTECamera(GameObject camera, CameraEvent cameraEvent, IRenderersCache cache, List <RTECamera> rteCameras)
        {
            bool wasActive = camera.gameObject.activeSelf;

            camera.SetActive(false);

            RTECamera rteCamera = camera.AddComponent <RTECamera>();

            rteCamera.Event          = cameraEvent;
            rteCamera.RenderersCache = cache;
            rteCameras.Add(rteCamera);

            camera.SetActive(wasActive);
        }
 public void CreateRenderersCache()
 {
     DestroyRenderersCache();
     m_renderersCache        = gameObject.AddComponent <RenderersCache>();
     m_destroyRenderersCache = true;
 }
Ejemplo n.º 16
0
 public PBSelectionPickerRendererURP(IRenderersCache cache)
 {
     m_cache = cache;
 }