Ejemplo n.º 1
0
        public override void paint(int cx, int cy, global::alphatab.platform.ICanvas canvas)
        {
            unchecked
            {
                double step  = (11 * this.renderer.stave.staveGroup.layout.renderer.settings.scale);
                int    loops = default(int);
                {
                    double v = global::System.Math.Max(((double)(1)), ((double)((this.width / step))));
                    {
                        double x = global::System.Math.Floor(((double)(v)));
                        loops = ((int)(x));
                    }
                }

                global::alphatab.rendering.RenderingResources res = this.renderer.stave.staveGroup.layout.renderer.renderingResources;
                canvas.setColor(res.mainGlyphColor);
                canvas.setFont(res.effectFont);
                canvas.setTextAlign(global::alphatab.platform.model.TextAlign.Left);
                double textWidth = canvas.measureText(this._label);
                canvas.fillText(this._label, ((double)((cx + this.x))), ((double)((cy + this.y))));
                if (this._isExpanded)
                {
                    int    lineSpacing = ((int)((3 * this.renderer.stave.staveGroup.layout.renderer.settings.scale)));
                    double startX      = (((cx + this.x) + textWidth) + lineSpacing);
                    int    endX        = ((((cx + this.x) + this.width) - lineSpacing) - lineSpacing);
                    int    lineY       = ((cy + this.y) + ((int)((8 * this.renderer.stave.staveGroup.layout.renderer.settings.scale))));
                    int    lineSize    = ((int)((8 * this.renderer.stave.staveGroup.layout.renderer.settings.scale)));
                    if ((endX > startX))
                    {
                        double lineX = startX;
                        while ((lineX < endX))
                        {
                            canvas.beginPath();
                            canvas.moveTo(lineX, ((double)(lineY)));
                            int __temp_stmt606 = default(int);
                            {
                                double x1 = global::System.Math.Min(((double)((lineX + lineSize))), ((double)(endX)));
                                __temp_stmt606 = ((int)(x1));
                            }

                            canvas.lineTo(((double)(__temp_stmt606)), ((double)(lineY)));
                            lineX += ((double)((lineSize + lineSpacing)));
                            canvas.stroke();
                        }

                        canvas.beginPath();
                        canvas.moveTo(((double)(endX)), ((double)((lineY - ((int)((6 * this.renderer.stave.staveGroup.layout.renderer.settings.scale)))))));
                        canvas.lineTo(((double)(endX)), ((double)((lineY + ((int)((6 * this.renderer.stave.staveGroup.layout.renderer.settings.scale)))))));
                        canvas.stroke();
                    }
                }
            }
        }
Ejemplo n.º 2
0
 public override void paint(int cx, int cy, global::alphatab.platform.ICanvas canvas)
 {
     unchecked
     {
         int size = ((int)((6 * this.renderer.stave.staveGroup.layout.renderer.settings.scale)));
         canvas.beginPath();
         canvas.moveTo(((double)((cx + this.x))), ((double)((cy + this.y))));
         canvas.quadraticCurveTo(((double)(((cx + this.x) + (this.width / 2)))), ((double)((cy + this.y))), ((double)(((cx + this.x) + this.width))), ((double)(((cy + this.y) - size))));
         canvas.moveTo(((double)((cx + this.x))), ((double)((cy + this.y))));
         canvas.quadraticCurveTo(((double)(((cx + this.x) + (this.width / 2)))), ((double)((cy + this.y))), ((double)(((cx + this.x) + this.width))), ((double)(((cy + this.y) + size))));
         canvas.stroke();
     }
 }
Ejemplo n.º 3
0
        public virtual void paint(int cx, int cy, global::alphatab.platform.ICanvas canvas)
        {
            unchecked
            {
                {
                    int _g = 0;
                    global::haxe.root.Array <object> _g1 = this.staves;
                    while ((_g < _g1.length))
                    {
                        global::alphatab.rendering.staves.Stave s = ((global::alphatab.rendering.staves.Stave)(_g1[_g]));
                        ++_g;
                        s.paint((cx + this.x), (cy + this.y), canvas);
                    }
                }

                global::alphatab.rendering.RenderingResources res = this.layout.renderer.renderingResources;
                if ((this.staves.length > 0))
                {
                    if (((this._firstStaveInAccolade != default(global::alphatab.rendering.staves.Stave)) && (this._lastStaveInAccolade != default(global::alphatab.rendering.staves.Stave))))
                    {
                        int firstStart = (((((cy + this.y) + this._firstStaveInAccolade.y) + this._firstStaveInAccolade.staveTop) + this._firstStaveInAccolade.topSpacing) + this._firstStaveInAccolade.getTopOverflow());
                        int lastEnd    = (((((cy + this.y) + this._lastStaveInAccolade.y) + this._lastStaveInAccolade.topSpacing) + this._lastStaveInAccolade.getTopOverflow()) + this._lastStaveInAccolade.staveBottom);
                        canvas.setColor(res.barSeperatorColor);
                        canvas.beginPath();
                        canvas.moveTo(((double)(((cx + this.x) + this._firstStaveInAccolade.x))), ((double)(firstStart)));
                        canvas.lineTo(((double)(((cx + this.x) + this._lastStaveInAccolade.x))), ((double)(lastEnd)));
                        canvas.stroke();
                        int barSize       = ((int)((3 * this.layout.renderer.settings.scale)));
                        int barOffset     = barSize;
                        int accoladeStart = (firstStart - (barSize * 4));
                        int accoladeEnd   = (lastEnd + (barSize * 4));
                        canvas.fillRect(((double)((((cx + this.x) - barOffset) - barSize))), ((double)(accoladeStart)), ((double)(barSize)), ((double)((accoladeEnd - accoladeStart))));
                        int spikeStartX = (((cx + this.x) - barOffset) - barSize);
                        int spikeEndX   = ((cx + this.x) + (barSize * 2));
                        canvas.beginPath();
                        canvas.moveTo(((double)(spikeStartX)), ((double)(accoladeStart)));
                        canvas.bezierCurveTo(((double)(spikeStartX)), ((double)(accoladeStart)), ((double)(this.x)), ((double)(accoladeStart)), ((double)(spikeEndX)), ((double)((accoladeStart - barSize))));
                        canvas.bezierCurveTo(((double)((cx + this.x))), ((double)((accoladeStart + barSize))), ((double)(spikeStartX)), ((double)((accoladeStart + barSize))), ((double)(spikeStartX)), ((double)((accoladeStart + barSize))));
                        canvas.closePath();
                        canvas.fill();
                        canvas.beginPath();
                        canvas.moveTo(((double)(spikeStartX)), ((double)(accoladeEnd)));
                        canvas.bezierCurveTo(((double)(spikeStartX)), ((double)(accoladeEnd)), ((double)(this.x)), ((double)(accoladeEnd)), ((double)(spikeEndX)), ((double)((accoladeEnd + barSize))));
                        canvas.bezierCurveTo(((double)(this.x)), ((double)((accoladeEnd - barSize))), ((double)(spikeStartX)), ((double)((accoladeEnd - barSize))), ((double)(spikeStartX)), ((double)((accoladeEnd - barSize))));
                        canvas.closePath();
                        canvas.fill();
                    }
                }
            }
        }
