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); }
} // 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); }
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); }
/// <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(); }
public void Dispose() { if (this.fontWrapper != null) { this.fontWrapper.Dispose(); this.fontWrapper = null; } }
public TextFontRenderer(FontWrapper fontWrapper) { if (fontWrapper == null) { throw new ArgumentNullException("fontWrapper"); } this.fontWrapper = fontWrapper; }
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; } }
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); }
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); } }
public void Shutdown() { if (fontWrapper != null) { fontWrapper.Dispose(); fontWrapper = null; } if (fontFactory != null) { fontFactory.Dispose(); fontFactory = null; } }
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(); } }
public void Dispose() { _regularFont?.Dispose(); _boldFont?.Dispose(); _italicFont?.Dispose(); _underlineFont?.Dispose(); _strikeoutFont?.Dispose(); _regularFont = null; _boldFont = null; _italicFont = null; _underlineFont = null; _strikeoutFont = null; }
/// <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); }
/// <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); }
public MenuItemFactory WithFont(FontStyle style, Color?color = null) { Font = new FontWrapper(style, color); return(this); }
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(); } }
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(); } }
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(); } }