X-Git-Url: http://winboard.nl/cgi-bin?p=xboard.git;a=blobdiff_plain;f=evalgraph.c;h=1a8bd075e3b3fd5235b20abb7a0f59339961850a;hp=43f183d062b6fb27658479b9373fb54919ad3c51;hb=439b2edcbe1c2108c6d4c4ec3db5be04dbf92a0a;hpb=aa694af0138b799c4de3e031d15c2a9be3112b6c diff --git a/evalgraph.c b/evalgraph.c index 43f183d..1a8bd07 100644 --- a/evalgraph.c +++ b/evalgraph.c @@ -5,7 +5,8 @@ * * Copyright 2005 Alessandro Scotti * - * Enhancments Copyright 2009, 2010, 2011, 2012 Free Software Foundation, Inc. + * Enhancments Copyright 2009, 2010, 2011, 2012, 2013, 2014, 2015, + * 2016 Free Software Foundation, Inc. * * ------------------------------------------------------------------------ * @@ -53,6 +54,7 @@ int currFirst = 0; int currLast = 0; int currCurrent = -1; int range = 1; +int differentialView; int nWidthPB = 0; int nHeightPB = 0; @@ -85,6 +87,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 +105,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 +155,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 +315,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