Esempio n. 1
0
        protected override void DrawGeometry(Matrix view, Matrix projection, object[] optionalParameters, EffectConfigurer effectConfigurer, RendererParameters instance)
        {
            effectConfigurer(mEffect, instance, optionalParameters);

            GraphicsManager.Device.SamplerStates[0] = SamplerState.PointClamp;

            SkyBoxParameters skyBoxInstance = instance as SkyBoxParameters;

            GraphicsManager.Device.SamplerStates[0] = SamplerState.LinearWrap;

            Vector3 sceneScale = new Vector3(Scale, Scale, Scale);
            Vector3 centerOffset = new Vector3(0, sceneScale.Y * 0.5f, 0);

            mEffect.World      = Matrix.CreateScale(sceneScale) * skyBoxInstance.World * Matrix.CreateTranslation(-centerOffset);
            mEffect.View       = view;
            mEffect.Projection = Matrix.CreatePerspectiveFieldOfView(GraphicsManager.Camera.FieldOfView, GraphicsManager.Camera.AspectRatio, GraphicsManager.Camera.NearPlaneDistance, Scale); ;

            mEffect.Parameters["xOverlayColor"].SetValue(skyBoxInstance.OverlayColor.ToVector3());
            mEffect.Parameters["xOverlayColorWeight"].SetValue(skyBoxInstance.OverlayWeight);
            mEffect.Parameters["xTextureOffset"].SetValue(skyBoxInstance.TextureAnimationOffset);
            mEffect.Parameters["xTextureTransformation"].SetValue(Matrix.Identity);

            mEffect.Parameters["xIsBeingSpaghettified"].SetValue(false);

            mEffect.Texture = AssetLibrary.LookupTexture(skyBoxInstance.TextureName);

            GraphicsManager.Device.SetVertexBuffer(mVertexBuffer);
            GraphicsManager.Device.Indices = mIndexBuffer;

            mEffect.CurrentTechnique.Passes[0].Apply();

            GraphicsManager.Device.DrawIndexedPrimitives(PrimitiveType.TriangleList, 0, 0, mVertexBuffer.VertexCount, 0, mIndexBuffer.IndexCount / 3);
        }
Esempio n. 2
0
        protected override void DrawGeometry(Matrix view, Matrix projection, object[] optionalParameters, EffectConfigurer effectConfigurer, RendererParameters instance)
        {
            effectConfigurer(mEffect, instance, optionalParameters);

            WaterParameters waterInstance = instance as WaterParameters;

            GraphicsManager.Device.SamplerStates[0] = SamplerState.LinearWrap;

            mEffect.World = Matrix.CreateScale(1.0f, waterInstance.SeaLevel, 1.0f) * waterInstance.World;
            mEffect.View = view;
            mEffect.Projection = projection;

            mEffect.Parameters["xOverlayColor"].SetValue(waterInstance.OverlayColor.ToVector3());
            mEffect.Parameters["xOverlayColorWeight"].SetValue(waterInstance.OverlayWeight);
            mEffect.Parameters["xTextureOffset"].SetValue(waterInstance.TextureAnimationOffset);
            mEffect.Texture = AssetLibrary.LookupTexture(waterInstance.TextureName);

            mEffect.Parameters["xIsBeingSpaghettified"].SetValue(false);

            GraphicsManager.Device.SetVertexBuffer(mVertexBuffer);
            GraphicsManager.Device.Indices = mIndexBuffer;

            mEffect.CurrentTechnique.Passes[0].Apply();

            GraphicsManager.Device.DrawIndexedPrimitives(PrimitiveType.TriangleList, 0, 0, mVertexBuffer.VertexCount, 0, mIndexBuffer.IndexCount / 3);
        }
Esempio n. 3
0
        protected override void DrawGeometry(Matrix view, Matrix projection, object[] optionalParameters, EffectConfigurer effectConfigurer, RendererParameters instance)
        {
            ModelParameters modelInstance = instance as ModelParameters;

            if (modelInstance != null && modelInstance.TryCull && GraphicsManager.ViewBoundingFrustum.Contains(modelInstance.BoundingBox) == ContainmentType.Disjoint)
            {
                return;
            }

            foreach (ModelMesh mesh in mModel.Meshes)
            {
                foreach (AnimationUtilities.SkinnedEffect effect in mesh.Effects)
                {
                    effect.World = modelInstance.World;
                    effect.View       = view;
                    effect.Projection = projection;

                    effect.Parameters["xOverlayColor"].SetValue(modelInstance.OverlayColor.ToVector3());
                    effect.Parameters["xOverlayColorWeight"].SetValue(modelInstance.OverlayWeight);
                    effect.Parameters["xTextureOffset"].SetValue(modelInstance.TextureAnimationOffset);

                    effect.Parameters["xIsBeingSpaghettified"].SetValue(modelInstance.Spaghettify);
                    effect.Parameters["xWormholePosition"].SetValue(modelInstance.WormholePosition);
                    effect.Parameters["xMaxWormholeDistance"].SetValue(modelInstance.MaxWormholeDistance);
                    effect.Parameters["xModelWormholeDistance"].SetValue((modelInstance.WormholePosition - modelInstance.World.Translation).Length());

                    effectConfigurer(effect, modelInstance, optionalParameters);
                }
                mesh.Draw();
            }
        }
