public override void paint(int cx, int cy, global::alphatab.platform.ICanvas canvas)
        {
            unchecked
            {
                global::alphatab.rendering.RenderingResources res = this.renderer.stave.staveGroup.layout.renderer.renderingResources;
                global::alphatab.model.TextBaseline           old = canvas.getTextBaseline();
                canvas.setTextBaseline(global::alphatab.model.TextBaseline.Middle);
                canvas.setColor(res.mainGlyphColor);
                if (this._isGrace)
                {
                    canvas.setFont(res.graceFont);
                }
                else
                {
                    canvas.setFont(res.tablatureFont);
                }

                {
                    int _g = 0;
                    global::haxe.root.Array <object> _g1 = this._notes;
                    while ((_g < _g1.length))
                    {
                        global::alphatab.rendering.glyphs.NoteNumberGlyph g = ((global::alphatab.rendering.glyphs.NoteNumberGlyph)(_g1[_g]));
                        ++_g;
                        g.renderer = this.renderer;
                        g.paint((cx + this.x), (cy + this.y), canvas);
                    }
                }

                canvas.setTextBaseline(old);
                {
                    object __temp_iterator450 = this.beatEffects.iterator();
                    while (((bool)(global::haxe.lang.Runtime.callField(__temp_iterator450, "hasNext", 407283053, default(global::haxe.root.Array)))))
                    {
                        global::alphatab.rendering.Glyph g1 = ((global::alphatab.rendering.Glyph)(global::haxe.lang.Runtime.callField(__temp_iterator450, "next", 1224901875, default(global::haxe.root.Array))));
                        g1.paint((cx + this.x), (cy + this.y), canvas);
                    }
                }
            }
        }