Exemplo n.º 1
0
        public static FontWrapper GetWrapper(DX11RenderContext context, SlimDX.DirectWrite.Factory dwFactory)
        {
            if (fontWrapper == null)
            {
                FontWrapperCreationParameters p = new FontWrapperCreationParameters()
                {
                    SheetMipLevels       = 5,
                    AnisotropicFiltering = 1,
                    DefaultFontParams    = new DirectWriteFontParameters()
                    {
                        FontFamily  = "Arial",
                        FontStretch = SharpDX.DirectWrite.FontStretch.Normal,
                        FontStyle   = SharpDX.DirectWrite.FontStyle.Normal,
                        FontWeight  = SharpDX.DirectWrite.FontWeight.Normal,
                    },
                    DisableGeometryShader = 0,
                    GlyphSheetHeight      = 0,
                    GlyphSheetWidth       = 0,
                    MaxGlyphCountPerSheet = 0,
                    MaxGlyphHeight        = 0,
                    MaxGlyphWidth         = 0,
                    VertexBufferSize      = 0
                };

                var factory = GetFactory();
                fontWrapper = factory.CreateFontWrapper(new SharpDX.Direct3D11.Device(context.Device.ComPointer), new SharpDX.DirectWrite.Factory(dwFactory.ComPointer), ref p);
            }
            return(fontWrapper);
        }
Exemplo n.º 2
0
        }   // end of LoadContent()

        public static void UnloadContent()
        {
            BokuGame.Release(ref batch);

            gameFontLineNumbers = null;
            gameFont10          = null;
            gameFont13_5        = null;
            gameFont15_75       = null;
            gameFont18Bold      = null;
            gameFont20          = null;
            gameFont24          = null;
            gameFont24Bold      = null;
            gameFont30Bold      = null;
            cardLabel           = null;

            segoeUI20 = null;
            segoeUI24 = null;
            segoeUI30 = null;

            ReleaseRenderTargets();

            BokuGame.Release(ref blackButtonTexture);
            BokuGame.Release(ref upDownArrowsTexture);

            BokuGame.Release(ref blendStateColorWriteRGB);
            BokuGame.Release(ref rasterStateWireframe);

            BokuGame.Release(ref quadIndexBuffer);
        }
Exemplo n.º 3
0
 protected override void OnLoad(EventArgs e)
 {
     m_Font        = StateSaver.Default.Get <FontWrapper>("MonitorForm.m_Font", new FontWrapper(new Font("Arial", 16, FontStyle.Regular)));
     this.Size     = StateSaver.Default.Get <Size>("MonitorForm.Size", this.Size);
     this.Location = StateSaver.Default.Get <Point>("MonitorForm.Location", this.Location);
     base.OnLoad(e);
 }
Exemplo n.º 4
0
        /// <summary>
        /// Function: Int info
        /// Author  : Jerry Xu
        /// Date    : 2008-8-19
        /// </summary>
        private void Init()
        {
            //Config spinEdit font size info
            seFontSize.Properties.Mask.EditMask = "f0";
            seFontSize.Properties.MaxValue      = 72;
            seFontSize.Properties.MinValue      = 1;
            seFontSize.Properties.NullText      = "1";

            //Init font info
            InitPrivateFonts();
            InitAllFonts();
            InitFontType();
            if (_myFont == null)
            {
                _myFont = new FontWrapper();
            }
            //If private font
            if (ListPrivateFonts.Contains(_myFont.Name))
            {
                chkFontType.Checked = true;
            }
            else
            {
                chkFontType.Checked = false;
            }
            LoadFont(chkFontType.Checked, _myFont.Name);
            InitFontStyle();
            LoadFontStyle(_myFont.Style);
            seFontSize.Text = ((int)_myFont.Size).ToString();
        }
Exemplo n.º 5
0
 public void Dispose()
 {
     if (this.fontWrapper != null)
     {
         this.fontWrapper.Dispose();
         this.fontWrapper = null;
     }
 }
Exemplo n.º 6
0
        public TextFontRenderer(FontWrapper fontWrapper)
        {
            if (fontWrapper == null)
            {
                throw new ArgumentNullException("fontWrapper");
            }

            this.fontWrapper = fontWrapper;
        }
Exemplo n.º 7
0
        void RepositoryItemFontEdit_ButtonClick(object sender, ButtonPressedEventArgs e)
        {
            FontSelectForm fontForm = new FontSelectForm();
            ButtonEdit     edit     = sender as ButtonEdit;

            if (fontForm.ShowModalDialog() == DialogResult.OK)
            {
                FontWrapper font = fontForm.MyFont;
                edit.EditValue = font;
            }
        }
