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.
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 yuiPersistentCanvasExecutionV1Status: 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