frontend.yui · function ·

ExecuteYuiPersistentCanvasFlatViewportFrameV1

A pragmatic retained path for product display lists that already use one logical viewport. Full/resize/structural frames rebuild the copy-backed surface once. Pointer, meter, playhead, and other local changes restore that surface, clear only explicit damage, and replay only intersecting commands. No browser, offscreen DOM, or per-frame display-list clone participates.

cpufrontendfrontend.yuifunctionsource-exampleyehoyui

Turn YUI models into a working frontend and its rendering/input adapters.

external ExecuteYuiPersistentCanvasFlatViewportFrameV1(yuiDisplayList original displayList, yuiCompositionPlan original composition, yuiCanvasViewport original viewport, yuiPersistentCanvasFrameV1 original frame) returns yuiPersistentCanvasExecutionV1

Status: source-declared

Parameters

yuiDisplayList original displayList
Supply display list as yuiDisplayList original.
yuiCompositionPlan original composition
Supply composition as yuiCompositionPlan original.
yuiCanvasViewport original viewport
Supply viewport as yuiCanvasViewport original.
yuiPersistentCanvasFrameV1 original frame
Supply frame as yuiPersistentCanvasFrameV1 original.

Use ExecuteYuiPersistentCanvasFlatViewportFrameV1

A complete small caller. Values are illustrative; check the returned result and package requirements before connecting live resources.

cpu · source-example · type checked

using frontend.yui

// Turn YUI models into a working frontend and its rendering/input adapters.
yuiDisplayList displayList = yuiDisplayList("surface Id")
yuiCompositionPlan composition = yuiCompositionPlan("surface Id")
yuiCanvasViewport viewport = yuiCanvasViewport(1, 1, 1, 1, 1, 1, 1)
yuiPersistentCanvasFrameV1 frame = yuiPersistentCanvasFrameV1(true, 1, 1, 1, "example")
yuiPersistentCanvasExecutionV1 result = ExecuteYuiPersistentCanvasFlatViewportFrameV1(displayList, composition, viewport, frame)
Console.Log("Inspect result in your debugger")
project.mech
manifestVersion = "2"
package = "api.example.frontend_yui__executeyuipersistentcanvasflatviewportframev1"
version = "0.1.0"
languageEdition = "yeho-core-2026.1"

[app]
kind = "headless"

[[dependencies]]
package = "frontend.yui"
version = "0.2.0"
path = "../../../yeho/packages/frontend/yui"

[[dependencies]]
package = "graphics.canvas"
version = "0.1.0"
path = "../../../yeho/packages/graphics/canvas"

[[dependencies]]
package = "graphics.image"
version = "0.1.0"
path = "../../../yeho/packages/graphics/image"

[[dependencies]]
package = "graphics.image.processing"
version = "0.1.0"
path = "../../../yeho/packages/graphics/image/processing"

[[dependencies]]
package = "graphics.text"
version = "0.1.0"
path = "../../../yeho/packages/graphics/text"

[[dependencies]]
package = "host.ui_services"
version = "0.1.0"
path = "../../../yeho/packages/host/ui_services"

[[dependencies]]
package = "input.text"
version = "0.1.0"
path = "../../../yeho/packages/input/text"

[[dependencies]]
package = "ui"
version = "0.2.0"
path = "../../../yeho/packages/ui"
Notes and source

Package presence and a declaration do not establish support on every host. Host services need their platform and lifecycle setup.

yeho/packages/frontend/yui/render-persistent_canvas.yh:1032