Exemplo n.º 8
0
        public void Load(Font font)
        {
            Dispose();

            FontHeight = (int)Math.Ceiling(font.GetHeight());

            _regularFont   = new FontWrapper(font, FontStyle.Regular);
            _boldFont      = new FontWrapper(font, FontStyle.Bold);
            _italicFont    = new FontWrapper(font, FontStyle.Italic);
            _underlineFont = new FontWrapper(font, FontStyle.Underline);
            _strikeoutFont = new FontWrapper(font, FontStyle.Strikeout);
        }
Exemplo n.º 9
0
        public static Font ToFont(this string text)
        {
            XmlSerializer formatter = new XmlSerializer(typeof(FontWrapper));

            using (var str = XmlReader.Create(new StringReader(text)))
            {
                Debug.Assert(str != null);
                FontWrapper font = ((FontWrapper)formatter.Deserialize(str));
                Debug.Assert(font != null);
                return(font.Value);
            }
        }
Exemplo n.º 10
0
 public void Shutdown()
 {
     if (fontWrapper != null)
     {
         fontWrapper.Dispose();
         fontWrapper = null;
     }
     if (fontFactory != null)
     {
         fontFactory.Dispose();
         fontFactory = null;
     }
 }
Exemplo n.º 11
0
        private void Render(DX11RenderContext context, DX11RenderSettings settings)
        {
            if (this.spreadMax == 0)
            {
                return;
            }

            if (this.FInEnabled[0])
            {
                float w = (float)settings.RenderWidth;
                float h = (float)settings.RenderHeight;
                SharpDX.Direct3D11.DeviceContext shaprdxContext = new SharpDX.Direct3D11.DeviceContext(context.CurrentDeviceContext.ComPointer);

                FontWrapper fw = this.FTextRenderer.IsConnected ? this.FTextRenderer[0][context].FontWrapper : FontWrapperFactory.GetWrapper(context, this.dwFactory);

                var sView = settings.View;
                var sProj = settings.Projection;

                SharpDX.Matrix view       = *(SharpDX.Matrix *) & sView;
                SharpDX.Matrix projection = *(SharpDX.Matrix *) & sProj;


                var objectsettings = this.objectSettings[context];
                objectsettings.IterationCount = 1;
                objectsettings.Geometry       = null;

                for (int i = 0; i < this.textCache.objects.Length; i++)
                {
                    SharpDX.Matrix mat = SharpDX.Matrix.Scaling(1.0f, -1.0f, 1.0f);
                    mat = SharpDX.Matrix.Multiply(mat, view);
                    mat = SharpDX.Matrix.Multiply(mat, projection);

                    objectsettings.DrawCallIndex  = i;
                    objectsettings.WorldTransform = *(SlimDX.Matrix *) & mat;

                    if (settings.ValidateObject(objectsettings))
                    {
                        SlimDX.Color4 color = this.textCache.objects[i].Color;
                        color.Alpha *= SharpDX.MathUtil.Clamp(settings.LayerOpacity, 0.0f, 1.0f);
                        SharpDX.Color4 sdxColor = *(SharpDX.Color4 *) & color;

                        fw.DrawTextLayout(shaprdxContext, new SharpDX.DirectWrite.TextLayout(this.textCache.objects[i].TextLayout.ComPointer), SharpDX.Vector2.Zero,
                                          mat, sdxColor, TextFlags.None);
                    }
                }

                //Apply old states back
                context.RenderStateStack.Apply();
                context.CleanShaderStages();
            }
        }
Exemplo n.º 12
0
        public void Dispose()
        {
            _regularFont?.Dispose();
            _boldFont?.Dispose();
            _italicFont?.Dispose();
            _underlineFont?.Dispose();
            _strikeoutFont?.Dispose();

            _regularFont   = null;
            _boldFont      = null;
            _italicFont    = null;
            _underlineFont = null;
            _strikeoutFont = null;
        }
Exemplo n.º 13
0
        /// <summary> Builds text on sphere. </summary>
        private GameObject BuildSphereText(GameObject gameObject, Element element)
        {
            var sphereText = gameObject.AddComponent <SphereText>();

            sphereText.Coordinate = element.Geometry[0];
            // NOTE should be in sync with sphere size and offsetted polygons
            sphereText.Radius = 6371f + 25f;

            var font = new FontWrapper(element.Styles, _fontCache);

            sphereText.font      = font.Font;
            sphereText.fontSize  = font.Size;
            sphereText.color     = font.Color;
            sphereText.text      = GetText(element);
            sphereText.alignment = TextAnchor.MiddleCenter;

            return(gameObject);
        }
