// 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);
        }
    }
Esempio n. 2
0
 // 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
     {
     }
 }
Esempio n. 3
0
    // 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);
    }
Esempio n. 5
0
    // 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;
     }
 }
Esempio n. 12
0
 // 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;
 }
Esempio n. 13
0
 // 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());
    }
Esempio n. 16
0
 // 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;
     }
 }
Esempio n. 17
0
    // 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;
        }
    }
Esempio n. 19
0
 // 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
     {
     }
 }
Esempio n. 20
0
    // 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]);
     }
 }
Esempio n. 23
0
 // 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);
     }
 }
Esempio n. 24
0
 // 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
     {
     }
 }
Esempio n. 25
0
 // Token: 0x06003E90 RID: 16016 RVA: 0x000E42CC File Offset: 0x000E24CC
 public void AddItem(global::dfAtlas.ItemInfo item)
 {
     this.items.Add(item);
     this.RebuildIndexes();
 }
Esempio n. 26
0
    // 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]);
        }
    }
Esempio n. 27
0
    // 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();
        }
    }