diff options
author | Vito Caputo <vcaputo@pengaru.com> | 2025-04-13 13:46:36 -0700 |
---|---|---|
committer | Vito Caputo <vcaputo@pengaru.com> | 2025-04-19 13:13:48 -0700 |
commit | 1d35c60429534897d6fcc6fb5f2c503914b36671 (patch) | |
tree | af9a777c3fcc9f862ee93f8b7f911c2d98d3d9cc /src/vcr.c | |
parent | 482e99c7b281c843fe545a478624ddbd311ad002 (diff) |
vcr: treat negative values as top-rooted
Instead of assigning top-down vs. bottom-up semantics to the
layers behind vcr, let's use negative values to indicate
top-down.
This may change again in the future, but presently there's no
support for signed bar graphs within a given layer.
Diffstat (limited to 'src/vcr.c')
-rw-r--r-- | src/vcr.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -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; |