protected override bool RenderInternal(RenderComposer c) { base.RenderInternal(c); RenderState oldState = c.CurrentState.Clone(); c.SetState(RenderState.Default); c.SetUseViewMatrix(false); c.RenderSprite(new Vector3(0, 0, 0), Engine.Renderer.CurrentTarget.Size, Color.CornflowerBlue); c.SetUseViewMatrix(true); c.ClearDepth(); //c.RenderLine(new Vector3(short.MinValue, 0, 0), new Vector3(short.MaxValue, 0, 0), Color.Red, snapToPixel: false); //c.RenderLine(new Vector3(0, short.MinValue, 0), new Vector3(0, short.MaxValue, 0), Color.Green, snapToPixel: false); //c.RenderLine(new Vector3(0, 0, short.MinValue), new Vector3(0, 0, short.MaxValue), Color.Blue, snapToPixel: false); c.RenderLine(new Vector3(0, 0, 0), new Vector3(short.MaxValue, 0, 0), Color.Red, snapToPixel: false); c.RenderLine(new Vector3(0, 0, 0), new Vector3(0, short.MaxValue, 0), Color.Green, snapToPixel: false); c.RenderLine(new Vector3(0, 0, 0), new Vector3(0, 0, short.MaxValue), Color.Blue, snapToPixel: false); if (_showTerrain) { _terrain.Render(c); } if (DisplayObject.Entity?.AnimationRig != null) { c.SetShader(_skeletalShader.Shader); DisplayObject.RenderAnimated(c, _boneVerticesStream); c.SetShader(); } else { DisplayObject.Render(c); } c.SetState(oldState); _boneVerticesStream?.DoTasks(c); return(true); }