Ejemplo n.º 4
0
 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;
         canvas.setColor(res.mainGlyphColor);
         double blockWidth = (4 * this.renderer.stave.staveGroup.layout.renderer.settings.scale);
         int    top        = ((cy + this.y) + this.renderer.getTopPadding());
         int    bottom     = (((cy + this.y) + this.renderer.height) - this.renderer.getBottomPadding());
         double left       = ((cx + this.x) + 0.5);
         int    h          = (bottom - top);
         canvas.fillRect(left, ((double)(top)), blockWidth, ((double)(h)));
         left += ((blockWidth * 2) - 0.5);
         canvas.beginPath();
         canvas.moveTo(left, ((double)(top)));
         canvas.lineTo(left, ((double)(bottom)));
         canvas.stroke();
         left += (3 * this.renderer.stave.staveGroup.layout.renderer.settings.scale);
         double circleSize = (this._circleSize * this.renderer.stave.staveGroup.layout.renderer.settings.scale);
         double middle     = (((double)(((top + bottom)))) / 2);
         canvas.beginPath();
         canvas.circle(left, (middle - (circleSize * this._dotOffset)), circleSize);
         canvas.circle(left, (middle + (circleSize * this._dotOffset)), circleSize);
         canvas.fill();
     }
 }
Ejemplo n.º 5
0
        public override void paintBackground(int cx, int cy, global::alphatab.platform.ICanvas canvas)
        {
            unchecked
            {
                global::alphatab.rendering.RenderingResources res = this.stave.staveGroup.layout.renderer.renderingResources;
                canvas.setColor(res.staveLineColor);
                int lineY  = ((cy + this.y) + this.getNumberOverflow());
                int startY = lineY;
                {
                    int _g1 = 0;
                    int _g  = this._bar.track.tuning.length;
                    while ((_g1 < _g))
                    {
                        int i = _g1++;
                        if ((i > 0))
                        {
                            lineY += ((int)((11 * this.stave.staveGroup.layout.renderer.settings.scale)));
                        }

                        canvas.beginPath();
                        canvas.moveTo(((double)((cx + this.x))), ((double)(lineY)));
                        canvas.lineTo(((double)(((cx + this.x) + this.width))), ((double)(lineY)));
                        canvas.stroke();
                    }
                }
            }
        }
Ejemplo n.º 6
0
 public virtual void drawInfoGuide(global::alphatab.platform.ICanvas canvas, int cx, int cy, int y, global::alphatab.platform.model.Color c)
 {
     unchecked
     {
         canvas.setColor(c);
         canvas.beginPath();
         canvas.moveTo(((double)((cx + this.x))), ((double)(((cy + this.y) + y))));
         canvas.lineTo(((double)(((cx + this.x) + this.width))), ((double)(((cy + this.y) + y))));
         canvas.stroke();
     }
 }
Ejemplo n.º 7
0
        public override void paint(int cx, int cy, global::alphatab.platform.ICanvas canvas)
        {
            unchecked
            {
                double height = (17 * this.renderer.stave.staveGroup.layout.renderer.settings.scale);
                global::alphatab.rendering.RenderingResources res = this.renderer.stave.staveGroup.layout.renderer.renderingResources;
                canvas.setColor(res.mainGlyphColor);
                canvas.beginPath();
                if ((this._crescendo == global::alphatab.rendering.glyphs.CrescendoType.Crescendo))
                {
                    canvas.moveTo(((double)(((cx + this.x) + this.width))), ((double)((cy + this.y))));
                    canvas.lineTo(((double)((cx + this.x))), ((double)(((cy + this.y) + ((int)((height / 2)))))));
                    canvas.lineTo(((double)(((cx + this.x) + this.width))), ((cy + this.y) + height));
                }
                else
                {
                    canvas.moveTo(((double)((cx + this.x))), ((double)((cy + this.y))));
                    canvas.lineTo(((double)(((cx + this.x) + this.width))), ((double)(((cy + this.y) + ((int)((height / 2)))))));
                    canvas.lineTo(((double)((cx + this.x))), ((cy + this.y) + height));
                }

                canvas.stroke();
            }
        }
Ejemplo n.º 8
0
 public override void paint(int cx, int cy, global::alphatab.platform.ICanvas canvas)
 {
     unchecked
     {
         if ((this._endings.length > 0))
         {
             global::alphatab.rendering.RenderingResources res = this.stave.staveGroup.layout.renderer.renderingResources;
             canvas.setColor(res.mainGlyphColor);
             canvas.setFont(res.wordsFont);
             canvas.moveTo(((double)((cx + this.x))), ((double)(((cy + this.y) + this.height))));
             canvas.lineTo(((double)((cx + this.x))), ((double)((cy + this.y))));
             canvas.lineTo(((double)(((cx + this.x) + this.width))), ((double)((cy + this.y))));
             canvas.stroke();
             canvas.fillText(this._endingsString, ((double)(((int)(((cx + this.x) + (3 * this.stave.staveGroup.layout.renderer.settings.scale)))))), ((double)(((int)((cy + (this.y * this.stave.staveGroup.layout.renderer.settings.scale)))))));
         }
     }
 }
