Generated reference › API — ICoreEssentials/UI/Backends/AppKit/Motion
kind: generated#api#icoreessentials-ui-backends-appkit-motion

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.

HeaderDefinesDeclarationsBases
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)>;