Esempio n. 4
0
        protected override void NormalDepthConfigurer(AnimationUtilities.SkinnedEffect effect, RendererParameters instance, object[] optionalParameters)
        {
            base.NormalDepthConfigurer(effect, instance, optionalParameters);

            Matrix[] skinTransforms = new Matrix[] { Matrix.Identity };
            if (instance is AnimateModelParameters)
            {
                skinTransforms = ((instance as AnimateModelParameters).SkinTransforms);
            }
            effect.SetBoneTransforms(skinTransforms);

            effect.CurrentTechnique = effect.Techniques["SkinnedNormalDepthShade"];
        }
Esempio n. 5
0
        public void TextUtilsRendererParametersIsTextColorSet()
        {
            tlog.Debug(tag, $"TextUtilsRendererParametersIsTextColorSet START");

            var testingTarget = new RendererParameters();

            Assert.IsNotNull(testingTarget, "Can't create success object RendererParameters");
            Assert.IsInstanceOf <RendererParameters>(testingTarget, "Should be an instance of RendererParameters type.");

            testingTarget.TextColor = Color.Cyan;
            Assert.AreEqual(true, testingTarget.IsTextColorSet, "Should be equal!");

            testingTarget.Dispose();
            tlog.Debug(tag, $"TextUtilsRendererParametersIsTextColorSet END (OK)");
        }
Esempio n. 6
0
        public void TextUtilsRendererParametersFontSize()
        {
            tlog.Debug(tag, $"TextUtilsRendererParametersFontSize START");

            var testingTarget = new RendererParameters();

            Assert.IsNotNull(testingTarget, "Can't create success object RendererParameters");
            Assert.IsInstanceOf <RendererParameters>(testingTarget, "Should be an instance of RendererParameters type.");

            testingTarget.FontSize = 15.0f;
            Assert.AreEqual(15.0f, testingTarget.FontSize, "Should be equal!");

            testingTarget.Dispose();
            tlog.Debug(tag, $"TextUtilsRendererParametersFontSize END (OK)");
        }
Esempio n. 7
0
        public void TextUtilsRendererParametersTextWidth()
        {
            tlog.Debug(tag, $"TextUtilsRendererParametersTextWidth START");

            var testingTarget = new RendererParameters();

            Assert.IsNotNull(testingTarget, "Can't create success object RendererParameters");
            Assert.IsInstanceOf <RendererParameters>(testingTarget, "Should be an instance of RendererParameters type.");

            testingTarget.TextWidth = 32;
            Assert.AreEqual(32, testingTarget.TextWidth, "Should be equal!");

            testingTarget.Dispose();
            tlog.Debug(tag, $"TextUtilsRendererParametersTextWidth END (OK)");
        }
Esempio n. 8
0
        public void TextUtilsRendererParametersMarkupEnabled()
        {
            tlog.Debug(tag, $"TextUtilsRendererParametersMarkupEnabled START");

            var testingTarget = new RendererParameters();

            Assert.IsNotNull(testingTarget, "Can't create success object RendererParameters");
            Assert.IsInstanceOf <RendererParameters>(testingTarget, "Should be an instance of RendererParameters type.");

            testingTarget.Layout = TextLayout.SingleLine;

            testingTarget.MarkupEnabled = true;
            Assert.AreEqual(true, testingTarget.MarkupEnabled, "Should be equal!");

            testingTarget.Dispose();
            tlog.Debug(tag, $"TextUtilsRendererParametersMarkupEnabled END (OK)");
        }
Esempio n. 9
0
        public void TextUtilsRendererParametersTextColor()
        {
            tlog.Debug(tag, $"TextUtilsRendererParametersTextColor START");

            var testingTarget = new RendererParameters();

            Assert.IsNotNull(testingTarget, "Can't create success object RendererParameters");
            Assert.IsInstanceOf <RendererParameters>(testingTarget, "Should be an instance of RendererParameters type.");

            testingTarget.TextColor = new Vector4(0.3f, 0.8f, 1.0f, 0.0f);
            Assert.AreEqual(0.3f, testingTarget.TextColor.R, "Should be equal!");
            Assert.AreEqual(0.8f, testingTarget.TextColor.G, "Should be equal!");
            Assert.AreEqual(1.0f, testingTarget.TextColor.B, "Should be equal!");
            Assert.AreEqual(0.0f, testingTarget.TextColor.A, "Should be equal!");

            testingTarget.Dispose();
            tlog.Debug(tag, $"TextUtilsRendererParametersTextColor END (OK)");
        }