Ejemplo n.º 9
0
        public static void paintTie(global::alphatab.platform.ICanvas canvas, double scale, double x1, double y1, double x2, double y2, global::haxe.lang.Null <bool> down)
        {
            unchecked
            {
                bool __temp_down200 = ((global::haxe.lang.Runtime.eq((down).toDynamic(), (default(global::haxe.lang.Null <bool>)).toDynamic())) ? (((bool)(false))) : (down.@value));
                if ((x2 > x1))
                {
                    double t = x1;
                    x1 = x2;
                    x2 = t;
                    t  = y1;
                    y1 = y2;
                    y2 = t;
                }

                double offset         = (15 * scale);
                double size           = (4 * scale);
                double normalVector_x = (y2 - y1);
                double normalVector_y = (x2 - x1);
                double length         = global::System.Math.Sqrt(((double)(((normalVector_x * normalVector_x) + (normalVector_y * normalVector_y)))));
                if (__temp_down200)
                {
                    normalVector_x *= ((double)(-1));
                }
                else
                {
                    normalVector_y *= ((double)(-1));
                }

                normalVector_x /= length;
                normalVector_y /= length;
                double center_x = (((x2 + x1)) / 2);
                double center_y = (((y2 + y1)) / 2);
                double cp1_x    = (center_x + (offset * normalVector_x));
                double cp1_y    = (center_y + (offset * normalVector_y));
                double cp2_x    = (center_x + (((offset - size)) * normalVector_x));
                double cp2_y    = (center_y + (((offset - size)) * normalVector_y));
                canvas.beginPath();
                canvas.moveTo(x1, y1);
                canvas.quadraticCurveTo(cp1_x, cp1_y, x2, y2);
                canvas.quadraticCurveTo(cp2_x, cp2_y, x1, y1);
                canvas.closePath();
            }
        }
Ejemplo n.º 10
0
 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;
         canvas.setColor(res.barSeperatorColor);
         double blockWidth = (4 * this.renderer.stave.staveGroup.layout.renderer.settings.scale);
         int    top        = ((cy + this.y) + this.renderer.getTopPadding());
         int    bottom     = (((cy + this.y) + this.renderer.height) - this.renderer.getBottomPadding());
         double left       = ((double)((cx + this.x)));
         int    h          = (bottom - top);
         canvas.beginPath();
         canvas.moveTo(left, ((double)(top)));
         canvas.lineTo(left, ((double)(bottom)));
         canvas.stroke();
         if (this._isLast)
         {
             left += ((3 * this.renderer.stave.staveGroup.layout.renderer.settings.scale) + 0.5);
             canvas.fillRect(left, ((double)(top)), blockWidth, ((double)(h)));
         }
     }
 }
Ejemplo n.º 11
0
		public override   void paint(int cx, int cy, global::alphatab.platform.ICanvas canvas)
		{
			unchecked 
			{
				global::alphatab.rendering.ScoreBarRenderer scoreRenderer = ((global::alphatab.rendering.ScoreBarRenderer) (this.renderer) );
				int effectY = default(int);
				if (( this.beamingHelper.getDirection() == global::alphatab.rendering.utils.BeamDirection.Up )) 
				{
					effectY = scoreRenderer.getScoreY(((int) (global::haxe.lang.Runtime.getField_f(this.maxNote, "line", 1202919412, true)) ), new global::haxe.lang.Null<int>(13, true));
				}
				 else 
				{
					effectY = scoreRenderer.getScoreY(((int) (global::haxe.lang.Runtime.getField_f(this.minNote, "line", 1202919412, true)) ), new global::haxe.lang.Null<int>(-9, true));
				}
				
				int effectSpacing = default(int);
				if (( this.beamingHelper.getDirection() == global::alphatab.rendering.utils.BeamDirection.Up )) 
				{
					effectSpacing = ((int) (( 7 * this.renderer.stave.staveGroup.layout.renderer.settings.scale )) );
				}
				 else 
				{
					effectSpacing = ((int) (( -7 * this.renderer.stave.staveGroup.layout.renderer.settings.scale )) );
				}
				
				{
					object __temp_iterator448 = this.beatEffects.iterator();
					while (((bool) (global::haxe.lang.Runtime.callField(__temp_iterator448, "hasNext", 407283053, default(global::haxe.root.Array))) ))
					{
						global::alphatab.rendering.Glyph g = ((global::alphatab.rendering.Glyph) (global::haxe.lang.Runtime.callField(__temp_iterator448, "next", 1224901875, default(global::haxe.root.Array))) );
						g.y = effectY;
						g.x = ( this.width / 2 );
						g.paint(( cx + this.x ), ( cy + this.y ), canvas);
						effectY += effectSpacing;
					}
					
				}
				
				canvas.setColor(this.renderer.stave.staveGroup.layout.renderer.renderingResources.staveLineColor);
				int linePadding = ((int) (( 3 * this.renderer.stave.staveGroup.layout.renderer.settings.scale )) );
				if (this.hasTopOverflow()) 
				{
					int l = -1;
					while (( global::haxe.lang.Runtime.compare(l, ((int) (global::haxe.lang.Runtime.getField_f(this.minNote, "line", 1202919412, true)) )) >= 0 ))
					{
						int lY = ( ( cy + this.y ) + scoreRenderer.getScoreY(( l + 1 ), new global::haxe.lang.Null<int>(-1, true)) );
						canvas.beginPath();
						canvas.moveTo(((double) (( ( cx + this.x ) - linePadding )) ), ((double) (lY) ));
						canvas.lineTo(((double) (( ( ( cx + this.x ) + this.width ) + linePadding )) ), ((double) (lY) ));
						canvas.stroke();
						l -= 2;
					}
					
				}
				
				if (this.hasBottomOverflow()) 
				{
					int l1 = 11;
					while (( global::haxe.lang.Runtime.compare(l1, ((int) (global::haxe.lang.Runtime.getField_f(this.maxNote, "line", 1202919412, true)) )) <= 0 ))
					{
						int lY1 = ( ( cy + this.y ) + scoreRenderer.getScoreY(( l1 + 1 ), new global::haxe.lang.Null<int>(-1, true)) );
						canvas.beginPath();
						canvas.moveTo(((double) (( ( cx + this.x ) - linePadding )) ), ((double) (lY1) ));
						canvas.lineTo(((double) (( ( ( cx + this.x ) + this.width ) + linePadding )) ), ((double) (lY1) ));
						canvas.stroke();
						l1 += 2;
					}
					
				}
				
				if (( this._tremoloPicking != default(global::alphatab.rendering.Glyph) )) 
				{
					this._tremoloPicking.paint(( cx + this.x ), ( cy + this.y ), canvas);
				}
				
				{
					int _g = 0;
					global::haxe.root.Array<object> _g1 = this._infos;
					while (( _g < _g1.length ))
					{
						object g1 = _g1[_g];
						 ++ _g;
						((global::alphatab.rendering.Glyph) (global::haxe.lang.Runtime.getField(g1, "glyph", 369425836, true)) ).renderer = this.renderer;
						((global::alphatab.rendering.Glyph) (global::haxe.lang.Runtime.getField(g1, "glyph", 369425836, true)) ).paint(( cx + this.x ), ( cy + this.y ), canvas);
					}
					
				}
				
			}
		}
