// Token: 0x06004373 RID: 17267 RVA: 0x000F9858 File Offset: 0x000F7A58 private void renderBackground() { if (this.Atlas == null) { return; } global::dfAtlas.ItemInfo itemInfo = this.Atlas[this.backgroundSprite]; if (itemInfo == null) { return; } Color32 color = base.ApplyOpacity((!base.IsEnabled) ? base.DisabledColor : base.Color); global::dfSprite.RenderOptions options = new global::dfSprite.RenderOptions { atlas = this.atlas, color = color, fillAmount = 1f, offset = this.pivot.TransformToUpperLeft(base.Size), pixelsToUnits = base.PixelsToUnits(), size = base.Size, spriteInfo = itemInfo }; if (itemInfo.border.horizontal == 0 && itemInfo.border.vertical == 0) { global::dfSprite.renderSprite(this.renderData, options); } else { global::dfSlicedSprite.renderSprite(this.renderData, options); } }
// Token: 0x06004682 RID: 18050 RVA: 0x00108E54 File Offset: 0x00107054 private void renderSprite(global::dfMarkupToken token, Color32 color, Vector3 position, global::dfRenderData destination) { try { string value = token.GetAttribute(0).Value.Value; global::dfAtlas.ItemInfo itemInfo = this.SpriteAtlas[value]; if (!(itemInfo == null)) { global::dfSprite.RenderOptions options = new global::dfSprite.RenderOptions { atlas = this.SpriteAtlas, color = color, fillAmount = 1f, offset = position, pixelsToUnits = base.PixelRatio, size = new Vector2((float)token.Width, (float)token.Height), spriteInfo = itemInfo }; global::dfSprite.renderSprite(this.SpriteBuffer, options); } } finally { } }
// Token: 0x06004437 RID: 17463 RVA: 0x000FDC10 File Offset: 0x000FBE10 protected override void OnRebuildRenderData() { if (base.Atlas == null) { return; } global::dfAtlas.ItemInfo spriteInfo = base.SpriteInfo; if (spriteInfo == null) { return; } this.renderData.Material = base.Atlas.Material; if (spriteInfo.border.horizontal == 0 && spriteInfo.border.vertical == 0) { base.OnRebuildRenderData(); return; } Color32 color = base.ApplyOpacity((!base.IsEnabled) ? this.disabledColor : this.color); global::dfSprite.RenderOptions options = new global::dfSprite.RenderOptions { atlas = this.atlas, color = color, fillAmount = this.fillAmount, fillDirection = this.fillDirection, flip = this.flip, invertFill = this.invertFill, offset = this.pivot.TransformToUpperLeft(base.Size), pixelsToUnits = base.PixelsToUnits(), size = base.Size, spriteInfo = base.SpriteInfo }; global::dfSlicedSprite.renderSprite(this.renderData, options); }
// Token: 0x06004588 RID: 17800 RVA: 0x00105514 File Offset: 0x00103714 private Vector2[] buildQuadUV() { global::dfAtlas.ItemInfo spriteInfo = base.SpriteInfo; Rect region = spriteInfo.region; global::dfTiledSprite.quadUV[0] = new Vector2(region.x, region.yMax); global::dfTiledSprite.quadUV[1] = new Vector2(region.xMax, region.yMax); global::dfTiledSprite.quadUV[2] = new Vector2(region.xMax, region.y); global::dfTiledSprite.quadUV[3] = new Vector2(region.x, region.y); Vector2 vector = Vector2.zero; if (this.flip.IsSet(global::dfSpriteFlip.FlipHorizontal)) { vector = global::dfTiledSprite.quadUV[1]; global::dfTiledSprite.quadUV[1] = global::dfTiledSprite.quadUV[0]; global::dfTiledSprite.quadUV[0] = vector; vector = global::dfTiledSprite.quadUV[3]; global::dfTiledSprite.quadUV[3] = global::dfTiledSprite.quadUV[2]; global::dfTiledSprite.quadUV[2] = vector; } if (this.flip.IsSet(global::dfSpriteFlip.FlipVertical)) { vector = global::dfTiledSprite.quadUV[0]; global::dfTiledSprite.quadUV[0] = global::dfTiledSprite.quadUV[3]; global::dfTiledSprite.quadUV[3] = vector; vector = global::dfTiledSprite.quadUV[1]; global::dfTiledSprite.quadUV[1] = global::dfTiledSprite.quadUV[2]; global::dfTiledSprite.quadUV[2] = vector; } return(global::dfTiledSprite.quadUV); }
// Token: 0x060044B9 RID: 17593 RVA: 0x00100D10 File Offset: 0x000FEF10 protected override void OnRebuildRenderData() { if (this.Atlas == null || string.IsNullOrEmpty(this.backgroundSprite)) { return; } global::dfAtlas.ItemInfo itemInfo = this.Atlas[this.backgroundSprite]; if (itemInfo == null) { return; } this.renderData.Material = this.Atlas.Material; Color32 color = base.ApplyOpacity((!base.IsEnabled) ? this.disabledColor : this.color); global::dfSprite.RenderOptions options = new global::dfSprite.RenderOptions { atlas = this.atlas, color = color, fillAmount = 1f, offset = this.pivot.TransformToUpperLeft(base.Size), pixelsToUnits = base.PixelsToUnits(), size = base.Size, spriteInfo = itemInfo }; if (itemInfo.border.horizontal == 0 && itemInfo.border.vertical == 0) { global::dfSprite.renderSprite(this.renderData, options); } else { global::dfSlicedSprite.renderSprite(this.renderData, options); } }
// Token: 0x06004211 RID: 16913 RVA: 0x000F3370 File Offset: 0x000F1570 protected internal virtual void renderBackground() { if (this.Atlas == null) { return; } global::dfAtlas.ItemInfo itemInfo = this.getBackgroundSprite(); if (itemInfo == null) { return; } Color32 color = base.ApplyOpacity(this.getActiveColor()); global::dfSprite.RenderOptions options = new global::dfSprite.RenderOptions { atlas = this.atlas, color = color, fillAmount = 1f, offset = this.pivot.TransformToUpperLeft(base.Size), pixelsToUnits = base.PixelsToUnits(), size = base.Size, spriteInfo = itemInfo }; if (itemInfo.border.horizontal == 0 && itemInfo.border.vertical == 0) { global::dfSprite.renderSprite(this.renderData, options); } else { global::dfSlicedSprite.renderSprite(this.renderData, options); } }
// Token: 0x06004380 RID: 17280 RVA: 0x000FA0DC File Offset: 0x000F82DC private List <Vector2> buildUV(List <Vector3> verts) { global::dfAtlas.ItemInfo spriteInfo = base.SpriteInfo; if (spriteInfo == null) { return(null); } Rect region = spriteInfo.region; if (this.flip.IsSet(global::dfSpriteFlip.FlipHorizontal)) { region..ctor(region.xMax, region.y, -region.width, region.height); } if (this.flip.IsSet(global::dfSpriteFlip.FlipVertical)) { region..ctor(region.x, region.yMax, region.width, -region.height); } Vector2 vector; vector..ctor(region.x, region.y); Vector2 vector2; vector2..ctor(0.5f, 0.5f); Vector2 vector3; vector3..ctor(region.width, region.height); List <Vector2> list = new List <Vector2>(verts.Count); for (int i = 0; i < verts.Count; i++) { Vector2 vector4 = verts[i] + vector2; list.Add(Vector2.Scale(vector4, vector3) + vector); } return(list); }
// Token: 0x06003EE2 RID: 16098 RVA: 0x000E5234 File Offset: 0x000E3434 protected internal override global::dfAtlas.ItemInfo getBackgroundSprite() { if (base.Atlas == null) { return(null); } global::dfAtlas.ItemInfo itemInfo = null; switch (this.state) { case global::dfButton.ButtonState.Default: itemInfo = this.atlas[this.backgroundSprite]; break; case global::dfButton.ButtonState.Focus: itemInfo = this.atlas[this.focusSprite]; break; case global::dfButton.ButtonState.Hover: itemInfo = this.atlas[this.hoverSprite]; break; case global::dfButton.ButtonState.Pressed: itemInfo = this.atlas[this.pressedSprite]; break; case global::dfButton.ButtonState.Disabled: itemInfo = this.atlas[this.disabledSprite]; break; } if (itemInfo == null) { itemInfo = this.atlas[this.backgroundSprite]; } return(itemInfo); }
// Token: 0x060040E0 RID: 16608 RVA: 0x000EE198 File Offset: 0x000EC398 private void calculateTokenRenderSize(global::dfMarkupToken token) { try { global::dfFont dfFont = (global::dfFont)base.Font; int num = 0; char previousChar = '\0'; bool flag = token.TokenType == global::dfMarkupTokenType.Whitespace || token.TokenType == global::dfMarkupTokenType.Text; if (flag) { int i = 0; while (i < token.Length) { char c = token[i]; if (c == '\t') { num += base.TabSize; } else { global::dfFont.GlyphDefinition glyph = dfFont.GetGlyph(c); if (glyph != null) { if (i > 0) { num += dfFont.GetKerning(previousChar, c); num += base.CharacterSpacing; } num += glyph.xadvance; } } i++; previousChar = c; } } else if (token.TokenType == global::dfMarkupTokenType.StartTag && token.Matches("sprite")) { if (token.AttributeCount < 1) { throw new Exception("Missing sprite name in markup"); } Texture texture = dfFont.Texture; int lineHeight = dfFont.LineHeight; string value = token.GetAttribute(0).Value.Value; global::dfAtlas.ItemInfo itemInfo = dfFont.atlas[value]; if (itemInfo != null) { float num2 = itemInfo.region.width * (float)texture.width / (itemInfo.region.height * (float)texture.height); num = Mathf.CeilToInt((float)lineHeight * num2); } } token.Height = base.Font.LineHeight; token.Width = num; } finally { } }
// Token: 0x06004372 RID: 17266 RVA: 0x000F9674 File Offset: 0x000F7874 private void renderProgressFill() { if (this.Atlas == null) { return; } global::dfAtlas.ItemInfo itemInfo = this.Atlas[this.progressSprite]; if (itemInfo == null) { return; } Vector3 vector; vector..ctor((float)this.padding.left, (float)(-(float)this.padding.top)); Vector2 size; size..ctor(this.size.x - (float)this.padding.horizontal, this.size.y - (float)this.padding.vertical); float fillAmount = 1f; float num = this.maxValue - this.minValue; float num2 = (this.rawValue - this.minValue) / num; global::dfProgressFillMode dfProgressFillMode = this.fillMode; if (dfProgressFillMode != global::dfProgressFillMode.Stretch || size.x * num2 < (float)itemInfo.border.horizontal) { } if (dfProgressFillMode == global::dfProgressFillMode.Fill) { fillAmount = num2; } else { size.x = Mathf.Max((float)itemInfo.border.horizontal, size.x * num2); } Color32 color = base.ApplyOpacity((!base.IsEnabled) ? base.DisabledColor : this.ProgressColor); global::dfSprite.RenderOptions options = new global::dfSprite.RenderOptions { atlas = this.atlas, color = color, fillAmount = fillAmount, offset = this.pivot.TransformToUpperLeft(base.Size) + vector, pixelsToUnits = base.PixelsToUnits(), size = size, spriteInfo = itemInfo }; if (itemInfo.border.horizontal == 0 && itemInfo.border.vertical == 0) { global::dfSprite.renderSprite(this.renderData, options); } else { global::dfSlicedSprite.renderSprite(this.renderData, options); } }
// Token: 0x06004214 RID: 16916 RVA: 0x000F3598 File Offset: 0x000F1798 private void setDefaultSize(string spriteName) { if (this.Atlas == null) { return; } global::dfAtlas.ItemInfo itemInfo = this.Atlas[spriteName]; if (this.size == Vector2.zero && itemInfo != null) { base.Size = itemInfo.sizeInPixels; } }
// Token: 0x060046BA RID: 18106 RVA: 0x0010ADE4 File Offset: 0x00108FE4 internal void LoadImage(global::dfAtlas atlas, string source) { global::dfAtlas.ItemInfo itemInfo = atlas[source]; if (itemInfo == null) { throw new InvalidOperationException("Sprite does not exist in atlas: " + source); } this.Atlas = atlas; this.Source = source; this.Size = itemInfo.sizeInPixels; this.Baseline = (int)this.Size.y; }
// Token: 0x06004689 RID: 18057 RVA: 0x001093D8 File Offset: 0x001075D8 private void calculateTokenRenderSize(global::dfMarkupToken token) { try { int num = 0; bool flag = token.TokenType == global::dfMarkupTokenType.Whitespace || token.TokenType == global::dfMarkupTokenType.Text; global::dfDynamicFont dfDynamicFont = (global::dfDynamicFont)base.Font; if (flag) { int size = Mathf.CeilToInt((float)dfDynamicFont.FontSize * base.TextScale); CharacterInfo[] array = dfDynamicFont.RequestCharacters(token.Value, size, 0); for (int i = 0; i < token.Length; i++) { char c = token[i]; if (c == '\t') { num += base.TabSize; } else { CharacterInfo characterInfo = array[i]; num += ((c == ' ') ? Mathf.CeilToInt(characterInfo.width) : Mathf.CeilToInt(characterInfo.vert.x + characterInfo.vert.width)); if (i > 0) { num += Mathf.CeilToInt((float)base.CharacterSpacing * base.TextScale); } } } token.Height = base.Font.LineHeight; token.Width = num; } else if (token.TokenType == global::dfMarkupTokenType.StartTag && token.Matches("sprite") && this.SpriteAtlas != null && token.AttributeCount == 1) { Texture2D texture = this.SpriteAtlas.Texture; float num2 = (float)dfDynamicFont.Baseline * base.TextScale; string value = token.GetAttribute(0).Value.Value; global::dfAtlas.ItemInfo itemInfo = this.SpriteAtlas[value]; if (itemInfo != null) { float num3 = itemInfo.region.width * (float)texture.width / (itemInfo.region.height * (float)texture.height); num = Mathf.CeilToInt(num2 * num3); } token.Height = Mathf.CeilToInt(num2); token.Width = num; } } finally { } }
// Token: 0x06004210 RID: 16912 RVA: 0x000F3304 File Offset: 0x000F1504 public override Vector2 CalculateMinimumSize() { global::dfAtlas.ItemInfo itemInfo = this.getBackgroundSprite(); if (itemInfo == null) { return(base.CalculateMinimumSize()); } RectOffset border = itemInfo.border; if (border.horizontal > 0 || border.vertical > 0) { return(Vector2.Max(base.CalculateMinimumSize(), new Vector2((float)border.horizontal, (float)border.vertical))); } return(base.CalculateMinimumSize()); }
// Token: 0x06004480 RID: 17536 RVA: 0x000FFB1C File Offset: 0x000FDD1C public override Vector2 CalculateMinimumSize() { global::dfAtlas.ItemInfo spriteInfo = this.SpriteInfo; if (spriteInfo == null) { return(Vector2.zero); } RectOffset border = spriteInfo.border; if (border != null && border.horizontal > 0 && border.vertical > 0) { return(Vector2.Max(base.CalculateMinimumSize(), new Vector2((float)border.horizontal, (float)border.vertical))); } return(base.CalculateMinimumSize()); }
// Token: 0x06003E93 RID: 16019 RVA: 0x000E4350 File Offset: 0x000E2550 public void RebuildIndexes() { if (this.map == null) { this.map = new Dictionary <string, global::dfAtlas.ItemInfo>(); } else { this.map.Clear(); } for (int i = 0; i < this.items.Count; i++) { global::dfAtlas.ItemInfo itemInfo = this.items[i]; this.map[itemInfo.name] = itemInfo; } }
// Token: 0x0600443C RID: 17468 RVA: 0x000FE17C File Offset: 0x000FC37C private static void rebuildVertices(global::dfRenderData renderData, global::dfSprite.RenderOptions options) { float num = 0f; float num2 = 0f; float num3 = Mathf.Ceil(options.size.x); float num4 = Mathf.Ceil(-options.size.y); global::dfAtlas.ItemInfo spriteInfo = options.spriteInfo; float num5 = (float)spriteInfo.border.left; float num6 = (float)spriteInfo.border.top; float num7 = (float)spriteInfo.border.right; float num8 = (float)spriteInfo.border.bottom; if (options.flip.IsSet(global::dfSpriteFlip.FlipHorizontal)) { float num9 = num7; num7 = num5; num5 = num9; } if (options.flip.IsSet(global::dfSpriteFlip.FlipVertical)) { float num10 = num8; num8 = num6; num6 = num10; } global::dfSlicedSprite.verts[0] = new Vector3(num, num2, 0f) + options.offset; global::dfSlicedSprite.verts[1] = global::dfSlicedSprite.verts[0] + new Vector3(num5, 0f, 0f); global::dfSlicedSprite.verts[2] = global::dfSlicedSprite.verts[0] + new Vector3(num5, -num6, 0f); global::dfSlicedSprite.verts[3] = global::dfSlicedSprite.verts[0] + new Vector3(0f, -num6, 0f); global::dfSlicedSprite.verts[4] = new Vector3(num3 - num7, num2, 0f) + options.offset; global::dfSlicedSprite.verts[5] = global::dfSlicedSprite.verts[4] + new Vector3(num7, 0f, 0f); global::dfSlicedSprite.verts[6] = global::dfSlicedSprite.verts[4] + new Vector3(num7, -num6, 0f); global::dfSlicedSprite.verts[7] = global::dfSlicedSprite.verts[4] + new Vector3(0f, -num6, 0f); global::dfSlicedSprite.verts[8] = new Vector3(num, num4 + num8, 0f) + options.offset; global::dfSlicedSprite.verts[9] = global::dfSlicedSprite.verts[8] + new Vector3(num5, 0f, 0f); global::dfSlicedSprite.verts[10] = global::dfSlicedSprite.verts[8] + new Vector3(num5, -num8, 0f); global::dfSlicedSprite.verts[11] = global::dfSlicedSprite.verts[8] + new Vector3(0f, -num8, 0f); global::dfSlicedSprite.verts[12] = new Vector3(num3 - num7, num4 + num8, 0f) + options.offset; global::dfSlicedSprite.verts[13] = global::dfSlicedSprite.verts[12] + new Vector3(num7, 0f, 0f); global::dfSlicedSprite.verts[14] = global::dfSlicedSprite.verts[12] + new Vector3(num7, -num8, 0f); global::dfSlicedSprite.verts[15] = global::dfSlicedSprite.verts[12] + new Vector3(0f, -num8, 0f); for (int i = 0; i < global::dfSlicedSprite.verts.Length; i++) { renderData.Vertices.Add((global::dfSlicedSprite.verts[i] * options.pixelsToUnits).Quantize(options.pixelsToUnits)); } }
// Token: 0x06004583 RID: 17795 RVA: 0x00104BC8 File Offset: 0x00102DC8 protected override void OnRebuildRenderData() { if (base.Atlas == null) { return; } global::dfAtlas.ItemInfo spriteInfo = base.SpriteInfo; if (spriteInfo == null) { return; } this.renderData.Material = base.Atlas.Material; global::dfList <Vector3> vertices = this.renderData.Vertices; global::dfList <Vector2> uv = this.renderData.UV; global::dfList <Color32> colors = this.renderData.Colors; global::dfList <int> triangles = this.renderData.Triangles; Vector2[] spriteUV = this.buildQuadUV(); Vector2 vector = Vector2.Scale(spriteInfo.sizeInPixels, this.tileScale); Vector2 vector2; vector2..ctor(this.tileScroll.x % 1f, this.tileScroll.y % 1f); for (float num = -Mathf.Abs(vector2.y * vector.y); num < this.size.y; num += vector.y) { for (float num2 = -Mathf.Abs(vector2.x * vector.x); num2 < this.size.x; num2 += vector.x) { int count = vertices.Count; vertices.Add(new Vector3(num2, -num)); vertices.Add(new Vector3(num2 + vector.x, -num)); vertices.Add(new Vector3(num2 + vector.x, -num + -vector.y)); vertices.Add(new Vector3(num2, -num + -vector.y)); this.addQuadTriangles(triangles, count); this.addQuadUV(uv, spriteUV); this.addQuadColors(colors); } } this.clipQuads(vertices, uv); float num3 = base.PixelsToUnits(); Vector3 vector3 = this.pivot.TransformToUpperLeft(this.size); for (int i = 0; i < vertices.Count; i++) { vertices[i] = (vertices[i] + vector3) * num3; } }
// Token: 0x060040D9 RID: 16601 RVA: 0x000EDAE0 File Offset: 0x000EBCE0 private void renderSprite(global::dfMarkupToken token, Color32 color, Vector3 position, global::dfRenderData destination) { try { global::dfList <Vector3> vertices = destination.Vertices; global::dfList <int> triangles = destination.Triangles; global::dfList <Color32> colors = destination.Colors; global::dfList <Vector2> uv = destination.UV; global::dfFont dfFont = (global::dfFont)base.Font; string value = token.GetAttribute(0).Value.Value; global::dfAtlas.ItemInfo itemInfo = dfFont.Atlas[value]; if (!(itemInfo == null)) { float num = (float)token.Height * base.TextScale * base.PixelRatio; float num2 = (float)token.Width * base.TextScale * base.PixelRatio; float x = position.x; float y = position.y; int count = vertices.Count; vertices.Add(new Vector3(x, y)); vertices.Add(new Vector3(x + num2, y)); vertices.Add(new Vector3(x + num2, y - num)); vertices.Add(new Vector3(x, y - num)); triangles.Add(count); triangles.Add(count + 1); triangles.Add(count + 3); triangles.Add(count + 3); triangles.Add(count + 1); triangles.Add(count + 2); Color32 item = (!base.ColorizeSymbols) ? this.applyOpacity(base.DefaultColor) : this.applyOpacity(color); colors.Add(item); colors.Add(item); colors.Add(item); colors.Add(item); Rect region = itemInfo.region; uv.Add(new Vector2(region.x, region.yMax)); uv.Add(new Vector2(region.xMax, region.yMax)); uv.Add(new Vector2(region.xMax, region.y)); uv.Add(new Vector2(region.x, region.y)); } } finally { } }
// Token: 0x060042EB RID: 17131 RVA: 0x000F67F0 File Offset: 0x000F49F0 private void renderSelection() { if (base.Atlas == null || this.selectedIndex < 0) { return; } global::dfAtlas.ItemInfo itemInfo = base.Atlas[this.ItemHighlight]; if (itemInfo == null) { return; } float pixelsToUnits = base.PixelsToUnits(); Vector3 vector = this.pivot.TransformToUpperLeft(base.Size); Vector3 offset; offset..ctor(vector.x + (float)this.listPadding.left, vector.y - (float)this.listPadding.top + this.scrollPosition, 0f); offset.y -= (float)(this.selectedIndex * this.itemHeight); Color32 color = base.ApplyOpacity(this.color); global::dfSprite.RenderOptions options = new global::dfSprite.RenderOptions { atlas = this.atlas, color = color, fillAmount = 1f, pixelsToUnits = pixelsToUnits, size = new Vector3(this.size.x - (float)this.listPadding.horizontal, (float)this.itemHeight), spriteInfo = itemInfo, offset = offset }; if (itemInfo.border.horizontal > 0 || itemInfo.border.vertical > 0) { global::dfSlicedSprite.renderSprite(this.renderData, options); } else { global::dfSprite.renderSprite(this.renderData, options); } }
// Token: 0x0600437C RID: 17276 RVA: 0x000F9D1C File Offset: 0x000F7F1C protected override void OnRebuildRenderData() { if (base.Atlas == null) { return; } global::dfAtlas.ItemInfo spriteInfo = base.SpriteInfo; if (spriteInfo == null) { return; } this.renderData.Material = base.Atlas.Material; List <Vector3> list = null; List <int> list2 = null; List <Vector2> list3 = null; this.buildMeshData(ref list, ref list2, ref list3); Color32[] list4 = this.buildColors(list.Count); this.renderData.Vertices.AddRange(list); this.renderData.Triangles.AddRange(list2); this.renderData.UV.AddRange(list3); this.renderData.Colors.AddRange(list4); }
// Token: 0x06004213 RID: 16915 RVA: 0x000F34C0 File Offset: 0x000F16C0 protected internal virtual global::dfAtlas.ItemInfo getBackgroundSprite() { if (this.Atlas == null) { return(null); } if (!base.IsEnabled) { global::dfAtlas.ItemInfo itemInfo = this.atlas[this.DisabledSprite]; if (itemInfo != null) { return(itemInfo); } return(this.atlas[this.BackgroundSprite]); } else { if (!this.HasFocus) { if (this.isMouseHovering) { global::dfAtlas.ItemInfo itemInfo2 = this.atlas[this.HoverSprite]; if (itemInfo2 != null) { return(itemInfo2); } } return(this.Atlas[this.BackgroundSprite]); } global::dfAtlas.ItemInfo itemInfo3 = this.atlas[this.FocusSprite]; if (itemInfo3 != null) { return(itemInfo3); } return(this.atlas[this.BackgroundSprite]); } }
// Token: 0x17000BD8 RID: 3032 public global::dfAtlas.ItemInfo this[string key] { get { if (this.replacementAtlas != null) { return(this.replacementAtlas[key]); } if (string.IsNullOrEmpty(key)) { return(null); } if (this.map.Count == 0) { this.RebuildIndexes(); } global::dfAtlas.ItemInfo result = null; if (this.map.TryGetValue(key, out result)) { return(result); } return(null); } }
// Token: 0x060040D8 RID: 16600 RVA: 0x000ED608 File Offset: 0x000EB808 private void renderText(global::dfMarkupToken token, Color32 color, Vector3 position, global::dfRenderData destination) { try { global::dfList <Vector3> vertices = destination.Vertices; global::dfList <int> triangles = destination.Triangles; global::dfList <Color32> colors = destination.Colors; global::dfList <Vector2> uv = destination.UV; global::dfFont dfFont = (global::dfFont)base.Font; global::dfAtlas.ItemInfo itemInfo = dfFont.Atlas[dfFont.sprite]; Texture texture = dfFont.Texture; float num = 1f / (float)texture.width; float num2 = 1f / (float)texture.height; float num3 = num * 0.125f; float num4 = num2 * 0.125f; float num5 = base.TextScale * base.PixelRatio; char previousChar = '\0'; Color32 color2 = this.applyOpacity(this.multiplyColors(color, base.DefaultColor)); Color32 item = color2; if (base.BottomColor != null) { item = this.applyOpacity(this.multiplyColors(color, base.BottomColor.Value)); } int i = 0; while (i < token.Length) { char c = token[i]; if (c != '\0') { global::dfFont.GlyphDefinition glyph = dfFont.GetGlyph(c); if (glyph != null) { int kerning = dfFont.GetKerning(previousChar, c); float num6 = position.x + (float)(glyph.xoffset + kerning) * num5; float num7 = position.y - (float)glyph.yoffset * num5; float num8 = (float)glyph.width * num5; float num9 = (float)glyph.height * num5; float num10 = num6 + num8; float num11 = num7 - num9; Vector3 vector; vector..ctor(num6, num7); Vector3 vector2; vector2..ctor(num10, num7); Vector3 vector3; vector3..ctor(num10, num11); Vector3 vector4; vector4..ctor(num6, num11); float num12 = itemInfo.region.x + (float)glyph.x * num - num3; float num13 = itemInfo.region.yMax - (float)glyph.y * num2 - num4; float num14 = num12 + (float)glyph.width * num - num3; float num15 = num13 - (float)glyph.height * num2 + num4; if (base.Shadow) { global::dfFont.BitmappedFontRenderer.addTriangleIndices(vertices, triangles); Vector3 vector5 = base.ShadowOffset * num5; vertices.Add(vector + vector5); vertices.Add(vector2 + vector5); vertices.Add(vector3 + vector5); vertices.Add(vector4 + vector5); Color32 item2 = this.applyOpacity(base.ShadowColor); colors.Add(item2); colors.Add(item2); colors.Add(item2); colors.Add(item2); uv.Add(new Vector2(num12, num13)); uv.Add(new Vector2(num14, num13)); uv.Add(new Vector2(num14, num15)); uv.Add(new Vector2(num12, num15)); } if (base.Outline) { for (int j = 0; j < global::dfFont.BitmappedFontRenderer.OUTLINE_OFFSETS.Length; j++) { global::dfFont.BitmappedFontRenderer.addTriangleIndices(vertices, triangles); Vector3 vector6 = global::dfFont.BitmappedFontRenderer.OUTLINE_OFFSETS[j] * (float)base.OutlineSize * num5; vertices.Add(vector + vector6); vertices.Add(vector2 + vector6); vertices.Add(vector3 + vector6); vertices.Add(vector4 + vector6); Color32 item3 = this.applyOpacity(base.OutlineColor); colors.Add(item3); colors.Add(item3); colors.Add(item3); colors.Add(item3); uv.Add(new Vector2(num12, num13)); uv.Add(new Vector2(num14, num13)); uv.Add(new Vector2(num14, num15)); uv.Add(new Vector2(num12, num15)); } } global::dfFont.BitmappedFontRenderer.addTriangleIndices(vertices, triangles); vertices.Add(vector); vertices.Add(vector2); vertices.Add(vector3); vertices.Add(vector4); colors.Add(color2); colors.Add(color2); colors.Add(item); colors.Add(item); uv.Add(new Vector2(num12, num13)); uv.Add(new Vector2(num14, num13)); uv.Add(new Vector2(num14, num15)); uv.Add(new Vector2(num12, num15)); position.x += (float)(glyph.xadvance + kerning + base.CharacterSpacing) * num5; } } i++; previousChar = c; } } finally { } }
// Token: 0x06003E90 RID: 16016 RVA: 0x000E42CC File Offset: 0x000E24CC public void AddItem(global::dfAtlas.ItemInfo item) { this.items.Add(item); this.RebuildIndexes(); }
// Token: 0x0600443D RID: 17469 RVA: 0x000FE5C8 File Offset: 0x000FC7C8 private static void rebuildUV(global::dfRenderData renderData, global::dfSprite.RenderOptions options) { global::dfAtlas atlas = options.atlas; Vector2 vector; vector..ctor((float)atlas.Texture.width, (float)atlas.Texture.height); global::dfAtlas.ItemInfo spriteInfo = options.spriteInfo; float num = (float)spriteInfo.border.top / vector.y; float num2 = (float)spriteInfo.border.bottom / vector.y; float num3 = (float)spriteInfo.border.left / vector.x; float num4 = (float)spriteInfo.border.right / vector.x; Rect region = spriteInfo.region; global::dfSlicedSprite.uv[0] = new Vector2(region.x, region.yMax); global::dfSlicedSprite.uv[1] = new Vector2(region.x + num3, region.yMax); global::dfSlicedSprite.uv[2] = new Vector2(region.x + num3, region.yMax - num); global::dfSlicedSprite.uv[3] = new Vector2(region.x, region.yMax - num); global::dfSlicedSprite.uv[4] = new Vector2(region.xMax - num4, region.yMax); global::dfSlicedSprite.uv[5] = new Vector2(region.xMax, region.yMax); global::dfSlicedSprite.uv[6] = new Vector2(region.xMax, region.yMax - num); global::dfSlicedSprite.uv[7] = new Vector2(region.xMax - num4, region.yMax - num); global::dfSlicedSprite.uv[8] = new Vector2(region.x, region.y + num2); global::dfSlicedSprite.uv[9] = new Vector2(region.x + num3, region.y + num2); global::dfSlicedSprite.uv[10] = new Vector2(region.x + num3, region.y); global::dfSlicedSprite.uv[11] = new Vector2(region.x, region.y); global::dfSlicedSprite.uv[12] = new Vector2(region.xMax - num4, region.y + num2); global::dfSlicedSprite.uv[13] = new Vector2(region.xMax, region.y + num2); global::dfSlicedSprite.uv[14] = new Vector2(region.xMax, region.y); global::dfSlicedSprite.uv[15] = new Vector2(region.xMax - num4, region.y); if (options.flip != global::dfSpriteFlip.None) { for (int i = 0; i < global::dfSlicedSprite.uv.Length; i += 4) { Vector2 vector2 = Vector2.zero; if (options.flip.IsSet(global::dfSpriteFlip.FlipHorizontal)) { vector2 = global::dfSlicedSprite.uv[i]; global::dfSlicedSprite.uv[i] = global::dfSlicedSprite.uv[i + 1]; global::dfSlicedSprite.uv[i + 1] = vector2; vector2 = global::dfSlicedSprite.uv[i + 2]; global::dfSlicedSprite.uv[i + 2] = global::dfSlicedSprite.uv[i + 3]; global::dfSlicedSprite.uv[i + 3] = vector2; } if (options.flip.IsSet(global::dfSpriteFlip.FlipVertical)) { vector2 = global::dfSlicedSprite.uv[i]; global::dfSlicedSprite.uv[i] = global::dfSlicedSprite.uv[i + 3]; global::dfSlicedSprite.uv[i + 3] = vector2; vector2 = global::dfSlicedSprite.uv[i + 1]; global::dfSlicedSprite.uv[i + 1] = global::dfSlicedSprite.uv[i + 2]; global::dfSlicedSprite.uv[i + 2] = vector2; } } if (options.flip.IsSet(global::dfSpriteFlip.FlipHorizontal)) { Vector2[] array = new Vector2[global::dfSlicedSprite.uv.Length]; Array.Copy(global::dfSlicedSprite.uv, array, global::dfSlicedSprite.uv.Length); Array.Copy(global::dfSlicedSprite.uv, 0, global::dfSlicedSprite.uv, 4, 4); Array.Copy(array, 4, global::dfSlicedSprite.uv, 0, 4); Array.Copy(global::dfSlicedSprite.uv, 8, global::dfSlicedSprite.uv, 12, 4); Array.Copy(array, 12, global::dfSlicedSprite.uv, 8, 4); } if (options.flip.IsSet(global::dfSpriteFlip.FlipVertical)) { Vector2[] array2 = new Vector2[global::dfSlicedSprite.uv.Length]; Array.Copy(global::dfSlicedSprite.uv, array2, global::dfSlicedSprite.uv.Length); Array.Copy(global::dfSlicedSprite.uv, 0, global::dfSlicedSprite.uv, 8, 4); Array.Copy(array2, 8, global::dfSlicedSprite.uv, 0, 4); Array.Copy(global::dfSlicedSprite.uv, 4, global::dfSlicedSprite.uv, 12, 4); Array.Copy(array2, 12, global::dfSlicedSprite.uv, 4, 4); } } for (int j = 0; j < global::dfSlicedSprite.uv.Length; j++) { renderData.UV.Add(global::dfSlicedSprite.uv[j]); } }
// Token: 0x060042EA RID: 17130 RVA: 0x000F656C File Offset: 0x000F476C private void renderHover() { if (!Application.isPlaying) { return; } bool flag = base.Atlas == null || !base.IsEnabled || this.hoverIndex <0 || this.hoverIndex> this.items.Length - 1 || string.IsNullOrEmpty(this.ItemHover); if (flag) { return; } global::dfAtlas.ItemInfo itemInfo = base.Atlas[this.ItemHover]; if (itemInfo == null) { return; } Vector3 vector = this.pivot.TransformToUpperLeft(base.Size); Vector3 offset; offset..ctor(vector.x + (float)this.listPadding.left, vector.y - (float)this.listPadding.top + this.scrollPosition, 0f); float num = base.PixelsToUnits(); int num2 = this.hoverIndex * this.itemHeight; if (this.animateHover) { float num3 = Mathf.Abs(this.hoverTweenLocation - (float)num2); float num4 = (this.size.y - (float)this.listPadding.vertical) * 0.5f; if (num3 > num4) { this.hoverTweenLocation = (float)num2 + Mathf.Sign(this.hoverTweenLocation - (float)num2) * num4; } float num5 = Time.deltaTime / num * 2f; this.hoverTweenLocation = Mathf.MoveTowards(this.hoverTweenLocation, (float)num2, num5); } else { this.hoverTweenLocation = (float)num2; } offset.y -= this.hoverTweenLocation.Quantize(num); Color32 color = base.ApplyOpacity(this.color); global::dfSprite.RenderOptions options = new global::dfSprite.RenderOptions { atlas = this.atlas, color = color, fillAmount = 1f, pixelsToUnits = base.PixelsToUnits(), size = new Vector3(this.size.x - (float)this.listPadding.horizontal, (float)this.itemHeight), spriteInfo = itemInfo, offset = offset }; if (itemInfo.border.horizontal > 0 || itemInfo.border.vertical > 0) { global::dfSlicedSprite.renderSprite(this.renderData, options); } else { global::dfSprite.renderSprite(this.renderData, options); } if ((float)num2 != this.hoverTweenLocation) { this.Invalidate(); } }