protected override void DrawCore(RenderContext context, RenderFrame output) { // Early exit if some properties are null if (Mode == null) { return; } // Gets the current camera state from the slot var camera = context.GetCameraFromSlot(Camera); // Draw this camera. using (context.PushTagAndRestore(Current, this)) using (context.PushTagAndRestore(CameraComponentRenderer.Current, camera)) { // Run all pre-renderers foreach (var renderer in PreRenderers) { renderer.Draw(context); } // Draw the scene based on its drawing mode (e.g. implementation forward or deferred... etc.) Mode.Draw(context); // Run all post-renderers foreach (var renderer in PostRenderers) { renderer.Draw(context); } } }
public override void Collect(RenderContext context) { base.Collect(context); // Early exit if some properties are null if (Mode == null) { return; } // Gets the current camera state from the slot var camera = context.GetCameraFromSlot(Camera); // Draw this camera. using (context.PushTagAndRestore(Current, this)) using (context.PushTagAndRestore(CameraComponentRendererExtensions.Current, camera)) { Mode.Collect(context); } }
public override void Collect(RenderContext context) { base.Collect(context); // Early exit if some properties are null if (Mode == null) { return; } // Gets the current camera state from the slot var camera = context.GetCameraFromSlot(Camera); //TODO camera can be null but we still push it as null... review me please. //TODO this is needed or if we have no camera we don't render anything e.g. UI only // Draw this camera. using (context.PushTagAndRestore(Current, this)) using (context.PushTagAndRestore(CameraComponentRendererExtensions.Current, camera)) { Mode.Collect(context); } }
protected override void DrawCore(RenderContext context, RenderFrame output) { // Early exit if some properties are null if (Mode == null) { return; } // Gets the current camera state from the slot var camera = context.GetCameraFromSlot(Camera); // Draw this camera. using (context.PushTagAndRestore(Current, this)) using (context.PushTagAndRestore(CameraComponentRenderer.Current, camera)) { // Run all pre-renderers foreach (var renderer in PreRenderers) { renderer.Draw(context); } // Draw the scene based on its drawing mode (e.g. implementation forward or deferred... etc.) Mode.Draw(context); // Run all post-renderers foreach (var renderer in PostRenderers) { renderer.Draw(context); } } }
public override void Collect(RenderContext context) { base.Collect(context); // Early exit if some properties are null if (Mode == null) { return; } // Gets the current camera state from the slot var camera = context.GetCameraFromSlot(Camera); //TODO camera can be null but we still push it as null... review me please. //TODO this is needed or if we have no camera we don't render anything e.g. UI only // Draw this camera. using (context.PushTagAndRestore(Current, this)) using (context.PushTagAndRestore(CameraComponentRendererExtensions.Current, camera)) { Mode.Collect(context); } }