Exemplo n.º 14
0
        /// <summary> Builds flat text. </summary>
        private GameObject BuildFlatText(GameObject gameObject, Element element)
        {
            var text = gameObject.AddComponent <TextMesh>();

            // TODO determine correct height
            gameObject.transform.position = _mapBehaviour.TileController.Projection.Project(element.Geometry[0], 100);
            gameObject.transform.rotation = Quaternion.Euler(90, 0, 0);

            var font = new FontWrapper(element.Styles);

            //text.font = font.Font;
            text.fontSize  = font.Size;
            text.color     = font.Color;
            text.text      = GetText(element);
            text.anchor    = TextAnchor.MiddleCenter;
            text.alignment = TextAlignment.Center;

            gameObject.transform.localScale *= font.Scale;

            return(gameObject);
        }
Exemplo n.º 15
0
 public MenuItemFactory WithFont(FontStyle style, Color?color = null)
 {
     Font = new FontWrapper(style, color);
     return(this);
 }
Exemplo n.º 16
0
        private void Render(DX11RenderContext context, DX11RenderSettings settings)
        {
            if (this.spreadMax == 0)
            {
                return;
            }

            if (this.FInEnabled[0])
            {
                float w = (float)settings.RenderWidth;
                float h = (float)settings.RenderHeight;

                if (shaprdxContext == null)
                {
                    shaprdxContext = new SharpDX.Direct3D11.DeviceContext(context.CurrentDeviceContext.ComPointer);
                }

                FontWrapper fw = this.FTextRenderer.IsConnected ? this.FTextRenderer[0][context].FontWrapper : FontWrapperFactory.GetWrapper(context, this.dwFactory);

                var renderStates = fw.RenderStates;

                float *rawMatPtr;
                int    transformCount;
                this.transformIn.GetMatrixPointer(out transformCount, out rawMatPtr);

                SharpDX.Matrix *matrixPointer = (SharpDX.Matrix *)rawMatPtr;

                bool applyState = this.FStateIn.IsConnected;

                var sView = settings.View;
                var sProj = settings.Projection;

                SharpDX.Matrix view       = *(SharpDX.Matrix *) & sView;
                SharpDX.Matrix projection = *(SharpDX.Matrix *) & sProj;

                var objectsettings = this.objectSettings[context];
                objectsettings.IterationCount = 1;
                objectsettings.Geometry       = null;

                for (int i = 0; i < this.spreadMax; i++)
                {
                    SharpDX.Matrix preScale = SharpDX.Matrix.Scaling(1.0f, -1.0f, 1.0f);

                    switch (this.FNormalizeInput[i].Index)
                    {
                    case 1: preScale = SharpDX.Matrix.Scaling(1.0f / w, -1.0f / w, 1.0f); break;

                    case 2: preScale = SharpDX.Matrix.Scaling(1.0f / h, -1.0f / h, 1.0f); break;

                    case 3: preScale = SharpDX.Matrix.Scaling(1.0f / w, -1.0f / h, 1.0f); break;
                    }
                    SharpDX.Matrix sm = matrixPointer[i % transformCount];

                    SharpDX.Matrix mat = SharpDX.Matrix.Multiply(preScale, sm);
                    mat = SharpDX.Matrix.Multiply(mat, view);
                    mat = SharpDX.Matrix.Multiply(mat, projection);

                    objectsettings.DrawCallIndex  = i;
                    objectsettings.WorldTransform = *(SlimDX.Matrix *) & mat;


                    if (settings.ValidateObject(objectsettings))
                    {
                        SlimDX.Color4 color = this.FInColor[i];
                        color.Alpha *= SharpDX.MathUtil.Clamp(settings.LayerOpacity, 0.0f, 1.0f);
                        SharpDX.Color4 sdxColor = *(SharpDX.Color4 *) & color;

                        TextFlags flag = TextFlags.NoWordWrapping;

                        if (this.FHorizontalAlignInput[i].Index == 0)
                        {
                            flag |= TextFlags.Left;
                        }
                        else if (this.FHorizontalAlignInput[i].Index == 1)
                        {
                            flag |= TextFlags.Center;
                        }
                        else if (this.FHorizontalAlignInput[i].Index == 2)
                        {
                            flag |= TextFlags.Right;
                        }

                        if (this.FVerticalAlignInput[i].Index == 0)
                        {
                            flag |= TextFlags.Top;
                        }
                        else if (this.FVerticalAlignInput[i].Index == 1)
                        {
                            flag |= TextFlags.VerticalCenter;
                        }
                        else if (this.FVerticalAlignInput[i].Index == 2)
                        {
                            flag |= TextFlags.Bottom;
                        }

                        string font = this.FFontInput[i].Name;

                        if (applyState)
                        {
                            renderStates.SetStates(shaprdxContext, 0);

                            context.RenderStateStack.Push(this.FStateIn[i]);

                            fw.DrawString(shaprdxContext, this.FInString[i], font, this.FInSize[i],
                                          mat, sdxColor, flag | TextFlags.StatePrepared);

                            context.RenderStateStack.Pop();
                        }
                        else
                        {
                            fw.DrawString(shaprdxContext, this.FInString[i], font, this.FInSize[i],
                                          mat, sdxColor, flag);
                        }
                    }
                }

                //Apply old states back
                context.RenderStateStack.Apply();
                context.CleanShaderStages();
            }
        }