Esempio n. 10
0
        public void TextUtilsRendererParametersPadding()
        {
            tlog.Debug(tag, $"TextUtilsRendererParametersPadding START");

            var testingTarget = new RendererParameters();

            Assert.IsNotNull(testingTarget, "Can't create success object RendererParameters");
            Assert.IsInstanceOf <RendererParameters>(testingTarget, "Should be an instance of RendererParameters type.");

            testingTarget.Padding = new Extents(4, 4, 4, 4);
            Assert.AreEqual(4, testingTarget.Padding.Start, "Should be equal!");
            Assert.AreEqual(4, testingTarget.Padding.End, "Should be equal!");
            Assert.AreEqual(4, testingTarget.Padding.Top, "Should be equal!");
            Assert.AreEqual(4, testingTarget.Padding.Bottom, "Should be equal!");

            testingTarget.Dispose();
            tlog.Debug(tag, $"TextUtilsRendererParametersPadding END (OK)");
        }
Esempio n. 11
0
        /// <summary>
        /// Returns the chart renderer appropriate for the chart.
        /// </summary>
        private ChartRenderer GetChartRenderer(Chart chart, RendererParameters parms)
        {
            ChartType chartType = chart.Type;
            bool      useCombinationRenderer = false;

            foreach (Series series in chart.seriesCollection)
            {
                if (series.chartType != chartType)
                {
                    useCombinationRenderer = true;
                    break;
                }
            }

            if (useCombinationRenderer)
            {
                return(new CombinationChartRenderer(parms));
            }

            switch (chartType)
            {
            case ChartType.Line:
                return(new LineChartRenderer(parms));

            case ChartType.Column2D:
            case ChartType.ColumnStacked2D:
                return(new ColumnChartRenderer(parms));

            case ChartType.Bar2D:
            case ChartType.BarStacked2D:
                return(new BarChartRenderer(parms));

            case ChartType.Area2D:
                return(new AreaChartRenderer(parms));

            case ChartType.Pie2D:
            case ChartType.PieExploded2D:
                return(new PieChartRenderer(parms));
            }

            return(null);
        }
Esempio n. 12
0
        /// <summary>
        /// Draws first chart only.
        /// </summary>
        public void DrawChart(XGraphics gfx)
        {
            XGraphicsState state = gfx.Save();

            gfx.TranslateTransform(this.location.X, this.location.Y);

            if (this.chartList.Count > 0)
            {
                XRect chartRect          = new XRect(0, 0, this.size.Width, this.size.Height);
                Chart chart              = (Chart)this.chartList[0];
                RendererParameters parms = new RendererParameters(gfx, chartRect);
                parms.DrawingItem = chart;

                ChartRenderer renderer = GetChartRenderer(chart, parms);
                renderer.Init();
                renderer.Format();
                renderer.Draw();
            }
            gfx.Restore(state);
        }
Esempio n. 13
0
        public void TextUtilsRendererParametersLayout()
        {
            tlog.Debug(tag, $"TextUtilsRendererParametersLayout START");

            var testingTarget = new RendererParameters();

            Assert.IsNotNull(testingTarget, "Can't create success object RendererParameters");
            Assert.IsInstanceOf <RendererParameters>(testingTarget, "Should be an instance of RendererParameters type.");

            testingTarget.Layout = TextLayout.MultiLine;
            Assert.AreEqual(TextLayout.MultiLine, testingTarget.Layout, "Should be equal!");

            testingTarget.Layout = TextLayout.Circular;
            Assert.AreEqual(TextLayout.Circular, testingTarget.Layout, "Should be equal!");

            testingTarget.Layout = TextLayout.SingleLine;
            Assert.AreEqual(TextLayout.SingleLine, testingTarget.Layout, "Should be equal!");

            testingTarget.Dispose();
            tlog.Debug(tag, $"TextUtilsRendererParametersLayout END (OK)");
        }
Esempio n. 14
0
        public void TextUtilsRendererParametersHorizontalAlignment()
        {
            tlog.Debug(tag, $"TextUtilsRendererParametersHorizontalAlignment START");

            var testingTarget = new RendererParameters();

            Assert.IsNotNull(testingTarget, "Can't create success object RendererParameters");
            Assert.IsInstanceOf <RendererParameters>(testingTarget, "Should be an instance of RendererParameters type.");

            testingTarget.HorizontalAlignment = HorizontalAlignment.Begin;
            Assert.AreEqual(HorizontalAlignment.Begin, testingTarget.HorizontalAlignment, "Should be equal!");

            testingTarget.HorizontalAlignment = HorizontalAlignment.Center;
            Assert.AreEqual(HorizontalAlignment.Center, testingTarget.HorizontalAlignment, "Should be equal!");

            testingTarget.HorizontalAlignment = HorizontalAlignment.End;
            Assert.AreEqual(HorizontalAlignment.End, testingTarget.HorizontalAlignment, "Should be equal!");

            testingTarget.Dispose();
            tlog.Debug(tag, $"TextUtilsRendererParametersHorizontalAlignment END (OK)");
        }
