-
Notifications
You must be signed in to change notification settings - Fork 985
Description
When performing interactions quickly in e.g. OxyPlot.WinfowsForms, it is possible for an interaction (e.g. mouse wheel) to take place, and then another to take place before rendering occurs. Because rendering has no occurred, the Axes are not updated, and consequently the position in data-space where the screen point is projected is incorrect.
This is extremely noticeable when scrolling in the immediate mode renderer for OxyPlot-Avalonia I threw together last night.
Much of the issue could be resolved by calling UpdateAxisTransforms after any interaction, as currently the axes are left in a sort of half-updated state that returns incorrect values.
However, this still leaves problems when the axis margins change, producing behaviour that is inconsistent with the same set of interactions performed more slowly. The only solution to that would be to layout the whole plot after each interaction, which would be expensive and is presently impossible without rendering e.g. to a null context.
Separation between render and layout may facilitate this. I'll try to dig out my old core/musings and put them in #391