Ejemplo n.º 12
0
        public virtual void parseCommand(int cx, int cy, global::alphatab.platform.ICanvas canvas, global::alphatab.rendering.glyphs.SvgCommand cmd)
        {
            unchecked
            {
                bool canContinue = default(bool);
                int  i           = default(int);
                {
                    string _g = cmd.cmd;
                    switch (_g)
                    {
                    case "M":
                    {
                        this._currentX = (cx + (cmd.numbers[0] * this._xScale));
                        this._currentY = (cy + (cmd.numbers[1] * this._yScale));
                        canvas.moveTo(this._currentX, this._currentY);
                        break;
                    }


                    case "m":
                    {
                        this._currentX += (cmd.numbers[0] * this._xScale);
                        this._currentY += (cmd.numbers[1] * this._yScale);
                        canvas.moveTo(this._currentX, this._currentY);
                        break;
                    }


                    case "Z":
                    case "z":
                    {
                        canvas.closePath();
                        break;
                    }


                    case "L":
                    {
                        i = 0;
                        while ((i < cmd.numbers.length))
                        {
                            this._currentX = (cx + (cmd.numbers[i++] * this._xScale));
                            this._currentY = (cy + (cmd.numbers[i++] * this._yScale));
                            canvas.lineTo(this._currentX, this._currentY);
                        }

                        break;
                    }


                    case "l":
                    {
                        i = 0;
                        while ((i < cmd.numbers.length))
                        {
                            this._currentX += (cmd.numbers[i++] * this._xScale);
                            this._currentY += (cmd.numbers[i++] * this._yScale);
                            canvas.lineTo(this._currentX, this._currentY);
                        }

                        break;
                    }


                    case "V":
                    {
                        i = 0;
                        while ((i < cmd.numbers.length))
                        {
                            this._currentY = (cy + (cmd.numbers[i++] * this._yScale));
                            canvas.lineTo(this._currentX, this._currentY);
                        }

                        break;
                    }


                    case "v":
                    {
                        i = 0;
                        while ((i < cmd.numbers.length))
                        {
                            this._currentY += (cmd.numbers[i++] * this._yScale);
                            canvas.lineTo(this._currentX, this._currentY);
                        }

                        break;
                    }


                    case "H":
                    {
                        i = 0;
                        while ((i < cmd.numbers.length))
                        {
                            this._currentX = (cx + (cmd.numbers[i++] * this._xScale));
                            canvas.lineTo(this._currentX, this._currentY);
                        }

                        break;
                    }


                    case "h":
                    {
                        i = 0;
                        while ((i < cmd.numbers.length))
                        {
                            this._currentX += (cmd.numbers[i++] * this._xScale);
                            canvas.lineTo(this._currentX, this._currentY);
                        }

                        break;
                    }


                    case "C":
                    {
                        i = 0;
                        while ((i < cmd.numbers.length))
                        {
                            double x1 = (cx + (cmd.numbers[i++] * this._xScale));
                            double y1 = (cy + (cmd.numbers[i++] * this._yScale));
                            double x2 = (cx + (cmd.numbers[i++] * this._xScale));
                            double y2 = (cy + (cmd.numbers[i++] * this._yScale));
                            double x3 = (cx + (cmd.numbers[i++] * this._xScale));
                            double y3 = (cy + (cmd.numbers[i++] * this._yScale));
                            this._lastControlX = x2;
                            this._lastControlY = y2;
                            this._currentX     = x3;
                            this._currentY     = y3;
                            canvas.bezierCurveTo(x1, y1, x2, y2, x3, y3);
                        }

                        break;
                    }


                    case "c":
                    {
                        i = 0;
                        while ((i < cmd.numbers.length))
                        {
                            double x11 = (this._currentX + (cmd.numbers[i++] * this._xScale));
                            double y11 = (this._currentY + (cmd.numbers[i++] * this._yScale));
                            double x21 = (this._currentX + (cmd.numbers[i++] * this._xScale));
                            double y21 = (this._currentY + (cmd.numbers[i++] * this._yScale));
                            double x31 = (this._currentX + (cmd.numbers[i++] * this._xScale));
                            double y31 = (this._currentY + (cmd.numbers[i++] * this._yScale));
                            this._lastControlX = x21;
                            this._lastControlY = y21;
                            this._currentX     = x31;
                            this._currentY     = y31;
                            canvas.bezierCurveTo(x11, y11, x21, y21, x31, y31);
                        }

                        break;
                    }


                    case "S":
                    {
                        i = 0;
                        while ((i < cmd.numbers.length))
                        {
                            double x12 = (cx + (cmd.numbers[i++] * this._xScale));
                            double y12 = (cy + (cmd.numbers[i++] * this._yScale));
                            canContinue = (((string.Equals(this._lastCmd, "c") || string.Equals(this._lastCmd, "C")) || string.Equals(this._lastCmd, "S")) || string.Equals(this._lastCmd, "s"));
                            double x22 = default(double);
                            if (canContinue)
                            {
                                x22 = (this._currentX + ((this._currentX - this._lastControlX)));
                            }
                            else
                            {
                                x22 = this._currentX;
                            }

                            double y22 = default(double);
                            if (canContinue)
                            {
                                y22 = (this._currentY + ((this._currentY - this._lastControlY)));
                            }
                            else
                            {
                                y22 = this._currentY;
                            }

                            double x32 = (cx + (cmd.numbers[i++] * this._xScale));
                            double y32 = (cy + (cmd.numbers[i++] * this._yScale));
                            this._lastControlX = x22;
                            this._lastControlY = y22;
                            this._currentX     = x32;
                            this._currentY     = y32;
                            canvas.bezierCurveTo(x12, y12, x22, y22, x32, y32);
                        }

                        break;
                    }


                    case "s":
                    {
                        i = 0;
                        while ((i < cmd.numbers.length))
                        {
                            double x13 = (this._currentX + (cmd.numbers[i++] * this._xScale));
                            double y13 = (this._currentY + (cmd.numbers[i++] * this._yScale));
                            canContinue = (((string.Equals(this._lastCmd, "c") || string.Equals(this._lastCmd, "C")) || string.Equals(this._lastCmd, "S")) || string.Equals(this._lastCmd, "s"));
                            double x23 = default(double);
                            if (canContinue)
                            {
                                x23 = (this._currentX + ((this._currentX - this._lastControlX)));
                            }
                            else
                            {
                                x23 = this._currentX;
                            }

                            double y23 = default(double);
                            if (canContinue)
                            {
                                y23 = (this._currentY + ((this._currentY - this._lastControlY)));
                            }
                            else
                            {
                                y23 = this._currentY;
                            }

                            double x33 = (this._currentX + (cmd.numbers[i++] * this._xScale));
                            double y33 = (this._currentY + (cmd.numbers[i++] * this._yScale));
                            this._lastControlX = x23;
                            this._lastControlY = y23;
                            this._currentX     = x33;
                            this._currentY     = y33;
                            canvas.bezierCurveTo(x13, y13, x23, y23, x33, y33);
                        }

                        break;
                    }


                    case "Q":
                    {
                        i = 0;
                        while ((i < cmd.numbers.length))
                        {
                            double x14 = (cx + (cmd.numbers[i++] * this._xScale));
                            double y14 = (cy + (cmd.numbers[i++] * this._yScale));
                            double x24 = (cx + (cmd.numbers[i++] * this._xScale));
                            double y24 = (cy + (cmd.numbers[i++] * this._yScale));
                            this._lastControlX = x14;
                            this._lastControlY = y14;
                            this._currentX     = x24;
                            this._currentY     = y24;
                            canvas.quadraticCurveTo(x14, y14, x24, y24);
                        }

                        break;
                    }


                    case "q":
                    {
                        i = 0;
                        while ((i < cmd.numbers.length))
                        {
                            double x15 = (this._currentX + (cmd.numbers[i++] * this._xScale));
                            double y15 = (this._currentY + (cmd.numbers[i++] * this._yScale));
                            double x25 = (this._currentX + (cmd.numbers[i++] * this._xScale));
                            double y25 = (this._currentY + (cmd.numbers[i++] * this._yScale));
                            this._lastControlX = x15;
                            this._lastControlY = y15;
                            this._currentX     = x25;
                            this._currentY     = y25;
                            canvas.quadraticCurveTo(x15, y15, x25, y25);
                        }

                        break;
                    }


                    case "T":
                    {
                        i = 0;
                        while ((i < cmd.numbers.length))
                        {
                            double x16 = (cx + (cmd.numbers[i++] * this._xScale));
                            double y16 = (cy + (cmd.numbers[i++] * this._yScale));
                            canContinue = (((string.Equals(this._lastCmd, "q") || string.Equals(this._lastCmd, "Q")) || string.Equals(this._lastCmd, "t")) || string.Equals(this._lastCmd, "T"));
                            double cpx = default(double);
                            if (canContinue)
                            {
                                cpx = (this._currentX + ((this._currentX - this._lastControlX)));
                            }
                            else
                            {
                                cpx = this._currentX;
                            }

                            double cpy = default(double);
                            if (canContinue)
                            {
                                cpy = (this._currentY + ((this._currentY - this._lastControlY)));
                            }
                            else
                            {
                                cpy = this._currentY;
                            }

                            this._currentX     = x16;
                            this._currentY     = y16;
                            this._lastControlX = cpx;
                            this._lastControlY = cpy;
                            canvas.quadraticCurveTo(cpx, cpy, x16, y16);
                        }

                        break;
                    }


                    case "t":
                    {
                        i = 0;
                        while ((i < cmd.numbers.length))
                        {
                            double x17  = (this._currentX + (cmd.numbers[i++] * this._xScale));
                            double y17  = (this._currentY + (cmd.numbers[i++] * this._yScale));
                            double cpx1 = (this._currentX + ((this._currentX - this._lastControlX)));
                            double cpy1 = (this._currentY + ((this._currentY - this._lastControlY)));
                            canContinue = (((string.Equals(this._lastCmd, "q") || string.Equals(this._lastCmd, "Q")) || string.Equals(this._lastCmd, "t")) || string.Equals(this._lastCmd, "T"));
                            double cpx2 = default(double);
                            if (canContinue)
                            {
                                cpx2 = (this._currentX + ((this._currentX - this._lastControlX)));
                            }
                            else
                            {
                                cpx2 = this._currentX;
                            }

                            double cpy2 = default(double);
                            if (canContinue)
                            {
                                cpy2 = (this._currentY + ((this._currentY - this._lastControlY)));
                            }
                            else
                            {
                                cpy2 = this._currentY;
                            }

                            this._lastControlX = cpx2;
                            this._lastControlY = cpy2;
                            canvas.quadraticCurveTo(cpx2, cpy2, x17, y17);
                        }

                        break;
                    }
                    }
                }

                this._lastCmd = cmd.cmd;
            }
        }
