Пример #1
0
        public Renderer(int passes, ViewportPolicy viewportPolicy, RenderOptions renderOptions)
        {
            this.Passes     = passes;
            this.Policy     = viewportPolicy;
            this.Options    = renderOptions;
            this.sortMode   = Renderer.ToSortMode(renderOptions);
            this.blendState = Renderer.ToBlendState(renderOptions);

            // Doing a GlobalRenderLock because Renderer objects might be constructed in different threads.
            lock (PhantomGame.Game.GlobalRenderLock)
            {
                if ((renderOptions & RenderOptions.Canvas) == RenderOptions.Canvas)
                {
                    this.canvas = new Canvas(PhantomGame.Game.GraphicsDevice);
                }
                this.batch = new SpriteBatch(PhantomGame.Game.GraphicsDevice);
            }

            if (this.sortMode == SpriteSortMode.Immediate)
            {
                this.activeRenderPass = this.RenderPassFullLock;
            }
            else
            {
                this.activeRenderPass = this.RenderPassEndLock;
            }
            this.stopWatch = new Stopwatch();
            this.stopWatch.Start();
        }
Пример #2
0
        public void ChangeOptions(ViewportPolicy viewportPolicy, RenderOptions renderOptions)
        {
            this.Policy = viewportPolicy;

            this.Options = renderOptions;
            bool wantCanvas = (renderOptions & RenderOptions.Canvas) == RenderOptions.Canvas;

            if (this.canvas == null && wantCanvas)
            {
                this.canvas = new Canvas(PhantomGame.Game.GraphicsDevice);
            }
            else if (this.canvas != null && !wantCanvas)
            {
                this.canvas = null;
            }

            if (!renderOptions.HasFlag(RenderOptions.ApplyEffect))
            {
                this.fx = null;
            }

            this.sortMode   = Renderer.ToSortMode(renderOptions);
            this.blendState = Renderer.ToBlendState(renderOptions);

            if (this.sortMode == SpriteSortMode.Immediate)
            {
                this.activeRenderPass = this.RenderPassFullLock;
            }
            else
            {
                this.activeRenderPass = this.RenderPassEndLock;
            }
        }
Пример #3
0
 public EntityRenderer(int passes, ViewportPolicy viewportPolicy, RenderOptions renderOptions, float margin)
     : base(passes, viewportPolicy, renderOptions)
 {
     this.nonEntities    = new List <Component>();
     IncludeMarginTop    = margin;
     IncludeMarginRight  = margin;
     IncludeMarginBottom = margin;
     IncludeMarginLeft   = margin;
 }
Пример #4
0
        public Renderer(int passes, ViewportPolicy viewportPolicy, RenderOptions renderOptions)
        {
            this.Passes = passes;
            this.Policy = viewportPolicy;
            this.Options = renderOptions;
            this.sortMode = Renderer.ToSortMode(renderOptions);
            this.blendState = Renderer.ToBlendState(renderOptions);

            // Doing a GlobalRenderLock because Renderer objects might be constructed in different threads.
            lock (PhantomGame.Game.GlobalRenderLock)
            {
                if ((renderOptions & RenderOptions.Canvas) == RenderOptions.Canvas)
                    this.canvas = new Canvas(PhantomGame.Game.GraphicsDevice);
                this.batch = new SpriteBatch(PhantomGame.Game.GraphicsDevice);
            }

            if (this.sortMode == SpriteSortMode.Immediate)
                this.activeRenderPass = this.RenderPassFullLock;
            else
                this.activeRenderPass = this.RenderPassEndLock;
        }
Пример #5
0
 public Renderer(int passes, ViewportPolicy viewportPolicy)
     : this(passes, viewportPolicy, RenderOptions.None)
 {
 }
Пример #6
0
        public void ChangeOptions(ViewportPolicy viewportPolicy, RenderOptions renderOptions)
        {
            this.Policy = viewportPolicy;

            this.Options = renderOptions;
            bool wantCanvas = (renderOptions & RenderOptions.Canvas) == RenderOptions.Canvas;
            if (this.canvas == null && wantCanvas)
                this.canvas = new Canvas(PhantomGame.Game.GraphicsDevice);
            else if (this.canvas != null && !wantCanvas)
                this.canvas = null;

            if (!renderOptions.HasFlag(RenderOptions.ApplyEffect))
                this.fx = null;

            this.sortMode = Renderer.ToSortMode(renderOptions);
            this.blendState = Renderer.ToBlendState(renderOptions);

            if (this.sortMode == SpriteSortMode.Immediate)
                this.activeRenderPass = this.RenderPassFullLock;
            else
                this.activeRenderPass = this.RenderPassEndLock;
        }
Пример #7
0
 public Renderer(int passes, ViewportPolicy viewportPolicy)
     : this(passes, viewportPolicy, RenderOptions.None)
 {
 }
Пример #8
0
 public EntityRenderer(int passes, ViewportPolicy viewportPolicy, RenderOptions renderOptions)
     : this(passes, viewportPolicy, renderOptions, 0)
 {
 }