feat(render): Renderer with LOD selection, 3.3 and 4.3+ upload paths, headless smoke test
This commit is contained in:
1 parent
e0cdd95a3b
commit
3555ab63d7
20 files changed
+1544
-25
No files matched your search
@@ -32,6 +32,17 @@ struct Measurement {
|
||||
bool valid = false;
|
||||
};
|
||||
|
||||
/// The cursor pair a measure spans, as the plot stored it. `valid` is false for
|
||||
/// an id that names no measure and for a measure whose cursors are not both
|
||||
/// registered, so a caller can tell "no band to shade" from "a band between
|
||||
/// cursors 0 and 0". The renderer uses it to place the band a measurement's
|
||||
/// readout belongs to.
|
||||
struct MeasureSpan {
|
||||
u32 cursor_a = 0;
|
||||
u32 cursor_b = 0;
|
||||
bool valid = false;
|
||||
};
|
||||
|
||||
/// Stateless interval measurement over a data::Series.
|
||||
struct Measure {
|
||||
/// Evaluates [begin, end). Every quantity comes from `Series::reduce`/`sum`/
|
||||
|
||||
@@ -58,6 +58,10 @@ class Plot {
|
||||
/// creates one and never touches GL.
|
||||
void set_text_backend(const render::TextBackend* text) noexcept { text_ = text; }
|
||||
|
||||
/// The backend layout() measures labels with, or null when none is set. The
|
||||
/// renderer reads it to install its own font only when nobody else has.
|
||||
const render::TextBackend* text_backend() const noexcept { return text_; }
|
||||
|
||||
// --- construction -----------------------------------------------------
|
||||
|
||||
u32 add_x_axis(const AxisDesc& desc);
|
||||
@@ -135,6 +139,11 @@ class Plot {
|
||||
/// because recomputing fills a cache: nothing a caller can observe changes.
|
||||
const Measurement& measurement(u32 id) const;
|
||||
|
||||
/// The cursor pair `id` was created over. The renderer needs it to place the
|
||||
/// shaded band the measurement readout belongs to; the statistics themselves
|
||||
/// are in measurement().
|
||||
MeasureSpan measure_span(u32 id) const noexcept;
|
||||
|
||||
/// Drops every cached measurement. Needed after a series is mutated in place
|
||||
/// (data::ArraySeries::commit() with the same sample count), which a pointer
|
||||
/// and size check cannot detect.
|
||||
|
||||
Reference in new issue
Block a user