X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=evalgraph.c;h=e3608f09e83c330db268db938536662fe63a569b;hb=33ddf089fa72ec8ed7e9613b1325d71cfe77fc63;hp=43f183d062b6fb27658479b9373fb54919ad3c51;hpb=aa694af0138b799c4de3e031d15c2a9be3112b6c;p=xboard.git diff --git a/evalgraph.c b/evalgraph.c index 43f183d..e3608f0 100644 --- a/evalgraph.c +++ b/evalgraph.c @@ -5,7 +5,7 @@ * * Copyright 2005 Alessandro Scotti * - * Enhancments Copyright 2009, 2010, 2011, 2012 Free Software Foundation, Inc. + * Enhancments Copyright 2009, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc. * * ------------------------------------------------------------------------ * @@ -53,6 +53,7 @@ int currFirst = 0; int currLast = 0; int currCurrent = -1; int range = 1; +int differentialView; int nWidthPB = 0; int nHeightPB = 0; @@ -85,6 +86,7 @@ GetPvScore (int index) { int score = currPvInfo[ index ].score; + if(differentialView) score = index < currLast-1 ? -currPvInfo[ index+1 ].score - score : 0; if( index & 1 ) score = -score; /* Flip score for black */ return score; @@ -102,7 +104,7 @@ MakeEvalTitle (char *title) if( depth <=0 ) return title; if( currCurrent & 1 ) score = -score; /* Flip score for black */ - snprintf(buf, MSG_SIZ, "%s {%d: %s%.2f/%-2d %d}", title, currCurrent/2+1, + snprintf(buf, MSG_SIZ, "%s {%d: %s%.2f/%-2d %d}", title, currCurrent/2+1, score>0 ? "+" : " ", score/100., depth, (currPvInfo[currCurrent].time+50)/100); return buf; @@ -152,7 +154,7 @@ static void DrawAxis () { int cy = nHeightPB / 2, space = nHeightPB/(6 + appData.zoom); - + DrawAxisSegmentHoriz( +5, TRUE ); DrawAxisSegmentHoriz( +3, space >= 20 ); DrawAxisSegmentHoriz( +1, space >= 20 && space*appData.zoom >= 40 ); @@ -312,15 +314,26 @@ static void DrawHistograms () { VisualizationData vd; + int i; double step = 1; if( InitVisualization( &vd ) ) { if( vd.hist_width < MIN_HIST_WIDTH ) { DrawHistogramAsDiagram( vd.cy, vd.paint_width, vd.hist_count ); + step = 0.5*vd.paint_width / (((vd.hist_count | 7) + 1)/2 + 1.); } else { - DrawHistogramFull( vd.cy, vd.hist_width, vd.hist_count ); + DrawHistogramFull( vd.cy, step = vd.hist_width, vd.hist_count ); } } + if(!differentialView) return; + differentialView = 0; + DrawSegment( MarginX + MarginW, vd.cy, NULL, NULL, PEN_NONE ); + for( i=0; i