Exemplo n.º 1
0
        public void Add(InvisibleRenderable renderable, Layer layer = null)
        {
            invisibleRenderables.Add(renderable);
#if !TEST
            if (layer == null)
            {
                layer = Renderer.LayersWritable[0];
            }

            layer.Add(renderable);
#endif
        }
Exemplo n.º 2
0
        private void UpdateIpsoForRendering()
        {
            if (mTempForRendering == null)
            {
                // Why do we need managers?
                //mTempForRendering = new LineRectangle(managers);
                // And why do we even need a line rectangle?
                mTempForRendering = new InvisibleRenderable();
            }

            mTempForRendering.X = this.X;
            mTempForRendering.Y = this.Y;

            if (mPreRenderWidth.HasValue)
            {
                mTempForRendering.Width  = this.mPreRenderWidth.Value * mFontScale;
                mTempForRendering.Height = this.mPreRenderHeight.Value * mFontScale;
            }
            else
            {
                mTempForRendering.Width  = this.mTextureToRender.Width * mFontScale;
                mTempForRendering.Height = this.mTextureToRender.Height * mFontScale;
            }
            //mTempForRendering.Parent = this.Parent;

            float widthDifference = this.EffectiveWidth - mTempForRendering.Width;

            if (this.HorizontalAlignment == Graphics.HorizontalAlignment.Center)
            {
                mTempForRendering.X += widthDifference / 2.0f;
            }
            else if (this.HorizontalAlignment == Graphics.HorizontalAlignment.Right)
            {
                mTempForRendering.X += widthDifference;
            }

            if (this.VerticalAlignment == Graphics.VerticalAlignment.Center)
            {
                mTempForRendering.Y += (this.EffectiveHeight - mTempForRendering.Height) / 2.0f;
            }
            else if (this.VerticalAlignment == Graphics.VerticalAlignment.Bottom)
            {
                mTempForRendering.Y += this.EffectiveHeight - mTempForRendering.Height;
            }

            if (this.Parent != null)
            {
                mTempForRendering.X += Parent.GetAbsoluteX();
                mTempForRendering.Y += Parent.GetAbsoluteY();
            }
        }
Exemplo n.º 3
0
 public void Remove(InvisibleRenderable invisibleRenderable)
 {
     invisibleRenderables.Remove(invisibleRenderable);
     Renderer.RemoveRenderable(invisibleRenderable);
 }
Exemplo n.º 4
0
        private void UpdateIpsoForRendering()
        {
            if (mTempForRendering == null)
            {
                // Why do we need managers?
                //mTempForRendering = new LineRectangle(managers);
                // And why do we even need a line rectangle?
                mTempForRendering = new InvisibleRenderable();
            }

            mTempForRendering.X = this.X;
            mTempForRendering.Y = this.Y;

            if (mPreRenderWidth.HasValue)
            {
                mTempForRendering.Width  = this.mPreRenderWidth.Value * mFontScale;
                mTempForRendering.Height = this.mPreRenderHeight.Value * mFontScale;
            }
            else
            {
                mTempForRendering.Width  = this.mTextureToRender.Width * mFontScale;
                mTempForRendering.Height = this.mTextureToRender.Height * mFontScale;
            }
            //mTempForRendering.Parent = this.Parent;

            float widthDifference = this.EffectiveWidth - mTempForRendering.Width;

            Vector3 alignmentOffset = Vector3.Zero;

            if (this.HorizontalAlignment == Graphics.HorizontalAlignment.Center)
            {
                alignmentOffset.X = widthDifference / 2.0f;
            }
            else if (this.HorizontalAlignment == Graphics.HorizontalAlignment.Right)
            {
                alignmentOffset.X = widthDifference;
            }

            if (this.VerticalAlignment == Graphics.VerticalAlignment.Center)
            {
                alignmentOffset.Y = (this.EffectiveHeight - mTempForRendering.Height) / 2.0f;
            }
            else if (this.VerticalAlignment == Graphics.VerticalAlignment.Bottom)
            {
                alignmentOffset.Y = this.EffectiveHeight - mTempForRendering.Height;
            }

            var absoluteRotation = this.Rotation;

            if (absoluteRotation != 0)
            {
                var matrix = Matrix.CreateRotationZ(-MathHelper.ToRadians(absoluteRotation));

                alignmentOffset = Vector3.Transform(alignmentOffset, matrix);
            }

            mTempForRendering.X += alignmentOffset.X;
            mTempForRendering.Y += alignmentOffset.Y;

            if (this.Parent != null)
            {
                mTempForRendering.X += Parent.GetAbsoluteX();
                mTempForRendering.Y += Parent.GetAbsoluteY();
            }
        }