Exemplo n.º 17
0
        private void Render(DX11RenderContext context, DX11RenderSettings settings)
        {
            if (this.spreadMax == 0)
            {
                return;
            }

            if (this.FInEnabled[0])
            {
                float w = (float)settings.RenderWidth;
                float h = (float)settings.RenderHeight;
                SharpDX.Direct3D11.DeviceContext shaprdxContext = new SharpDX.Direct3D11.DeviceContext(context.CurrentDeviceContext.ComPointer);

                FontWrapper fw = this.FTextRenderer.IsConnected ? this.FTextRenderer[0][context].FontWrapper : FontWrapperFactory.GetWrapper(context, this.dwFactory);

                var renderStates = fw.RenderStates;

                float *rawMatPtr;
                int    transformCount;
                this.transformIn.GetMatrixPointer(out transformCount, out rawMatPtr);

                SharpDX.Matrix *matrixPointer = (SharpDX.Matrix *)rawMatPtr;

                bool applyState = this.FStateIn.IsConnected;

                var sView = settings.View;
                var sProj = settings.Projection;

                SharpDX.Matrix view       = *(SharpDX.Matrix *) & sView;
                SharpDX.Matrix projection = *(SharpDX.Matrix *) & sProj;

                var objectsettings = this.objectSettings[context];
                objectsettings.IterationCount = 1;
                objectsettings.Geometry       = null;

                for (int i = 0; i < this.spreadMax; i++)
                {
                    SharpDX.Matrix preScale = SharpDX.Matrix.Scaling(1.0f, -1.0f, 1.0f);

                    SharpDX.Matrix sm = matrixPointer[i % transformCount];

                    SharpDX.Matrix mat = SharpDX.Matrix.Multiply(preScale, sm);
                    mat = SharpDX.Matrix.Multiply(mat, view);
                    mat = SharpDX.Matrix.Multiply(mat, projection);

                    SlimDX.Color4  color    = this.FInColor[i];
                    SharpDX.Color4 sdxColor = *(SharpDX.Color4 *) & color;

                    objectsettings.DrawCallIndex  = i;
                    objectsettings.WorldTransform = *(SlimDX.Matrix *) & mat;

                    if (settings.ValidateObject(objectsettings))
                    {
                        if (applyState)
                        {
                            var textLayout = this.FLayout[i];

                            if (textLayout != null)
                            {
                                renderStates.SetStates(shaprdxContext, 0);

                                context.RenderStateStack.Push(this.FStateIn[i]);

                                fw.DrawTextLayout(shaprdxContext, new SharpDX.DirectWrite.TextLayout(textLayout.ComPointer), SharpDX.Vector2.Zero,
                                                  mat, sdxColor, TextFlags.StatePrepared);

                                context.RenderStateStack.Pop();
                            }
                        }
                        else
                        {
                            var textLayout = this.FLayout[i];

                            if (textLayout != null)
                            {
                                fw.DrawTextLayout(shaprdxContext, new SharpDX.DirectWrite.TextLayout(textLayout.ComPointer), SharpDX.Vector2.Zero,
                                                  mat, sdxColor, TextFlags.None);
                            }
                        }
                    }
                }

                //Apply old states back
                context.RenderStateStack.Apply();
                context.CleanShaderStages();
            }
        }