Esempio n. 15
0
        public void TextUtilsRendererParametersVerticalAlignment()
        {
            tlog.Debug(tag, $"TextUtilsRendererParametersVerticalAlignment START");

            var testingTarget = new RendererParameters();

            Assert.IsNotNull(testingTarget, "Can't create success object RendererParameters");
            Assert.IsInstanceOf <RendererParameters>(testingTarget, "Should be an instance of RendererParameters type.");

            testingTarget.VerticalAlignment = VerticalAlignment.Bottom;
            Assert.AreEqual(VerticalAlignment.Bottom, testingTarget.VerticalAlignment, "Should be equal!");

            testingTarget.VerticalAlignment = VerticalAlignment.Top;
            Assert.AreEqual(VerticalAlignment.Top, testingTarget.VerticalAlignment, "Should be equal!");

            testingTarget.VerticalAlignment = VerticalAlignment.Center;
            Assert.AreEqual(VerticalAlignment.Center, testingTarget.VerticalAlignment, "Should be equal!");

            testingTarget.Dispose();
            tlog.Debug(tag, $"TextUtilsRendererParametersVerticalAlignment END (OK)");
        }
Esempio n. 16
0
 /// <summary>
 /// Initializes a new instance of the Renderer class with the specified renderer parameters.
 /// </summary>
 internal Renderer(RendererParameters rendererParms)
 {
     _rendererParms = rendererParms;
 }
Esempio n. 17
0
 /// <summary>
 /// Initializes a new instance of the GridlinesRenderer class with the specified renderer parameters.
 /// </summary>
 internal GridlinesRenderer(RendererParameters parms)
     : base(parms)
 {
 }
Esempio n. 18
0
        protected override void DrawGeometry(Matrix view, Matrix projection, object[] optionalParameters, EffectConfigurer effectConfigurer, RendererParameters instance)
        {
            HeightMapParameters terrainInstance = instance as HeightMapParameters;

            if (terrainInstance.TryCull && GraphicsManager.ViewBoundingFrustum.Contains(terrainInstance.BoundingBox) == ContainmentType.Disjoint)
            {
                return;
            }

            for (int i = 0; i < 7; ++i)
            {
                GraphicsManager.Device.SamplerStates[i] = SamplerState.PointWrap;
            }
            GraphicsManager.Device.SamplerStates[2] = SamplerState.LinearClamp;

            mEffect.World = instance.World;
            mEffect.View = view;
            mEffect.Projection = projection;

            mEffect.Parameters["xOverlayColor"].SetValue(instance.OverlayColor.ToVector3());
            mEffect.Parameters["xOverlayColorWeight"].SetValue(instance.OverlayWeight);
            mEffect.Parameters["xTextureOffset"].SetValue(instance.TextureAnimationOffset);

            //mEffect.Parameters["xIsBeingSpaghettified"].SetValue(false);

            mEffect.Parameters["xDrawCursor"].SetValue((int)terrainInstance.DrawCursor);

            if (terrainInstance.DrawCursor != HeightMapRenderable.CursorShape.NONE)
            {
                mEffect.Parameters["xCursorPosition"].SetValue(terrainInstance.CursorPosition);
                mEffect.Parameters["xCursorInnerRadius"].SetValue(terrainInstance.CursorInnerRadius);
                mEffect.Parameters["xCursorOuterRadius"].SetValue(terrainInstance.CursorOuterRadius);
            }

            mEffect.Parameters["xTextureMask"].SetValue(terrainInstance.TextureMask);

            effectConfigurer(mEffect, instance, optionalParameters);

            mEffect.Parameters["AlphaMap"].SetValue(mMesh.AlphaMap);

            for (int i = 0; i < mMesh.DetailTextureNames.Length; ++i)
            {
                string detailTextureName = mMesh.DetailTextureNames[i];
                Vector2 uvOffset = mMesh.DetailTextureUVOffset[i];
                Vector2 uvScale = mMesh.DetailTextureUVScale[i];

                if (detailTextureName != null)
                {
                    mEffect.Parameters[LAYER_TEXTURE_NAMES[i]].SetValue(AssetLibrary.LookupTexture(detailTextureName));

                    mEffect.Parameters[LAYER_TEXTURE_NAMES[i] + "_uvOffset"].SetValue(uvOffset);
                    mEffect.Parameters[LAYER_TEXTURE_NAMES[i] + "_uvScale"].SetValue(uvScale);
                }
            }

            VertexBuffer vertexBuffer = mMesh.VertexBuffer;
            IndexBuffer indexBuffer = mMesh.IndexBuffer;

            GraphicsManager.Device.SetVertexBuffer(vertexBuffer);
            GraphicsManager.Device.Indices = indexBuffer;

            mEffect.CurrentTechnique.Passes[0].Apply();

            GraphicsManager.Device.DrawIndexedPrimitives(PrimitiveType.TriangleList, 0, 0, vertexBuffer.VertexCount, 0, indexBuffer.IndexCount / 3);

            GraphicsManager.Device.SetVertexBuffer(null);
            GraphicsManager.Device.Indices = null;
        }
