internal override void RenderText(AuraText a) { SharpDXState s = (SharpDXState)a.State; if (s.NeedFont == true || s.TextBrush == null) { if (s.window == null) { AdjustSurface(a); } s.LoadFontOnDemand(a); s.NeedFont = false; s.NeedRender = true; } if (Owner.RenderingActive == false) { if (s.WasHidden == false) { s.NeedRender = true; s.WasHidden = true; } } else { if (s.WasHidden == true) { s.NeedRender = true; s.WasHidden = false; } } if (s.NeedRender == false) { //return; } AdjustSurface(a); s.NeedRender = false; s.graphics.BeginScene(); if (Owner.RenderingActive == false) { Color tempBgColor = new Color(); s.graphics.ClearScene(tempBgColor); s.graphics.EndScene(); return; } if (a.BackgroundColor != System.Drawing.Color.Transparent) { s.bgColor.A = a.Opacity / 100.0f; } s.graphics.ClearScene(s.bgColor); SharpDX.DirectWrite.ParagraphAlignment pa = SharpDX.DirectWrite.ParagraphAlignment.Center; SharpDX.DirectWrite.TextAlignment ta = SharpDX.DirectWrite.TextAlignment.Center; switch (a.TextAlignment) { case Triggernometry.Action.TextAuraAlignmentEnum.TopLeft: pa = SharpDX.DirectWrite.ParagraphAlignment.Near; ta = SharpDX.DirectWrite.TextAlignment.Leading; break; case Triggernometry.Action.TextAuraAlignmentEnum.TopCenter: pa = SharpDX.DirectWrite.ParagraphAlignment.Near; break; case Triggernometry.Action.TextAuraAlignmentEnum.TopRight: pa = SharpDX.DirectWrite.ParagraphAlignment.Near; ta = SharpDX.DirectWrite.TextAlignment.Trailing; break; case Triggernometry.Action.TextAuraAlignmentEnum.MiddleLeft: ta = SharpDX.DirectWrite.TextAlignment.Leading; break; case Triggernometry.Action.TextAuraAlignmentEnum.MiddleCenter: break; case Triggernometry.Action.TextAuraAlignmentEnum.MiddleRight: ta = SharpDX.DirectWrite.TextAlignment.Trailing; break; case Triggernometry.Action.TextAuraAlignmentEnum.BottomLeft: pa = SharpDX.DirectWrite.ParagraphAlignment.Far; ta = SharpDX.DirectWrite.TextAlignment.Leading; break; case Triggernometry.Action.TextAuraAlignmentEnum.BottomCenter: pa = SharpDX.DirectWrite.ParagraphAlignment.Far; break; case Triggernometry.Action.TextAuraAlignmentEnum.BottomRight: pa = SharpDX.DirectWrite.ParagraphAlignment.Far; ta = SharpDX.DirectWrite.TextAlignment.Trailing; break; } if (a.UseOutline == true) { s.TextBrush.Color = new Color(a.OutlineColor.R, a.OutlineColor.G, a.OutlineColor.B, a.Opacity / 100.0f); s.graphics.DrawTextEx(s.TextFont, a.FontStyle, a.FontSize * 1.3f, s.TextBrush, pa, ta, 1, 0, a.Width, a.Height, a.Text); s.graphics.DrawTextEx(s.TextFont, a.FontStyle, a.FontSize * 1.3f, s.TextBrush, pa, ta, -1, 0, a.Width, a.Height, a.Text); s.graphics.DrawTextEx(s.TextFont, a.FontStyle, a.FontSize * 1.3f, s.TextBrush, pa, ta, 0, 1, a.Width, a.Height, a.Text); s.graphics.DrawTextEx(s.TextFont, a.FontStyle, a.FontSize * 1.3f, s.TextBrush, pa, ta, 0, -1, a.Width, a.Height, a.Text); } s.TextBrush.Color = new Color(a.TextColor.R, a.TextColor.G, a.TextColor.B, a.Opacity / 100.0f); s.graphics.DrawTextEx(s.TextFont, a.FontStyle, a.FontSize * 1.3f, s.TextBrush, pa, ta, 0, 0, a.Width, a.Height, a.Text); s.graphics.EndScene(); }