Fix `Viz.draw_last()` to divide by `.flat_index_ratio` for uppx index lookback
parent
efddd43760
commit
5d9b7c72b3
|
@ -819,6 +819,7 @@ class Viz(msgspec.Struct): # , frozen=True):
|
|||
# XXX: SUPER UGGGHHH... without this we get stale cache
|
||||
# graphics that "smear" across the view horizontally
|
||||
# when panning and the first datum is out of view..
|
||||
reset_cache = False
|
||||
if (
|
||||
reset_cache
|
||||
):
|
||||
|
@ -895,7 +896,8 @@ class Viz(msgspec.Struct): # , frozen=True):
|
|||
# worth of data since that's all the screen
|
||||
# can represent on the last column where
|
||||
# the most recent datum is being drawn.
|
||||
uppx = ceil(self._last_uppx)
|
||||
uppx = ceil(gfx.x_uppx())
|
||||
|
||||
if (
|
||||
(self._in_ds or only_last_uppx)
|
||||
and uppx > 0
|
||||
|
@ -903,41 +905,34 @@ class Viz(msgspec.Struct): # , frozen=True):
|
|||
alt_renderer = self._alt_r
|
||||
if alt_renderer:
|
||||
renderer, gfx = alt_renderer
|
||||
fmtr = renderer.fmtr
|
||||
x = fmtr.x_1d
|
||||
y = fmtr.y_1d
|
||||
else:
|
||||
renderer = self._src_r
|
||||
fmtr = renderer.fmtr
|
||||
x = fmtr.x_1d
|
||||
y = fmtr.y_1d
|
||||
|
||||
fmtr = renderer.fmtr
|
||||
x = fmtr.x_1d
|
||||
y = fmtr.y_1d
|
||||
|
||||
iuppx = ceil(uppx)
|
||||
if alt_renderer:
|
||||
uppx *= fmtr.flat_index_ratio
|
||||
iuppx = ceil(uppx / fmtr.flat_index_ratio)
|
||||
|
||||
y = y[-uppx:]
|
||||
y = y[-iuppx:]
|
||||
ymn, ymx = y.min(), y.max()
|
||||
try:
|
||||
iuppx = x[-uppx]
|
||||
x_start = x[-iuppx]
|
||||
except IndexError:
|
||||
# we're less then an x-px wide so just grab the start
|
||||
# datum index.
|
||||
iuppx = x[0]
|
||||
x_start = x[0]
|
||||
|
||||
gfx._last_line = QLineF(
|
||||
iuppx, ymn,
|
||||
x_start, ymn,
|
||||
x[-1], ymx,
|
||||
)
|
||||
# if self.is_ohlc:
|
||||
# times = self.shm.array['time']
|
||||
# time_step = times[-1] - times[-2]
|
||||
# # if 'hist' in self.shm.token['shm_name']
|
||||
# # if self.index_step() == 1:
|
||||
# # breakpoint()
|
||||
# print(
|
||||
# f'updating DS curve {self.name}@{time_step}s\n'
|
||||
# f'drawing uppx={uppx} mxmn line: {ymn}, {ymx}'
|
||||
# )
|
||||
# print(
|
||||
# f'updating DS curve {self.name}@{time_step}s\n'
|
||||
# f'drawing uppx={uppx} mxmn line: {ymn}, {ymx}'
|
||||
# )
|
||||
|
||||
else:
|
||||
x, y = gfx.draw_last_datum(
|
||||
|
|
Loading…
Reference in New Issue