# yuiPersistentCanvasFrameV1

A yui persistent canvas frame v1 record carrying fullRedraw, damage, backgroundRed, backgroundGreen, backgroundBlue, and related state.

Last updated: 2026-09-09

Package: frontend.yui | Status: source-declared

Tags: cpu, frontend, frontend.yui, method, source-example, thing, yeho, yui

Turn YUI models into a working frontend and its rendering/input adapters.

```yh
external thing yuiPersistentCanvasFrameV1
```

- bool fullRedraw: Stores full redraw as bool.
- list of yuiPersistentCanvasDamageRegionV1 damage: Stores damage as list of yuiPersistentCanvasDamageRegionV1.
- int backgroundRed: Stores background red as int.
- int backgroundGreen: Stores background green as int.
- int backgroundBlue: Stores background blue as int.
- bool retainedReplay: Stores retained replay as bool.
- text expectedSurfaceId: Stores expected surface id as text.
- text diagnostic: Stores diagnostic as text.
- text source: Stores source as text.
- yuiPersistentCanvasFrameV1(bool fullRedraw, int backgroundRed, int backgroundGreen, int backgroundBlue, text source): Yui persistent canvas frame v1.
- AddDamage(yuiRenderBounds bounds, text source): Add damage.

## Use yuiPersistentCanvasFrameV1

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.
yuiPersistentCanvasFrameV1 sample = yuiPersistentCanvasFrameV1(true, 1, 1, 1, "example")
Console.Log(Text.From(sample.fullRedraw))

```

Save this beside start.yh as project.mech:

```toml
manifestVersion = "2"
package = "api.example.frontend_yui__yuipersistentcanvasframev1"
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--yuiPersistentCanvasFrameV1/usage --backend cpu-oracle -o /tmp/yeho-example
/tmp/yeho-example
```


## yuiPersistentCanvasFrameV1.AddDamage

A complete caller for this public method. Sample inputs are illustrative; native resources require their owning lifecycle.

Verification: type checked

```yh
using frontend.yui

// Add damage.
yuiPersistentCanvasFrameV1 instance = yuiPersistentCanvasFrameV1(true, 1, 1, 1, "example")
yuiRenderBounds argument_bounds = yuiRenderBounds(1, 1, 1, 1)
text argument_source = "argument source"
instance.AddDamage(argument_bounds, argument_source)
Console.Log("AddDamage completed")

```

Save this beside start.yh as project.mech:

```toml
manifestVersion = "2"
package = "api.example.frontend_yui__yuipersistentcanvasframev1"
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--yuiPersistentCanvasFrameV1/method-AddDamage-10 --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-persistent_canvas.yh

AI training permission: https://demonhunterlabs.com/ai-use
