diff options
| -rw-r--r-- | src/charts.c | 12 | ||||
| -rw-r--r-- | src/vcr.c | 8 | 
2 files changed, 10 insertions, 10 deletions
| diff --git a/src/charts.c b/src/charts.c index 489c2c3..fb45b5f 100644 --- a/src/charts.c +++ b/src/charts.c @@ -417,8 +417,8 @@ static void draw_bars(vwm_charts_t *charts, vwm_chart_t *chart, int row, float m  	/* ensure at least 1 pixel when the scaled result is a fraction less than 1,  	 * I want to at least see 1 pixel blips for the slightest cpu utilization */ -	vcr_draw_bar(chart->vcr, a_layer, row, a_t, a_fraction > 0 ? 1 : 0 /* min_height */); -	vcr_draw_bar(chart->vcr, b_layer, row, b_t, b_fraction > 0 ? 1 : 0 /* min_height */); +	vcr_draw_bar(chart->vcr, a_layer, row, a_t, a_fraction != 0 ? 1 : 0 /* min_height */); +	vcr_draw_bar(chart->vcr, b_layer, row, b_t, b_fraction != 0 ? 1 : 0 /* min_height */);  } @@ -1069,7 +1069,7 @@ static void draw_chart_rest(vwm_charts_t *charts, vwm_chart_t *chart, vmon_proc_  			draw_bars(charts, chart, *row,  				(proc->is_thread || !proc->is_threaded) ? charts->vmon.num_cpus : 1.f /* mult */, -				stime_delta, +				-stime_delta,  				charts->inv_total_delta,  				VCR_LAYER_GRAPHA,  				utime_delta, @@ -1111,7 +1111,7 @@ static void draw_chart(vwm_charts_t *charts, vwm_chart_t *chart, vmon_proc_t *pr  	/* IOWait and Idle % @ row 0 */  	draw_bars(charts, chart, row,  		1.f /* mult */, -		charts->iowait_delta, +		-charts->iowait_delta,  		charts->inv_total_delta,  		VCR_LAYER_GRAPHA,  		charts->idle_delta, @@ -1121,7 +1121,7 @@ static void draw_chart(vwm_charts_t *charts, vwm_chart_t *chart, vmon_proc_t *pr  	/* IRQ and SoftIRQ % @ row 1 */  	draw_bars(charts, chart, row + 1,  		1.f /* mult */, -		charts->irq_delta, +		-charts->irq_delta,  		charts->inv_total_delta,  		VCR_LAYER_GRAPHA,  		charts->softirq_delta, @@ -1131,7 +1131,7 @@ static void draw_chart(vwm_charts_t *charts, vwm_chart_t *chart, vmon_proc_t *pr  	/* "Adherence" @ row 2 */  	draw_bars(charts, chart, row + 2,  		1.f /* mult */, -		charts->this_sample_adherence > 0.f ? charts->this_sample_adherence : 0.f /* a_fraction */, +		charts->this_sample_adherence > 0.f ? -charts->this_sample_adherence : 0.f /* a_fraction */,  		1.f /* inv_a_total */,  		VCR_LAYER_GRAPHA,  		charts->this_sample_adherence < 0.f ? -charts->this_sample_adherence : 0.f /* b_fraction */, @@ -1221,6 +1221,10 @@ void vcr_draw_bar(vcr_t *vcr, vcr_layer_t layer, int row, float t, int min_heigh  	if (height > (VCR_ROW_HEIGHT - 1))  		height = (VCR_ROW_HEIGHT - 1); +	/* negative values project down from the top, positive up from bottom */ +	if (t > 0.f) +		y += VCR_ROW_HEIGHT - height - 1; +  	switch (vcr->backend->type) {  #ifdef USE_XLIB  	case VCR_BACKEND_TYPE_XLIB: { @@ -1233,7 +1237,6 @@ void vcr_draw_bar(vcr_t *vcr, vcr_layer_t layer, int row, float t, int min_heigh  			break;  		case VCR_LAYER_GRAPHB:  			dest = &vcr->xlib.graphb_picture; -			y += VCR_ROW_HEIGHT - height - 1;  			break;  		default:  			assert(0); @@ -1253,9 +1256,6 @@ void vcr_draw_bar(vcr_t *vcr, vcr_layer_t layer, int row, float t, int min_heigh  		uint8_t	mask = (0x1 << layer) << ((vcr->phase & 0x1) << 2);  		uint8_t	*p; -		if (layer == VCR_LAYER_GRAPHB) -			y += VCR_ROW_HEIGHT - height - 1; -  		p = &vcr->mem.bits[y * vcr->mem.pitch + (vcr->phase >> 1)];  		for (int i = 0; i < height; i++, p += vcr->mem.pitch)  			*p |= mask; | 
