docs.rs failed to build uzor-urx-engine-1.4.4
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
URX Engine — cross-backend façade with per-region dirty tracking.
What it owns
regions: HashMap<RegionId, RegionState>— one entry per independently-renderable region (consumer-declared).- Per-region
DirtyState(Clean | TransformOnly | Content) +Affinetransform (so transform-only changes never trigger rasterisation). dirty_union: DirtyRect— union of all regions' dirty bboxes since last clear. Driver callsneeds_paint()to read it.RenderCadenceper region (Static / LowHz / HighHz / Forced).
What it doesn't own
- Cadence policy (Always / OnInput / Fps{N} / Manual) — that lives
in the driver/kernel layer (consumer's
winit::ApplicationHandleror equivalent). The engine just exposesneeds_paint()so the driver can short-circuit idle frames. - Backend choice — passed in at construction (
Cpu/Wgpu/Hybridafter Phase 7).
Contract
let mut engine = UrxEngine::new_cpu(width, height);
engine.upsert_region(region_id, scene, bounds, Cadence::Static);
// ... consumer state changes ...
engine.mark_dirty(region_id);
// driver per frame:
if let Some(rect) = engine.needs_paint() {
engine.render_cpu(&mut pixmap);
// present pixmap; engine resets dirty state internally.
}