Ejemplo n.º 1
0
 public override void Render()
 {
     Renderer.PushState(RenderState.All);
     Renderer.Transform2 = LocalToWorldTransform;
     SceneObjects.Render();
     Renderer.PopState();
 }
Ejemplo n.º 2
0
 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();
 }
Ejemplo n.º 3
0
 public override void Render()
 {
     Renderer.PushState(RenderState.World | RenderState.CullMode);
     Renderer.World    = World;
     Renderer.CullMode = CullMode.None;
     Objects.Render();
     Renderer.Flush();
     Renderer.PopState();
 }
Ejemplo n.º 4
0
 public static void Render(this RenderChain renderChain)
 {
     if (renderObjects == null)
     {
         renderObjects = new RenderObjectList();
     }
     try {
         renderChain.GetRenderObjects(renderObjects);
         renderObjects.Render();
     } finally {
         renderObjects.Clear();
     }
 }
Ejemplo n.º 5
0
        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);
            }
        }