summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/charts.c12
-rw-r--r--src/vcr.c8
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 */,
diff --git a/src/vcr.c b/src/vcr.c
index 0c01d03..20f726a 100644
--- a/src/vcr.c
+++ b/src/vcr.c
@@ -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;
© All Rights Reserved