Esempio n. 19
0
 /// <summary>
 /// Initializes a new instance of the GridlinesRenderer class with the specified renderer parameters.
 /// </summary>
 internal GridlinesRenderer(RendererParameters parms)
     : base(parms)
 { }
Esempio n. 20
0
        protected override void WithoutShadowsConfigurer(AnimationUtilities.SkinnedEffect effect, RendererParameters instance, object[] optionalParameters)
        {
            Light light = optionalParameters[0] as Light;

            effect.CurrentTechnique = effect.Techniques["CelShadeWithoutShadows"];

            effect.Parameters["xDirLightDirection"].SetValue(light.Direction);
            effect.Parameters["xDirLightDiffuseColor"].SetValue(light.DiffuseColor);
            effect.Parameters["xDirLightSpecularColor"].SetValue(light.SpecularColor);
            effect.Parameters["xDirLightAmbientColor"].SetValue(light.AmbientColor);

            effect.SpecularColor = new Vector3(0.25f);
            effect.SpecularPower = 16;
        }
Esempio n. 21
0
        public void Activate()
        {
            Window window = NUIApplication.GetDefaultWindow();

            root = new View()
            {
                Size                   = window.Size,
                BackgroundColor        = Color.Yellow,
                ParentOrigin           = ParentOrigin.TopLeft,
                PivotPoint             = PivotPoint.TopLeft,
                PositionUsesPivotPoint = true,
            };
            window.Add(root);

            string image1 = "<item 'width'=26 'height'=26 'url'='" + IMAGE1 + "'/>";
            string image2 = "<item 'width'=26 'height'=26/>";

            RendererParameters textParameters = new RendererParameters();

            textParameters.Text = "Hello " + image1 + " world " + image2 + " this " + image1 + " is " + image2 + " a " + image1 + " demo " + image2 + " of " + image1 + " circular " + image2 + " text " + image1 + " width " + image2 + " icons.";
            textParameters.HorizontalAlignment = HorizontalAlignment.Center;
            textParameters.VerticalAlignment   = VerticalAlignment.Center;
            textParameters.CircularAlignment   = CircularAlignment.Center;
            textParameters.FontFamily          = "SamsungUI";
            textParameters.FontWeight          = "";
            textParameters.FontWidth           = "";
            textParameters.FontSlant           = "";
            textParameters.Layout          = TextLayout.Circular;
            textParameters.TextColor       = Color.Black;
            textParameters.FontSize        = 25;
            textParameters.TextWidth       = 360u;
            textParameters.TextHeight      = 360u;
            textParameters.Radius          = 180u;
            textParameters.BeginAngle      = 15;
            textParameters.IncrementAngle  = 360;
            textParameters.EllipsisEnabled = true;
            textParameters.MarkupEnabled   = true;

            List <string> embeddedItems = new List <string>();

            embeddedItems.Add(IMAGE2);
            embeddedItems.Add(IMAGE2);
            embeddedItems.Add(IMAGE2);
            embeddedItems.Add(IMAGE2);
            embeddedItems.Add(IMAGE2);

            TextureSet textureSet = CreateTextureSet(textParameters, embeddedItems);
            Renderer   renderer   = CreateRenderer();

            renderer.SetTextures(textureSet);

            View actor = new View();

            actor.PivotPoint   = PivotPoint.TopLeft;
            actor.ParentOrigin = ParentOrigin.TopLeft;
            actor.Position     = new Position(0, 0, 0);
            actor.Size         = new Size(360, 360);
            actor.Color        = Color.White;

            actor.AddRenderer(renderer);
            root.Add(actor);
        }
Esempio n. 22
0
 protected override void WithShadowsConfigurer(AnimationUtilities.SkinnedEffect effect, RendererParameters instance, object[] optionalParameters)
 {
     WithoutShadowsConfigurer(effect, instance, optionalParameters);
 }
