public override void Render() { Renderer.PushState(RenderState.All); Renderer.Transform2 = LocalToWorldTransform; SceneObjects.Render(); Renderer.PopState(); }
public override void Render() { Renderer.PushState(RenderState.All); // Hack: use the current state of Transform2 since it may be configured for generating SceneViewThumbnail. Renderer.Transform2 = LocalToWorldTransform * Renderer.Transform2; SceneObjects.Render(); Renderer.PopState(); }
public override void Render() { Renderer.PushState(RenderState.World | RenderState.CullMode); Renderer.World = World; Renderer.CullMode = CullMode.None; Objects.Render(); Renderer.Flush(); Renderer.PopState(); }
public static void Render(this RenderChain renderChain) { if (renderObjects == null) { renderObjects = new RenderObjectList(); } try { renderChain.GetRenderObjects(renderObjects); renderObjects.Render(); } finally { renderObjects.Clear(); } }
private void RenderThumbnail(Action <ITexture> callback) { var pixelScale = Window.Current.PixelScale; var scaledWidth = (int)(sceneViewFrame.Width * pixelScale); var scaledHeight = (int)(sceneViewFrame.Height * pixelScale); if (texture == null || texture.ImageSize != new Size(scaledWidth, scaledHeight)) { texture?.Dispose(); texture = new RenderTexture(scaledWidth, scaledHeight); } if (sceneViewFrame.Width > 0 && sceneViewFrame.Height > 0) { texture.SetAsRenderTarget(); Renderer.PushState( RenderState.ScissorState | RenderState.View | RenderState.World | RenderState.View | RenderState.Projection | RenderState.DepthState | RenderState.CullMode | RenderState.Transform2); Renderer.ScissorState = ScissorState.ScissorDisabled; Renderer.Viewport = new Viewport(0, 0, texture.ImageSize.Width, texture.ImageSize.Height); Renderer.Clear(Color4.Zero); Renderer.World = Matrix44.Identity; Renderer.View = Matrix44.Identity; Renderer.SetOrthogonalProjection(0, 0, sceneViewFrame.Width, sceneViewFrame.Height); Renderer.DepthState = DepthState.DepthDisabled; Renderer.CullMode = CullMode.None; Renderer.Transform2 = sceneViewFrame.Parent.AsWidget.LocalToWorldTransform.CalcInversed(); renderList.Render(); Renderer.PopState(); texture.RestoreRenderTarget(); callback?.Invoke(texture); } }