public override void Collect() { // Initialize shadow map renderer if (!isShadowMapRendererSetUp && ShadowMapRenderStage != null) { // TODO: Shadow mapping is currently disabled in new render system // TODO: Make this pluggable // TODO: Shadows should work on mobile platforms if (RenderSystem.RenderContextOld.GraphicsDevice.Features.RequestedProfile >= GraphicsProfile.Level_10_0) { ShadowMapRenderer = new ShadowMapRenderer(RenderSystem, ShadowMapRenderStage); ShadowMapRenderer.Renderers.Add(typeof(LightDirectional), new LightDirectionalShadowMapRenderer()); ShadowMapRenderer.Renderers.Add(typeof(LightSpot), new LightSpotShadowMapRenderer()); } isShadowMapRendererSetUp = true; } // Collect all visible lights CollectVisibleLights(); // Prepare active renderers in an ordered list (by type and shadow on/off) CollectActiveLightRenderers(RenderSystem.RenderContextOld); // Collect shadow maps ShadowMapRenderer?.Collect(RenderSystem.RenderContextOld, renderViewDatas); }