Esempio n. 23
0
        public int SetText(TextLabel label, string str)
        {
            if (label == null || str == null)
            {
                return(0);
            }

            // perform this operation to match the utf32 character used in native Dali.
            bool previousMarkup = label.EnableMarkup;

            label.EnableMarkup = false;
            label.Text         = str;
            pageString         = label.Text;
            label.EnableMarkup = previousMarkup;
            label.MultiLine    = true;
            label.Ellipsis     = false;

            int length       = pageString.Length;
            int remainLength = length;
            int offset       = 0;
            int cutOffIndex  = 0;

            // init
            totalPageCnt  = 0;
            pageList      = new List <PageData>();
            tagList       = new List <TagData>();
            characterList = new List <char>();

            stream = new StringReader(pageString);

            RendererParameters textParameters = new RendererParameters();

            textParameters.Text = pageString;
            textParameters.HorizontalAlignment = label.HorizontalAlignment;
            textParameters.VerticalAlignment   = label.VerticalAlignment;
            textParameters.FontFamily          = label.FontFamily;
            textParameters.FontWeight          = "";
            textParameters.FontWidth           = "";
            textParameters.FontSlant           = "";
            textParameters.Layout          = TextLayout.MultiLine;
            textParameters.TextColor       = Color.Black;
            textParameters.FontSize        = label.PointSize;
            textParameters.TextWidth       = (uint)label.Size.Width;
            textParameters.TextHeight      = (uint)label.Size.Height;
            textParameters.EllipsisEnabled = true;
            textParameters.MarkupEnabled   = previousMarkup;
            textParameters.MinLineSize     = label.MinLineSize;
            textParameters.Padding         = label.Padding;


            Tizen.NUI.PropertyArray cutOffIndexArray = TextUtils.GetLastCharacterIndex(textParameters);
            uint count = cutOffIndexArray.Count();

            for (uint i = 0; i < count; i++)
            {
                var temp = cutOffIndexArray.GetElementAt(i);
                temp.Get(out cutOffIndex); // Gets the last index of text shown on the actual screen.
                temp.Dispose();

                // If markup is enabled, It should parse markup
                if (label.EnableMarkup)
                {
                    int preOffset = offset;
                    offset        = MarkupProcess(offset, cutOffIndex - preOffset);
                    remainLength -= (offset - preOffset);
                }
                //If markup is not enabled, parsing is not required.
                else
                {
                    PageData pageData = new PageData();
                    pageData.StartOffset = offset;
                    int cnt = (cutOffIndex - offset) < remainLength ? (cutOffIndex - offset) : remainLength;
                    remainLength      -= cnt;
                    offset            += cnt;
                    pageData.EndOffset = offset;
                    pageList.Add(pageData);
                }
                totalPageCnt++;
                if (offset <= 0 || remainLength <= 0)
                {
                    break;
                }
            }

            textParameters.Dispose();
            cutOffIndexArray.Dispose();
            stream = null;
            return(totalPageCnt);
        }
Esempio n. 24
0
        protected void RenderShadowMap(Matrix lightView, Matrix lightProjection, RendererParameters instance)
        {
            bool oldTryCull = instance.TryCull;
            instance.TryCull = false;

            DrawGeometry(Matrix.Identity, Matrix.Identity, new object[] { (Matrix?)lightView, (Matrix?)lightProjection }, mShadowMapConfigurer, instance);

            instance.TryCull = oldTryCull;
        }
Esempio n. 25
0
 protected void RenderNormalDepth(Matrix view, Matrix projection, RendererParameters instance)
 {
     DrawGeometry(view, projection, null, mNormalDepthConfigurer, instance);
 }
Esempio n. 26
0
 protected abstract void DrawGeometry(Matrix view, Matrix projection, object[] optionalParameters, EffectConfigurer effectConfigurer, RendererParameters instance);
Esempio n. 27
0
 /// <summary>
 /// Initializes a new instance of the XAxisRenderer class with the specified renderer parameters.
 /// </summary>
 internal XAxisRenderer(RendererParameters parms)
     : base(parms)
 {
 }
Esempio n. 28
0
 /// <summary>
 /// Initializes a new instance of the Renderer class with the specified renderer parameters.
 /// </summary>
 internal Renderer(RendererParameters rendererParms)
 {
     _rendererParms = rendererParms;
 }
