API — ICoreEssentials/UI/Backends/AppKit/Motion
The public contract of 3 header(s) under ICoreEssentials/UI/Backends/AppKit/Motion — 0 class/struct definition(s), 0 declaration(s). Each section shows the header's banner and its public (and protected-virtual) surface exactly as the file writes it.
| Header | Defines | Declarations | Bases |
|---|---|---|---|
ICoreAppKitDisplayLink.h | — | 0 | — |
ICoreAppKitMotionOwners.h | — | 0 | — |
ICoreAppKitMotionRuntime.h | — | 0 | — |
ICoreAppKitDisplayLink.h#
ICoreEssentials/UI/Backends/AppKit/Motion/ICoreAppKitDisplayLink.h
Declares no class of its own — see the file.
ICoreAppKitMotionOwners.h#
ICoreEssentials/UI/Backends/AppKit/Motion/ICoreAppKitMotionOwners.h
"Stop every animation belonging to this widget" on the AppKit backend -- the peer of Backends/Qt/Motion/ICoreQtMotionOwners.h, and the thing this backend has never been able to answer.
⚠ WHAT IT IS FOR. ICoreGraphicsCommands::stopChildAnimationsOf* has 23 call sites, every one quieting an object about to be torn down or handed back to a pool. The Qt seat answered it with the object tree until A0.6 removed the last toolkit animation from the tier, and answers it from a registry now. This backend never had an object tree at all, so its three members were first left UNDEFINED (the loud report) and then DEFINED AS NO-OPS to keep ICoreGraphicsRecycler in the link. A no-op is the silent-wrong shape A0.6 exists to remove: the answer to it is to make the call do the thing.
⚠ WHAT IS ACTUALLY EXPOSED HERE, STATED NEITHER WAY ROUND (measured, and
Declares no class of its own — see the file.
ICoreAppKitMotionRuntime.h#
ICoreEssentials/UI/Backends/AppKit/Motion/ICoreAppKitMotionRuntime.h
The one place animations are TICKED on this backend (A7.1).
WHY A RUNTIME EXISTS HERE AND NOT ON THE OTHER BACKEND
The other toolkit ships an animation framework: an animation object schedules itself, and nothing in this tree owns a clock. Here the two halves arrive separately and neither is wired to the other -- A0.6 built a portable clock and timeline that are complete and pure, and A7.1's driver half built a display link that can tick something. This file is the something.
One clock, one link, one dispatch table, for the whole process. Not one per animation: a display link is a real system resource, and 26 value animations each holding one would be 26 callbacks a frame doing nothing most of the time. The link also stops itself when nothing is running, so an idle editor
File-scope declarations#
// Called once per tick with the animation's current sample. `finished` is true
// on the last call, which always happens exactly once for a run that is not
// cancelled.
using ICoreAppKitMotionHook = std::function<void(const ICoreAnimationSample& sample)>;