Beispiel #1
0
        private bool RenderPickingMap()
        {
            if (this.pickingFrameLast == Time.FrameCount)
            {
                return(false);
            }
            if (this.ClientSize.IsEmpty)
            {
                return(false);
            }

            // Update culling info. Since we do not have a real game loop in edit
            // mode, we'll do this right before rendering rather than once per frame.
            if (Scene.Current.VisibilityStrategy != null)
            {
                Scene.Current.VisibilityStrategy.Update();
            }

            Point2      clientSize  = new Point2(this.ClientSize.Width, this.ClientSize.Height);
            RenderSetup renderSetup = this.CameraComponent.PickingSetup;

            if (renderSetup != null)
            {
                renderSetup.AddRendererFilter(this.PickingRendererFilter);
            }

            this.pickingFrameLast = Time.FrameCount;
            this.CameraComponent.RenderPickingMap(
                clientSize / 2,
                clientSize,
                true);

            if (renderSetup != null)
            {
                renderSetup.RemoveRendererFilter(this.PickingRendererFilter);
            }

            return(true);
        }
Beispiel #2
0
        protected virtual void OnRenderState()
        {
            RenderSetup renderSetup = this.CameraComponent.ActiveRenderSetup;

            renderSetup.EventCollectDrawcalls += this.CameraComponent_EventCollectDrawcalls;
            renderSetup.AddRendererFilter(this.RendererFilter);
            renderSetup.AddRenderStep(RenderStepPosition.Last, this.camPassBg);
            renderSetup.AddRenderStep(this.camPassBg.Id, RenderStepPosition.After, this.camPassEdWorld);
            renderSetup.AddRenderStep(this.camPassEdWorld.Id, RenderStepPosition.After, this.camPassEdWorldNoDepth);
            renderSetup.AddRenderStep(this.camPassEdWorldNoDepth.Id, RenderStepPosition.After, this.camPassEdScreen);

            // Render CamView
            Point2 clientSize = new Point2(this.ClientSize.Width, this.ClientSize.Height);

            this.CameraComponent.Render(new Rect(clientSize), clientSize);

            renderSetup.Steps.Remove(this.camPassBg);
            renderSetup.Steps.Remove(this.camPassEdWorld);
            renderSetup.Steps.Remove(this.camPassEdWorldNoDepth);
            renderSetup.Steps.Remove(this.camPassEdScreen);
            renderSetup.RemoveRendererFilter(this.RendererFilter);
            renderSetup.EventCollectDrawcalls -= this.CameraComponent_EventCollectDrawcalls;
        }