Esempio n. 29
0
        TextureSet CreateTextureSet(RendererParameters textParameters, List <string> embeddedItems)
        {
            EmbeddedItemInfo[] embeddedItemLayout = new EmbeddedItemInfo[0];
            PixelBuffer        pixelBuffer        = TextUtils.Render(textParameters, ref embeddedItemLayout);

            uint dstWidth  = pixelBuffer.GetWidth();
            uint dstHeight = pixelBuffer.GetHeight();

            int index  = 0;
            int length = embeddedItemLayout.Length;

            for (int i = 0; i < length; i++)
            {
                EmbeddedItemInfo itemLayout = embeddedItemLayout[i];
                int width  = (int)itemLayout.Size.Width;
                int height = (int)itemLayout.Size.Height;

                int x = (int)itemLayout.Position.X;
                int y = (int)itemLayout.Position.Y;

                PixelBuffer itemPixelBuffer = ImageLoading.LoadImageFromFile(embeddedItems[index++]);

                if (itemPixelBuffer == null)
                {
                    continue;
                }

                itemPixelBuffer.Resize((ushort)width, (ushort)height);
                itemPixelBuffer.Rotate(itemLayout.Angle);


                width  = (int)itemPixelBuffer.GetWidth();
                height = (int)itemPixelBuffer.GetHeight();

                PixelFormat itemPixelFormat = itemPixelBuffer.GetPixelFormat();

                // Check if the item is out of the buffer.
                if ((x + width < 0) ||
                    (x > dstWidth) ||
                    (y < 0) ||
                    (y - height > dstHeight))
                {
                    // The embedded item is completely out of the buffer.
                    continue;
                }

                // Crop if it exceeds the boundaries of the destination buffer.
                int layoutX   = 0;
                int layoutY   = 0;
                int cropX     = 0;
                int cropY     = 0;
                int newWidth  = width;
                int newHeight = height;

                bool crop = false;

                if (0 > x)
                {
                    newWidth += x;
                    cropX     = Math.Abs(x);
                    crop      = true;
                }
                else
                {
                    layoutX = x;
                }

                if (cropX + newWidth > dstWidth)
                {
                    crop      = true;
                    newWidth -= (int)((cropX + newWidth) - dstWidth);
                }

                layoutY = y;
                if (0 > layoutY)
                {
                    newHeight += layoutY;
                    cropY      = Math.Abs(layoutY);
                    crop       = true;
                }

                if (cropY + newHeight > dstHeight)
                {
                    crop       = true;
                    newHeight -= (int)((cropY + newHeight) - dstHeight);
                }

                int uiCropX     = cropX;
                int uiCropY     = cropY;
                int uiNewWidth  = newWidth;
                int uiNewHeight = newHeight;

                if (crop)
                {
                    itemPixelBuffer.Crop((ushort)uiCropX, (ushort)uiCropY, (ushort)uiNewWidth, (ushort)uiNewHeight);
                }

                // Blend the item pixel buffer with the text's color according its blending mode.
                if (ColorBlendingMode.Multiply == itemLayout.ColorBlendingMode)
                {
                    PixelBuffer buffer = new PixelBuffer((uint)uiNewWidth, (uint)uiNewHeight, itemPixelFormat);

                    IntPtr bufferIntPtr     = buffer.GetBuffer();
                    IntPtr itemBufferIntPtr = itemPixelBuffer.GetBuffer();

                    uint bytesPerPixel = GetBytesPerPixel(itemPixelFormat);
                    uint size          = (uint)(uiNewWidth * uiNewHeight * bytesPerPixel);


                    unsafe {
                        byte *bufferPtr     = (byte *)bufferIntPtr.ToPointer();
                        byte *itemBufferPtr = (byte *)itemBufferIntPtr.ToPointer();

                        for (uint j = 0; j < size; j += bytesPerPixel)
                        {
                            *(bufferPtr + 0) = (byte)((*(itemBufferPtr + 0u)) * textParameters.TextColor.R);
                            *(bufferPtr + 1) = (byte)((*(itemBufferPtr + 1u)) * textParameters.TextColor.G);
                            *(bufferPtr + 2) = (byte)((*(itemBufferPtr + 2u)) * textParameters.TextColor.B);
                            *(bufferPtr + 3) = (byte)((*(itemBufferPtr + 3u)) * textParameters.TextColor.A);

                            itemBufferPtr += bytesPerPixel;
                            bufferPtr     += bytesPerPixel;
                        }
                    }

                    itemPixelBuffer = buffer;
                }

                TextUtils.UpdateBuffer(itemPixelBuffer, pixelBuffer, (uint)layoutX, (uint)layoutY, true);
            }

            PixelData pixelData = PixelBuffer.Convert(pixelBuffer);

            Texture texture = new Texture(TextureType.TEXTURE_2D,
                                          pixelData.GetPixelFormat(),
                                          pixelData.GetWidth(),
                                          pixelData.GetHeight());

            texture.Upload(pixelData);

            TextureSet textureSet = new TextureSet();

            textureSet.SetTexture(0u, texture);

            return(textureSet);
        }
Esempio n. 30
0
 protected virtual void WithShadowsConfigurer(AnimationUtilities.SkinnedEffect effect, RendererParameters instance, object[] optionalParameters)
 {
 }
Esempio n. 31
0
 protected override void NormalDepthConfigurer(AnimationUtilities.SkinnedEffect effect, RendererParameters instance, object[] optionalParameters)
 {
     effect.CurrentTechnique = effect.Techniques["NormalDepthShade"];
 }
Esempio n. 32
0
 public void AddInstance(RendererParameters instance)
 {
     mInstances.Enqueue(instance);
 }
Esempio n. 33
0
        protected override void WithShadowsConfigurer(AnimationUtilities.SkinnedEffect effect, RendererParameters instance, object[] optionalParameters)
        {
            CascadedShadowMap shadowMap = optionalParameters[0] as CascadedShadowMap;
            Light light = optionalParameters[1] as Light;

            effect.CurrentTechnique = effect.Techniques["CelShadeWithShadows"];

            effect.Parameters["ShadowMap"].SetValue(shadowMap.Buffer);

            effect.Parameters["xLightView"].SetValue(shadowMap.LightView);
            effect.Parameters["xLightProjections"].SetValue(shadowMap.LightProjections);

            effect.Parameters["xVisualizeCascades"].SetValue(shadowMap.VisualizeCascades);
            effect.Parameters["xCascadeCount"].SetValue(shadowMap.CascadeCount);
            effect.Parameters["xCascadeBufferBounds"].SetValue(shadowMap.CascadeBounds);
            effect.Parameters["xCascadeColors"].SetValue(shadowMap.CascadeColors);

            effect.Parameters["xDirLightDirection"].SetValue(light.Direction);
            effect.Parameters["xDirLightDiffuseColor"].SetValue(light.DiffuseColor);
            effect.Parameters["xDirLightSpecularColor"].SetValue(light.SpecularColor);
            effect.Parameters["xDirLightAmbientColor"].SetValue(light.AmbientColor);

            effect.SpecularColor = new Vector3(0.25f);
            effect.SpecularPower = 16;
        }