Ejemplo n.º 13
0
        public override void paint(int cx, int cy, global::alphatab.platform.ICanvas canvas)
        {
            unchecked
            {
                global::alphatab.rendering.TabBarRenderer r = ((global::alphatab.rendering.TabBarRenderer)(this.renderer));
                int sizeX  = ((int)((12 * this.renderer.stave.staveGroup.layout.renderer.settings.scale)));
                int sizeY  = ((int)((3 * this.renderer.stave.staveGroup.layout.renderer.settings.scale)));
                int startX = default(int);
                int startY = default(int);
                int endX   = default(int);
                int endY   = default(int);
                {
                    global::alphatab.model.SlideType _g = this._type;
                    switch (global::haxe.root.Type.enumIndex(_g))
                    {
                    case 1:
                    case 2:
                    {
                        int startOffsetY = default(int);
                        int endOffsetY   = default(int);
                        if ((this._startNote.slideTarget == default(global::alphatab.model.Note)))
                        {
                            startOffsetY = 0;
                            endOffsetY   = 0;
                        }
                        else
                        {
                            if ((this._startNote.slideTarget.fret > this._startNote.fret))
                            {
                                startOffsetY = sizeY;
                                endOffsetY   = (sizeY * -1);
                            }
                            else
                            {
                                startOffsetY = (sizeY * -1);
                                endOffsetY   = sizeY;
                            }
                        }

                        startX = (cx + r.getNoteX(this._startNote, new global::haxe.lang.Null <bool>(true, true)));
                        startY = ((cy + r.getNoteY(this._startNote)) + startOffsetY);
                        if ((this._startNote.slideTarget != default(global::alphatab.model.Note)))
                        {
                            endX = (cx + r.getNoteX(this._startNote.slideTarget, new global::haxe.lang.Null <bool>(false, true)));
                            endY = ((cy + r.getNoteY(this._startNote.slideTarget)) + endOffsetY);
                        }
                        else
                        {
                            endX = (((cx + this._parent.x) + this._parent.postNotes.x) + this._parent.postNotes.width);
                            endY = startY;
                        }

                        break;
                    }


                    case 3:
                    {
                        endX   = (cx + r.getNoteX(this._startNote, new global::haxe.lang.Null <bool>(false, true)));
                        endY   = (cy + r.getNoteY(this._startNote));
                        startX = (endX - sizeX);
                        startY = ((cy + r.getNoteY(this._startNote)) + sizeY);
                        break;
                    }


                    case 4:
                    {
                        endX   = (cx + r.getNoteX(this._startNote, new global::haxe.lang.Null <bool>(false, true)));
                        endY   = (cy + r.getNoteY(this._startNote));
                        startX = (endX - sizeX);
                        startY = ((cy + r.getNoteY(this._startNote)) - sizeY);
                        break;
                    }


                    case 5:
                    {
                        startX = (cx + r.getNoteX(this._startNote, new global::haxe.lang.Null <bool>(true, true)));
                        startY = (cy + r.getNoteY(this._startNote));
                        endX   = (startX + sizeX);
                        endY   = ((cy + r.getNoteY(this._startNote)) - sizeY);
                        break;
                    }


                    case 6:
                    {
                        startX = (cx + r.getNoteX(this._startNote, new global::haxe.lang.Null <bool>(true, true)));
                        startY = (cy + r.getNoteY(this._startNote));
                        endX   = (startX + sizeX);
                        endY   = ((cy + r.getNoteY(this._startNote)) + sizeY);
                        break;
                    }


                    default:
                    {
                        return;
                    }
                    }
                }

                canvas.setColor(this.renderer.stave.staveGroup.layout.renderer.renderingResources.mainGlyphColor);
                canvas.beginPath();
                canvas.moveTo(((double)(startX)), ((double)(startY)));
                canvas.lineTo(((double)(endX)), ((double)(endY)));
                canvas.stroke();
            }
        }
