// Token: 0x06004579 RID: 17785 RVA: 0x001047A0 File Offset: 0x001029A0 private void rebuildUV(global::dfRenderData renderData) { global::dfList <Vector2> uv = renderData.UV; uv.Add(new Vector2(0f, 1f)); uv.Add(new Vector2(1f, 1f)); uv.Add(new Vector2(1f, 0f)); uv.Add(new Vector2(0f, 0f)); Vector2 value = Vector2.zero; if (this.flip.IsSet(global::dfSpriteFlip.FlipHorizontal)) { value = uv[1]; uv[1] = uv[0]; uv[0] = value; value = uv[3]; uv[3] = uv[2]; uv[2] = value; } if (this.flip.IsSet(global::dfSpriteFlip.FlipVertical)) { value = uv[0]; uv[0] = uv[3]; uv[3] = value; value = uv[1]; uv[1] = uv[2]; uv[2] = value; } }
// Token: 0x06004486 RID: 17542 RVA: 0x000FFEE4 File Offset: 0x000FE0E4 private static void rebuildUV(global::dfRenderData renderData, global::dfSprite.RenderOptions options) { Rect region = options.spriteInfo.region; global::dfList <Vector2> uv = renderData.UV; 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)); Vector2 value = Vector2.zero; if (options.flip.IsSet(global::dfSpriteFlip.FlipHorizontal)) { value = uv[1]; uv[1] = uv[0]; uv[0] = value; value = uv[3]; uv[3] = uv[2]; uv[2] = value; } if (options.flip.IsSet(global::dfSpriteFlip.FlipVertical)) { value = uv[0]; uv[0] = uv[3]; uv[3] = value; value = uv[1]; uv[1] = uv[2]; uv[2] = value; } }
// Token: 0x06004485 RID: 17541 RVA: 0x000FFE9C File Offset: 0x000FE09C private static void rebuildColors(global::dfRenderData renderData, global::dfSprite.RenderOptions options) { global::dfList <Color32> colors = renderData.Colors; colors.Add(options.color); colors.Add(options.color); colors.Add(options.color); colors.Add(options.color); }
// Token: 0x06004585 RID: 17797 RVA: 0x0010547C File Offset: 0x0010367C private void addQuadTriangles(global::dfList <int> triangles, int baseIndex) { for (int i = 0; i < global::dfTiledSprite.quadTriangles.Length; i++) { triangles.Add(global::dfTiledSprite.quadTriangles[i] + baseIndex); } }
// 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: 0x060046C4 RID: 18116 RVA: 0x0010B268 File Offset: 0x00109468 private static void addTriangleIndices(global::dfList <Vector3> verts, global::dfList <int> triangles) { int count = verts.Count; int[] triangle_INDICES = global::dfMarkupBoxTexture.TRIANGLE_INDICES; for (int i = 0; i < triangle_INDICES.Length; i++) { triangles.Add(count + triangle_INDICES[i]); } }
// Token: 0x06004439 RID: 17465 RVA: 0x000FDD98 File Offset: 0x000FBF98 private static void rebuildTriangles(global::dfRenderData renderData, global::dfSprite.RenderOptions options) { int baseIndex = options.baseIndex; global::dfList <int> triangles = renderData.Triangles; for (int i = 0; i < global::dfSlicedSprite.triangleIndices.Length; i++) { triangles.Add(baseIndex + global::dfSlicedSprite.triangleIndices[i]); } }
// Token: 0x06004298 RID: 17048 RVA: 0x000F576C File Offset: 0x000F396C public global::dfList <TResult> Convert <TResult>() { global::dfList <TResult> dfList = global::dfList <TResult> .Obtain(this.count); for (int i = 0; i < this.count; i++) { dfList.Add((TResult)((object)System.Convert.ChangeType(this.items[i], typeof(TResult)))); } return(dfList); }
// Token: 0x06004296 RID: 17046 RVA: 0x000F56F0 File Offset: 0x000F38F0 public global::dfList <TResult> Select <TResult>(System.Func <T, TResult> selector) { global::dfList <TResult> dfList = global::dfList <TResult> .Obtain(this.count); for (int i = 0; i < this.count; i++) { dfList.Add(selector(this.items[i])); } return(dfList); }
// Token: 0x0600468E RID: 18062 RVA: 0x00109AB4 File Offset: 0x00107CB4 private static void addTriangleIndices(global::dfList <Vector3> verts, global::dfList <int> triangles) { int count = verts.Count; int[] triangle_INDICES = global::dfDynamicFont.DynamicFontRenderer.TRIANGLE_INDICES; for (int i = 0; i < triangle_INDICES.Length; i++) { triangles.Add(count + triangle_INDICES[i]); } }
// Token: 0x06004586 RID: 17798 RVA: 0x001054B0 File Offset: 0x001036B0 private void addQuadColors(global::dfList <Color32> colors) { colors.EnsureCapacity(colors.Count + 4); Color32 item = base.ApplyOpacity((!base.IsEnabled) ? this.disabledColor : this.color); for (int i = 0; i < 4; i++) { colors.Add(item); } }
// Token: 0x06004484 RID: 17540 RVA: 0x000FFD78 File Offset: 0x000FDF78 private static void rebuildVertices(global::dfRenderData renderData, global::dfSprite.RenderOptions options) { global::dfList <Vector3> vertices = renderData.Vertices; int baseIndex = options.baseIndex; float num = 0f; float num2 = 0f; float num3 = Mathf.Ceil(options.size.x); float num4 = Mathf.Ceil(-options.size.y); vertices.Add(new Vector3(num, num2, 0f) * options.pixelsToUnits); vertices.Add(new Vector3(num3, num2, 0f) * options.pixelsToUnits); vertices.Add(new Vector3(num3, num4, 0f) * options.pixelsToUnits); vertices.Add(new Vector3(num, num4, 0f) * options.pixelsToUnits); Vector3 vector = options.offset.RoundToInt() * options.pixelsToUnits; for (int i = 0; i < 4; i++) { vertices[baseIndex + i] = (vertices[baseIndex + i] + vector).Quantize(options.pixelsToUnits); } }
// Token: 0x06004483 RID: 17539 RVA: 0x000FFD20 File Offset: 0x000FDF20 private static void rebuildTriangles(global::dfRenderData renderData, global::dfSprite.RenderOptions options) { int baseIndex = options.baseIndex; global::dfList <int> triangles = renderData.Triangles; triangles.EnsureCapacity(triangles.Count + global::dfSprite.TRIANGLE_INDICES.Length); for (int i = 0; i < global::dfSprite.TRIANGLE_INDICES.Length; i++) { triangles.Add(baseIndex + global::dfSprite.TRIANGLE_INDICES[i]); } }
// Token: 0x06004294 RID: 17044 RVA: 0x000F5650 File Offset: 0x000F3850 public global::dfList <T> Where(System.Func <T, bool> predicate) { global::dfList <T> dfList = global::dfList <T> .Obtain(this.count); for (int i = 0; i < this.count; i++) { if (predicate(this.items[i])) { dfList.Add(this.items[i]); } } return(dfList); }
// Token: 0x060046FB RID: 18171 RVA: 0x0010BFE0 File Offset: 0x0010A1E0 private global::dfList <global::dfMarkupElement> processTokens(Queue <global::dfMarkupElement> tokens) { global::dfList <global::dfMarkupElement> dfList = global::dfList <global::dfMarkupElement> .Obtain(); while (tokens.Count > 0) { dfList.Add(this.parseElement(tokens)); } for (int i = 0; i < dfList.Count; i++) { if (dfList[i] is global::dfMarkupTag) { ((global::dfMarkupTag)dfList[i]).Owner = this.owner; } } return(dfList); }
// Token: 0x06004681 RID: 18049 RVA: 0x00108D94 File Offset: 0x00106F94 private static void addUVCoords(global::dfList <Vector2> uvs, CharacterInfo glyph) { Rect uv = glyph.uv; float x = uv.x; float num = uv.y + uv.height; float num2 = x + uv.width; float y = uv.y; if (glyph.flipped) { uvs.Add(new Vector2(num2, y)); uvs.Add(new Vector2(num2, num)); uvs.Add(new Vector2(x, num)); uvs.Add(new Vector2(x, y)); } else { uvs.Add(new Vector2(x, num)); uvs.Add(new Vector2(num2, num)); uvs.Add(new Vector2(num2, y)); uvs.Add(new Vector2(x, y)); } }
// Token: 0x06004794 RID: 18324 RVA: 0x0010EEE0 File Offset: 0x0010D0E0 private void gatherRenderBuffers(global::dfMarkupBox box, global::dfList <global::dfRenderData> buffers) { global::dfIntersectionType viewportIntersection = this.getViewportIntersection(box); if (viewportIntersection == global::dfIntersectionType.None) { return; } global::dfRenderData dfRenderData = box.Render(); if (dfRenderData != null) { if (dfRenderData.Material == null && this.atlas != null) { dfRenderData.Material = this.atlas.Material; } float num = base.PixelsToUnits(); Vector2 vector = -this.scrollPosition.Scale(1f, -1f).RoundToInt(); Vector3 vector2 = vector + box.GetOffset().Scale(1f, -1f) + this.pivot.TransformToUpperLeft(base.Size); global::dfList <Vector3> vertices = dfRenderData.Vertices; Matrix4x4 localToWorldMatrix = base.transform.localToWorldMatrix; for (int i = 0; i < dfRenderData.Vertices.Count; i++) { vertices[i] = localToWorldMatrix.MultiplyPoint((vector2 + vertices[i]) * num); } if (viewportIntersection == global::dfIntersectionType.Intersecting) { this.clipToViewport(dfRenderData); } buffers.Add(dfRenderData); } for (int j = 0; j < box.Children.Count; j++) { this.gatherRenderBuffers(box.Children[j], buffers); } }
// 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: 0x060046CF RID: 18127 RVA: 0x0010B5B4 File Offset: 0x001097B4 private void renderText(string text) { global::dfDynamicFont font = this.Style.Font; int fontSize = this.Style.FontSize; FontStyle fontStyle = this.Style.FontStyle; global::dfList <Vector3> vertices = this.renderData.Vertices; global::dfList <int> triangles = this.renderData.Triangles; global::dfList <Vector2> uv = this.renderData.UV; global::dfList <Color32> colors = this.renderData.Colors; float num = (float)fontSize / (float)font.FontSize; float num2 = (float)font.Descent * num; float num3 = 0f; CharacterInfo[] array = font.RequestCharacters(text, fontSize, fontStyle); this.renderData.Material = font.Material; for (int i = 0; i < text.Length; i++) { CharacterInfo characterInfo = array[i]; global::dfMarkupBoxText.addTriangleIndices(vertices, triangles); float num4 = (float)font.FontSize + characterInfo.vert.y - (float)fontSize + num2; float num5 = num3 + characterInfo.vert.x; float num6 = num4; float num7 = num5 + characterInfo.vert.width; float num8 = num6 + characterInfo.vert.height; Vector3 item; item..ctor(num5, num6); Vector3 item2; item2..ctor(num7, num6); Vector3 item3; item3..ctor(num7, num8); Vector3 item4; item4..ctor(num5, num8); vertices.Add(item); vertices.Add(item2); vertices.Add(item3); vertices.Add(item4); Color color = this.Style.Color; colors.Add(color); colors.Add(color); colors.Add(color); colors.Add(color); Rect uv2 = characterInfo.uv; float x = uv2.x; float num9 = uv2.y + uv2.height; float num10 = x + uv2.width; float y = uv2.y; if (characterInfo.flipped) { uv.Add(new Vector2(num10, y)); uv.Add(new Vector2(num10, num9)); uv.Add(new Vector2(x, num9)); uv.Add(new Vector2(x, y)); } else { uv.Add(new Vector2(x, num9)); uv.Add(new Vector2(num10, num9)); uv.Add(new Vector2(num10, y)); uv.Add(new Vector2(x, y)); } num3 += (float)Mathf.CeilToInt(characterInfo.vert.x + characterInfo.vert.width); } }
// Token: 0x06004680 RID: 18048 RVA: 0x00108988 File Offset: 0x00106B88 private void renderText(global::dfMarkupToken token, Color32 color, Vector3 position, global::dfRenderData renderData) { try { global::dfDynamicFont dfDynamicFont = (global::dfDynamicFont)base.Font; int num = Mathf.CeilToInt((float)dfDynamicFont.FontSize * base.TextScale); FontStyle style = 0; int descent = dfDynamicFont.Descent; global::dfList <Vector3> vertices = renderData.Vertices; global::dfList <int> triangles = renderData.Triangles; global::dfList <Vector2> uv = renderData.UV; global::dfList <Color32> colors = renderData.Colors; string value = token.Value; float num2 = position.x; float y = position.y; CharacterInfo[] array = dfDynamicFont.RequestCharacters(value, num, style); renderData.Material = dfDynamicFont.Material; 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)); } for (int i = 0; i < value.Length; i++) { if (i > 0) { num2 += (float)base.CharacterSpacing * base.TextScale; } CharacterInfo glyph = array[i]; float num3 = (float)dfDynamicFont.FontSize + glyph.vert.y - (float)num + (float)descent; float num4 = num2 + glyph.vert.x; float num5 = y + num3; float num6 = num4 + glyph.vert.width; float num7 = num5 + glyph.vert.height; Vector3 vector = new Vector3(num4, num5) * base.PixelRatio; Vector3 vector2 = new Vector3(num6, num5) * base.PixelRatio; Vector3 vector3 = new Vector3(num6, num7) * base.PixelRatio; Vector3 vector4 = new Vector3(num4, num7) * base.PixelRatio; if (base.Shadow) { global::dfDynamicFont.DynamicFontRenderer.addTriangleIndices(vertices, triangles); Vector3 vector5 = base.ShadowOffset * base.PixelRatio; 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); global::dfDynamicFont.DynamicFontRenderer.addUVCoords(uv, glyph); } if (base.Outline) { for (int j = 0; j < global::dfDynamicFont.DynamicFontRenderer.OUTLINE_OFFSETS.Length; j++) { global::dfDynamicFont.DynamicFontRenderer.addTriangleIndices(vertices, triangles); Vector3 vector6 = global::dfDynamicFont.DynamicFontRenderer.OUTLINE_OFFSETS[j] * (float)base.OutlineSize * base.PixelRatio; 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); global::dfDynamicFont.DynamicFontRenderer.addUVCoords(uv, glyph); } } global::dfDynamicFont.DynamicFontRenderer.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); global::dfDynamicFont.DynamicFontRenderer.addUVCoords(uv, glyph); num2 += (float)Mathf.CeilToInt(glyph.vert.x + glyph.vert.width); } } finally { } }