public LibraryTextAsTexture(SpriteFont font, Texture2D txGradient, string sTextCategory, string sTextID, LibraryTextAsTexture.TextType enType, Color cLineCol, float fLineAlpha, float fScale, int iOverrideFontSpacing = -100) { this.sTextCategory = sTextCategory; this.sTextID = sTextID; this.txGradientTexture = txGradient; this.enOutlineType = enType; this.cLineColor = cLineCol; this.fLineAlpha = fLineAlpha; this.fTextScale = fScale; this.fAADiscardThreshold = 0.6f; this.iOverrideFontSpacing = iOverrideFontSpacing; this.Setup(enType, font, Program.game.MiscTextLibrary_GetText(sTextCategory, sTextID), this.txGradientTexture); if (RenderMaster.LocalizedTextures.bAddToList) { Program.game.xRenderMaster.lxRemakeOnAdapterReset.Add(this); } }
public void Setup(LibraryTextAsTexture.TextType enType, SpriteFont font, string sSourceString, Texture2D txGradient) { if (this.iOverrideFontSpacing > -100) { font.Spacing = (float)this.iOverrideFontSpacing; } Vector2 v2Dimensions = font.MeasureString(sSourceString) * this.fTextScale; if (this.iOverrideFontSpacing > -100) { font.Spacing = (float)FontManager.GetOriginalSpacing(font); } this.bFinalRendered = false; if (this.rt2dFinal != null) { this.rt2dFinal.Dispose(); } this.rt2dA = new RenderTarget2D(Program.game.GraphicsDevice, (int)v2Dimensions.X, (int)v2Dimensions.Y, false, SurfaceFormat.Color, DepthFormat.Depth24Stencil8); this.rt2dB = new RenderTarget2D(Program.game.GraphicsDevice, (int)v2Dimensions.X, (int)v2Dimensions.Y, false, SurfaceFormat.Color, DepthFormat.Depth24Stencil8); int iAdd = 0; if (enType == LibraryTextAsTexture.TextType.Shaded) { iAdd = 1; } else if (enType == LibraryTextAsTexture.TextType.Outlined) { iAdd = 2; } this.rt2dC = new RenderTarget2D(Program.game.GraphicsDevice, (int)v2Dimensions.X + iAdd, (int)v2Dimensions.Y + iAdd, false, SurfaceFormat.Color, DepthFormat.Depth24Stencil8); this.rt2dFinal = new RenderTarget2D(Program.game.GraphicsDevice, (int)v2Dimensions.X + iAdd, (int)v2Dimensions.Y + iAdd, false, SurfaceFormat.Color, DepthFormat.Depth24Stencil8); this.font = font; this.enOutlineType = enType; this.sSourceString = sSourceString; Program.game.xRenderMaster.AddToPrerenderQueue(this); }