Ejemplo n.º 14
0
        public override void paint(int cx, int cy, global::alphatab.platform.ICanvas canvas)
        {
            unchecked
            {
                global::alphatab.rendering.TabBarRenderer     tabBarRenderer = ((global::alphatab.rendering.TabBarRenderer)(this.renderer));
                global::alphatab.rendering.RenderingResources res            = this.renderer.stave.staveGroup.layout.renderer.renderingResources;
                int startY         = default(int);
                int __temp_stmt600 = default(int);
                {
                    double x = (tabBarRenderer.getNoteY(this._beat.maxNote()) - (res.tablatureFont.getSize() / 2));
                    __temp_stmt600 = ((int)(x));
                }

                startY = ((cy + this.y) + __temp_stmt600);
                double endY      = (((cy + this.y) + tabBarRenderer.getNoteY(this._beat.minNote())) + (res.tablatureFont.getSize() / 2));
                int    arrowX    = ((int)(((cx + this.x) + (((double)(this.width)) / 2))));
                double arrowSize = (8 * this.renderer.stave.staveGroup.layout.renderer.settings.scale);
                canvas.setColor(res.mainGlyphColor);
                if ((this._beat.brushType != global::alphatab.model.BrushType.None))
                {
                    if (((this._beat.brushType == global::alphatab.model.BrushType.BrushUp) || (this._beat.brushType == global::alphatab.model.BrushType.BrushDown)))
                    {
                        canvas.beginPath();
                        canvas.moveTo(((double)(arrowX)), ((double)(startY)));
                        canvas.lineTo(((double)(arrowX)), endY);
                        canvas.stroke();
                    }
                    else
                    {
                        int size  = ((int)((15 * this.renderer.stave.staveGroup.layout.renderer.settings.scale)));
                        int steps = default(int);
                        {
                            double v = (global::System.Math.Abs(((double)((endY - startY)))) / size);
                            {
                                double x1 = global::System.Math.Floor(((double)(v)));
                                steps = ((int)(x1));
                            }
                        }

                        {
                            int _g = 0;
                            while ((_g < ((int)(steps))))
                            {
                                int i = _g++;
                                global::alphatab.rendering.glyphs.SvgGlyph arrow = new global::alphatab.rendering.glyphs.SvgGlyph(new global::haxe.lang.Null <int>(((int)((3 * this.renderer.stave.staveGroup.layout.renderer.settings.scale))), true), new global::haxe.lang.Null <int>(0, true), ((global::alphatab.rendering.glyphs.LazySvg)(global::alphatab.rendering.glyphs.MusicFont.WaveVertical)), ((double)(1)), ((double)(1)));
                                arrow.renderer = this.renderer;
                                arrow.doLayout();
                                arrow.paint((cx + this.x), (startY + (i * size)), canvas);
                            }
                        }
                    }

                    if (((this._beat.brushType == global::alphatab.model.BrushType.BrushUp) || (this._beat.brushType == global::alphatab.model.BrushType.ArpeggioUp)))
                    {
                        canvas.beginPath();
                        canvas.moveTo(((double)(arrowX)), endY);
                        canvas.lineTo(((double)(((int)((arrowX + (arrowSize / 2)))))), ((double)(((int)((endY - arrowSize))))));
                        canvas.lineTo(((double)(((int)((arrowX - (arrowSize / 2)))))), ((double)(((int)((endY - arrowSize))))));
                        canvas.closePath();
                        canvas.fill();
                    }
                    else
                    {
                        canvas.beginPath();
                        canvas.moveTo(((double)(arrowX)), ((double)(startY)));
                        canvas.lineTo(((double)(((int)((arrowX + (arrowSize / 2)))))), ((double)(((int)((startY + arrowSize))))));
                        canvas.lineTo(((double)(((int)((arrowX - (arrowSize / 2)))))), ((double)(((int)((startY + arrowSize))))));
                        canvas.closePath();
                        canvas.fill();
                    }
                }
            }
        }