Exemplo n.º 18
0
        private void Render(DX11RenderContext context, DX11RenderSettings settings)
        {
            if (this.spreadMax == 0)
            {
                return;
            }

            if (this.FInEnabled[0])
            {
                float w = (float)settings.RenderWidth;
                float h = (float)settings.RenderHeight;
                SharpDX.Direct3D11.DeviceContext shaprdxContext = new SharpDX.Direct3D11.DeviceContext(context.CurrentDeviceContext.ComPointer);

                FontWrapper fw = this.FTextRenderer.IsConnected ? this.FTextRenderer[0][context].FontWrapper : FontWrapperFactory.GetWrapper(context, this.dwFactory);

                var renderStates = fw.RenderStates;

                float *rawMatPtr;
                int    transformCount;
                this.transformIn.GetMatrixPointer(out transformCount, out rawMatPtr);

                SharpDX.Matrix *matrixPointer       = (SharpDX.Matrix *)rawMatPtr;
                SlimDX.Matrix * slimDxmatrixPointer = (SlimDX.Matrix *)rawMatPtr;

                bool applyState = this.FStateIn.IsConnected;

                var sView = settings.View;
                var sProj = settings.Projection;

                SharpDX.Matrix view       = *(SharpDX.Matrix *) & sView;
                SharpDX.Matrix projection = *(SharpDX.Matrix *) & sProj;

                var objectsettings        = this.objectSettings[context];
                var orderedobjectsettings = this.orderedObjectSettings[context];
                objectsettings.IterationCount = 1;
                objectsettings.Geometry       = null;

                bool       doOrder       = false;
                List <int> orderedSlices = null;
                if (settings.LayerOrder != null && settings.LayerOrder.Enabled)
                {
                    orderedobjectsettings.Clear();
                    for (int i = 0; i < this.spreadMax; i++)
                    {
                        DX11ObjectRenderSettings objSettings = new DX11ObjectRenderSettings();
                        objSettings.DrawCallIndex  = i;
                        objSettings.Geometry       = null;
                        objSettings.IterationCount = 1;
                        objSettings.IterationIndex = 0;
                        objSettings.WorldTransform = slimDxmatrixPointer[i % transformCount];
                        objSettings.RenderStateTag = null;
                        orderedobjectsettings.Add(objSettings);
                    }

                    orderedSlices = settings.LayerOrder.Reorder(settings, orderedobjectsettings);
                    doOrder       = true;
                }

                int drawCount = doOrder ? orderedSlices.Count : this.spreadMax;

                for (int drawIdx = 0; drawIdx < drawCount; drawIdx++)
                {
                    int            idx      = doOrder ? orderedSlices[drawIdx] : drawIdx;
                    SharpDX.Matrix preScale = SharpDX.Matrix.Scaling(1.0f, -1.0f, 1.0f);

                    SharpDX.Matrix sm = matrixPointer[idx % transformCount];

                    SharpDX.Matrix mat = SharpDX.Matrix.Multiply(preScale, sm);
                    mat = SharpDX.Matrix.Multiply(mat, view);
                    mat = SharpDX.Matrix.Multiply(mat, projection);

                    SlimDX.Color4 color = this.FInColor[idx];
                    color.Alpha *= SharpDX.MathUtil.Clamp(settings.LayerOpacity, 0.0f, 1.0f);
                    SharpDX.Color4 sdxColor = *(SharpDX.Color4 *) & color;

                    objectsettings.DrawCallIndex  = idx;
                    objectsettings.WorldTransform = *(SlimDX.Matrix *) & mat;

                    if (settings.ValidateObject(objectsettings))
                    {
                        if (applyState)
                        {
                            var textLayout = this.FLayout[idx];

                            if (textLayout != null)
                            {
                                renderStates.SetStates(shaprdxContext, 0);

                                context.RenderStateStack.Push(this.FStateIn[idx]);

                                fw.DrawTextLayout(shaprdxContext, new SharpDX.DirectWrite.TextLayout(textLayout.ComPointer), SharpDX.Vector2.Zero,
                                                  mat, sdxColor, TextFlags.StatePrepared);

                                context.RenderStateStack.Pop();
                            }
                        }
                        else
                        {
                            var textLayout = this.FLayout[idx];

                            if (textLayout != null)
                            {
                                fw.DrawTextLayout(shaprdxContext, new SharpDX.DirectWrite.TextLayout(textLayout.ComPointer), SharpDX.Vector2.Zero,
                                                  mat, sdxColor, TextFlags.None);
                            }
                        }
                    }
                }

                //Apply old states back
                context.RenderStateStack.Apply();
                context.CleanShaderStages();
            }
        }