以下に、drawMulticolorLineが呼び出されるたびにマルチカラーラインを描画するコードを示します。
void drawMulticolorLine
{
CGContextBeginPath(secondaryContext);
CGContextMoveToPoint(secondaryContext, h, v);
for( int i = 1; i < lineWidth; ++ )
{
SetStrokeColor(i);
CGContextAddLineToPoint(secondaryContext, h+i, v);
CGContextDrawPath(secondaryContext, kCGPathFillStroke);
CGContextMoveToPoint(secondaryContext, h+i, v);
}
}
//a function that sets a different color for each i
void SetStrokeColor(int i)
{
CGContextSetRGBStrokeColor(secondaryContext,…
}
上記のコードは機能しますが、実際にライブで使用すると、パフォーマンスキラーになります。だから私は以下のコードで描画パフォーマンスを改善しようとしています。
void drawMulticolorLine
{
CGContextBeginPath(secondaryContext);
CGContextMoveToPoint(secondaryContext, h, v);
for( int i = 1; i < lineWidth; ++ )
{
SetStrokeColor(i);
CGContextAddLineToPoint(secondaryContext, h+i, v);
}
CGContextDrawPath(secondaryContext, kCGPathFillStroke);
}
//a function that sets a different color for each i
void SetStrokeColor(int i)
{
CGContextSetRGBStrokeColor(secondaryContext,…
}
線の色が常に同じである場合、このコードは良好なパフォーマンスで機能します。
私の問題は、CGContextDrawPathが呼び出されると、線全体が最後のCGContextSetRGBStrokeColorの色で描画されることです。
パスが追加されたすべての線分の色を保持する方法はありますか?
どんな助けでも大歓迎です。
乾杯、bzt