Ejemplo n.º 15
0
        public override void paint(int cx, int cy, global::alphatab.platform.ICanvas canvas)
        {
            unchecked
            {
                global::alphatab.rendering.TabBarRenderer     r   = ((global::alphatab.rendering.TabBarRenderer)(this.renderer));
                global::alphatab.rendering.RenderingResources res = this.renderer.stave.staveGroup.layout.renderer.renderingResources;
                double dX       = (((double)(this.width)) / 60);
                int    maxValue = 0;
                {
                    int _g1 = 0;
                    int _g  = this._note.bendPoints.length;
                    while ((_g1 < _g))
                    {
                        int i = _g1++;
                        if ((((global::alphatab.model.BendPoint)(this._note.bendPoints[i])).@value > maxValue))
                        {
                            maxValue = ((global::alphatab.model.BendPoint)(this._note.bendPoints[i])).@value;
                        }
                    }
                }

                double dY = (((double)(this._height)) / maxValue);
                int    xx = (cx + this.x);
                int    yy = ((cy + this.y) + r.getNoteY(this._note));
                canvas.beginPath();
                {
                    int _g11 = 0;
                    int _g2  = (this._note.bendPoints.length - 1);
                    while ((_g11 < _g2))
                    {
                        int i1 = _g11++;
                        global::alphatab.model.BendPoint firstPt  = ((global::alphatab.model.BendPoint)(this._note.bendPoints[i1]));
                        global::alphatab.model.BendPoint secondPt = ((global::alphatab.model.BendPoint)(this._note.bendPoints[(i1 + 1)]));
                        if (((firstPt.@value == secondPt.@value) && (i1 == (this._note.bendPoints.length - 2))))
                        {
                            continue;
                        }

                        double x1 = (xx + (dX * firstPt.offset));
                        double y1 = (yy - (dY * firstPt.@value));
                        double x2 = (xx + (dX * secondPt.offset));
                        double y2 = (yy - (dY * secondPt.@value));
                        if ((firstPt.@value == secondPt.@value))
                        {
                            canvas.moveTo(x1, y1);
                            canvas.lineTo(x2, y2);
                            canvas.stroke();
                        }
                        else
                        {
                            double hx = (x1 + ((x2 - x1)));
                            double hy = (yy - (dY * firstPt.@value));
                            canvas.moveTo(x1, y1);
                            canvas.bezierCurveTo(hx, hy, x2, y2, x2, y2);
                            canvas.stroke();
                        }

                        double arrowSize = (6 * this.renderer.stave.staveGroup.layout.renderer.settings.scale);
                        if ((secondPt.@value > firstPt.@value))
                        {
                            canvas.beginPath();
                            canvas.moveTo(x2, y2);
                            canvas.lineTo((x2 - (arrowSize * 0.5)), (y2 + arrowSize));
                            canvas.lineTo((x2 + (arrowSize * 0.5)), (y2 + arrowSize));
                            canvas.closePath();
                            canvas.fill();
                        }
                        else
                        {
                            if ((secondPt.@value != firstPt.@value))
                            {
                                canvas.beginPath();
                                canvas.moveTo(x2, y2);
                                canvas.lineTo((x2 - (arrowSize * 0.5)), (y2 - arrowSize));
                                canvas.lineTo((x2 + (arrowSize * 0.5)), (y2 - arrowSize));
                                canvas.closePath();
                                canvas.fill();
                            }
                        }

                        canvas.stroke();
                        if ((secondPt.@value != 0))
                        {
                            double dV = ((double)((secondPt.@value - firstPt.@value)));
                            bool   up = (dV > 0);
                            dV = global::System.Math.Abs(((double)(dV)));
                            string s = "";
                            if ((dV == 4))
                            {
                                s   = "full";
                                dV -= ((double)(4));
                            }
                            else
                            {
                                if ((dV > 4))
                                {
                                    int __temp_stmt594 = default(int);
                                    {
                                        double x = global::System.Math.Floor(((double)((dV / 4))));
                                        __temp_stmt594 = ((int)(x));
                                    }

                                    string __temp_stmt593 = global::Std.@string(__temp_stmt594);
                                    string __temp_stmt592 = global::haxe.lang.Runtime.concat(__temp_stmt593, " ");
                                    s = global::haxe.lang.Runtime.concat(s, __temp_stmt592);
                                    {
                                        double x3 = global::System.Math.Floor(((double)(dV)));
                                        dV -= ((double)(((int)(x3))));
                                    }
                                }
                            }

                            if ((dV > 0))
                            {
                                s = global::haxe.lang.Runtime.concat(s, global::haxe.lang.Runtime.concat(global::Std.@string(dV), "/4"));
                            }

                            if (!(string.Equals(s, "")))
                            {
                                if (!(up))
                                {
                                    s = global::haxe.lang.Runtime.concat("-", s);
                                }

                                canvas.setFont(res.tablatureFont);
                                double size = canvas.measureText(s);
                                double y    = default(double);
                                if (up)
                                {
                                    y = ((y2 - res.tablatureFont.getSize()) - (2 * this.renderer.stave.staveGroup.layout.renderer.settings.scale));
                                }
                                else
                                {
                                    y = (y2 + (2 * this.renderer.stave.staveGroup.layout.renderer.settings.scale));
                                }

                                double x4 = (x2 - (size / 2));
                                canvas.fillText(s, x4, y);
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 16
0
        public override void paint(int cx, int cy, global::alphatab.platform.ICanvas canvas)
        {
            unchecked
            {
                global::alphatab.rendering.TabBarRenderer     tabBarRenderer = ((global::alphatab.rendering.TabBarRenderer)(this.renderer));
                global::alphatab.rendering.RenderingResources res            = this.renderer.stave.staveGroup.layout.renderer.renderingResources;
                double startX = ((cx + this.x) + (((double)(this._parent.onNotes.width)) / 2));
                double endX   = default(double);
                if (((this._beat.nextBeat == default(global::alphatab.model.Beat)) || (this._beat.voice != this._beat.nextBeat.voice)))
                {
                    endX = (((cx + this.x) + (((double)(this._parent.onNotes.width)) / 2)) + this._parent.postNotes.width);
                }
                else
                {
                    endX = ((double)((cx + tabBarRenderer.getBeatX(this._beat.nextBeat))));
                }

                int startY     = (cy + this.y);
                int textOffset = ((int)((3 * this.renderer.stave.staveGroup.layout.renderer.settings.scale)));
                int sizeY      = ((int)((60 * this.renderer.stave.staveGroup.layout.renderer.settings.scale)));
                canvas.setTextAlign(global::alphatab.platform.model.TextAlign.Center);
                if ((this._beat.whammyBarPoints.length >= 2))
                {
                    double dx = (((endX - startX)) / 60);
                    double dy = (((double)(sizeY)) / 24);
                    canvas.beginPath();
                    {
                        int _g1 = 0;
                        int _g  = (this._beat.whammyBarPoints.length - 1);
                        while ((_g1 < _g))
                        {
                            int i = _g1++;
                            global::alphatab.model.BendPoint pt1 = ((global::alphatab.model.BendPoint)(this._beat.whammyBarPoints[i]));
                            global::alphatab.model.BendPoint pt2 = ((global::alphatab.model.BendPoint)(this._beat.whammyBarPoints[(i + 1)]));
                            if (((pt1.@value == pt2.@value) && (i == (this._beat.whammyBarPoints.length - 2))))
                            {
                                continue;
                            }

                            int pt1X = ((int)((startX + (dx * pt1.offset))));
                            int pt1Y = ((int)((startY - (dy * pt1.@value))));
                            int pt2X = ((int)((startX + (dx * pt2.offset))));
                            int pt2Y = ((int)((startY - (dy * pt2.@value))));
                            canvas.moveTo(((double)(pt1X)), ((double)(pt1Y)));
                            canvas.lineTo(((double)(pt2X)), ((double)(pt2Y)));
                            if ((pt2.@value != 0))
                            {
                                double dv = (pt2.@value / 4.0);
                                bool   up = ((pt2.@value - pt1.@value) >= 0);
                                string s  = "";
                                if ((dv < 0))
                                {
                                    s = global::haxe.lang.Runtime.concat(s, "-");
                                }

                                if (((dv >= 1) || (dv <= -1)))
                                {
                                    int __temp_stmt605 = default(int);
                                    {
                                        double v = global::System.Math.Abs(((double)(dv)));
                                        {
                                            double x = global::System.Math.Floor(((double)(v)));
                                            __temp_stmt605 = ((int)(x));
                                        }
                                    }

                                    string __temp_stmt604 = global::Std.@string(__temp_stmt605);
                                    string __temp_stmt603 = global::haxe.lang.Runtime.concat(__temp_stmt604, " ");
                                    s = global::haxe.lang.Runtime.concat(s, __temp_stmt603);
                                }

                                {
                                    double x1 = global::System.Math.Floor(((double)(dv)));
                                    dv -= ((double)(((int)(x1))));
                                }

                                if ((dv == 0.25))
                                {
                                    s = global::haxe.lang.Runtime.concat(s, "1/4");
                                }
                                else
                                {
                                    if ((dv == 0.5))
                                    {
                                        s = global::haxe.lang.Runtime.concat(s, "1/2");
                                    }
                                    else
                                    {
                                        if ((dv == 0.75))
                                        {
                                            s = global::haxe.lang.Runtime.concat(s, "3/4");
                                        }
                                    }
                                }

                                canvas.setFont(res.graceFont);
                                double size = canvas.measureText(s);
                                double sy   = default(double);
                                if (up)
                                {
                                    sy = ((pt2Y - res.graceFont.getSize()) - textOffset);
                                }
                                else
                                {
                                    sy = ((double)((pt2Y + textOffset)));
                                }

                                int sx = pt2X;
                                canvas.fillText(s, ((double)(sx)), sy);
                            }
                        }
                    }

                    canvas.stroke();
                }
            }
        }