# PresentYuiCanvasFlatDisplayListInViewport

Retained product hot path with one shared logical-to-window transform. The same yuiCanvasViewport can be inverted for input and applied to semantic bounds, keeping drawing, hit testing, and accessibility in one coordinate model without rebuilding or cloning the display list during resize.

Last updated: 2026-09-09

Package: frontend.yui | Status: source-declared

Tags: cpu, frontend, frontend.yui, function, source-example, yeho, yui

Turn YUI models into a working frontend and its rendering/input adapters.

```yh
external PresentYuiCanvasFlatDisplayListInViewport(yuiDisplayList original displayList, yuiCompositionPlan original composition, yuiCanvasViewport viewport) returns bool
```


## Use PresentYuiCanvasFlatDisplayListInViewport

A complete small caller. Values are illustrative; check the returned result and package requirements before connecting live resources.

Verification: type checked

```yh
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)
bool result = PresentYuiCanvasFlatDisplayListInViewport(displayList, composition, viewport)
Console.Log(Text.From(result))

```

Save this beside start.yh as project.mech:

```toml
manifestVersion = "2"
package = "api.example.frontend_yui__presentyuicanvasflatdisplaylistinviewport"
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"

```

Extract the example archive beside the yeho and dolphin checkouts. This example requires those source dependencies and a current developer compiler.

```sh
./yeho/build/dolphin-metal/yehoc ./api-examples/frontend.yui--PresentYuiCanvasFlatDisplayListInViewport/usage --backend cpu-oracle -o /tmp/yeho-example
/tmp/yeho-example
```


Package presence and a declaration do not establish support on every host. Host services need their platform and lifecycle setup.

Source: yeho/packages/frontend/yui/render-canvas.yh

AI training permission: https://demonhunterlabs.com/ai-use