Esempio n. 34
0
        protected override void NoShadeConfigurer(AnimationUtilities.SkinnedEffect effect, RendererParameters instance, object[] optionalParameters)
        {
            effect.Parameters["xTextureTransformation"].SetValue((instance as TransparentModelParameters).AnimationTransformation);

            effect.CurrentTechnique = effect.Techniques["NoShade"];
        }
Esempio n. 35
0
 protected void RenderUI(Matrix view, Matrix projection, RendererParameters instance)
 {
     DrawGeometry(view, projection, null, mUIConfigurer, instance);
 }
Esempio n. 36
0
        protected override void PickingConfigurer(AnimationUtilities.SkinnedEffect effect, RendererParameters instance, object[] optionalParameters)
        {
            effect.CurrentTechnique = effect.Techniques["PickingShade"];

            effect.Parameters["xPickingIndex"].SetValue(new Vector4(0, 0, 0, 0));
        }
Esempio n. 37
0
        /// <summary>
        /// Draws all charts inside the ChartFrame.
        /// </summary>
        public void Draw(XGraphics gfx)
        {
            // Draw frame of ChartFrame. First shadow frame.
            int dx = 5;
            int dy = 5;

            gfx.DrawRoundedRectangle(XBrushes.Gainsboro,
                                     this.location.X + dx, this.location.Y + dy,
                                     this.size.Width, this.size.Height, 20, 20);

            XRect chartRect            = new XRect(this.location.X, this.location.Y, this.size.Width, this.size.Height);
            XLinearGradientBrush brush = new XLinearGradientBrush(chartRect, XColor.FromArgb(0xFFD0DEEF), XColors.White,
                                                                  XLinearGradientMode.Vertical);
            XPen penBorder = new XPen(XColors.SteelBlue, 2.5);

            gfx.DrawRoundedRectangle(penBorder, brush,
                                     this.location.X, this.location.Y, this.size.Width, this.size.Height,
                                     15, 15);

            XGraphicsState state = gfx.Save();

            gfx.TranslateTransform(this.location.X, this.location.Y);

            // Calculate rectangle for all charts. Y-Position will be moved for each chart.
            int   charts          = this.chartList.Count;
            uint  dxChart         = 20;
            uint  dyChart         = 20;
            uint  dyBetweenCharts = 30;
            XRect rect            = new XRect(dxChart, dyChart,
                                              this.size.Width - 2 * dxChart,
                                              (this.size.Height - (charts - 1) * dyBetweenCharts - 2 * dyChart) / charts);

            // draw each chart in list
            foreach (Chart chart in this.chartList)
            {
                RendererParameters parms = new RendererParameters(gfx, rect);
                parms.DrawingItem = chart;

                ChartRenderer renderer = GetChartRenderer(chart, parms);
                renderer.Init();
                renderer.Format();
                renderer.Draw();

                rect.Y += rect.Height + dyBetweenCharts;
            }
            gfx.Restore(state);

//      // Calculate rectangle for all charts. Y-Position will be moved for each chart.
//      int charts = this.chartList.Count;
//      uint dxChart = 0;
//      uint dyChart = 0;
//      uint dyBetweenCharts = 0;
//      XRect rect = new XRect(dxChart, dyChart,
//        this.size.Width - 2 * dxChart,
//        (this.size.Height - (charts - 1) * dyBetweenCharts - 2 * dyChart) / charts);
//
//      // draw each chart in list
//      foreach (Chart chart in this.chartList)
//      {
//        RendererParameters parms = new RendererParameters(gfx, rect);
//        parms.DrawingItem = chart;
//
//        ChartRenderer renderer = GetChartRenderer(chart, parms);
//        renderer.Init();
//        renderer.Format();
//        renderer.Draw();
//
//        rect.Y += rect.Height + dyBetweenCharts;
//      }
        }
Esempio n. 38
0
 protected void RenderWithoutShadows(Matrix view, Matrix projection, Light light, RendererParameters instance)
 {
     DrawGeometry(view, projection, new object[] { light }, mWithoutShadowsConfigurer, instance);
 }
Esempio n. 39
0
 /// <summary>
 /// Initializes a new instance of the XAxisRenderer class with the specified renderer parameters.
 /// </summary>
 internal XAxisRenderer(RendererParameters parms)
     : base(parms)
 { }
Esempio n. 40
0
 protected void RenderWithShadows(CascadedShadowMap shadowMap, Matrix view, Matrix projection, Light light, RendererParameters instance)
 {
     DrawGeometry(view, projection, new object[] { shadowMap, light }, mWithShadowsConfigurer, instance);
 }