Тема
NovaSurface
Контракт surface, render order и создание nodes.
Практическая схема
- Документация: NovaCore.
- Раздел: Справочник.
- Тема страницы:
NovaSurface. - Переключатель TypeScript / DSL находится в панели навигации; вкладка
Кодв примере показывает файлы выбранного подхода.
surface · @endge/nova
NovaSurface
Logical render boundary: хранит node graph, retained frame, culling stats и composition order. Физическим canvas/backend владеет NovaApp.
class NovaSurface<E extends EventList> extends NovaNode<E>Создание
| Поле | Тип | Описание |
|---|---|---|
app.createSurface(name) | NovaSurface | Создает logical surface поверх app-level backend. |
createNode(NodeClass) | NovaNode | Создает node, добавляет ее в surface graph и монтирует subtree. |
Render policy
| Поле | Тип | Описание |
|---|---|---|
retained frame | NovaRenderFrame | Surface компилируется в retained frame и replay-ится через app-level backend. |
frame dirty | NovaRenderCompileStats | Dirty-политика основана на retained graph и явных dirty reasons. |
renderCullingMode | 'off' | 'bounds''off' | Отсекает nodes вне bounds surface. |
Stats
| Поле | Тип | Описание |
|---|---|---|
renderMetrics | NovaRenderMetrics | Commands, batches, timings, draw calls и upload counters последнего frame. |
renderCompileStats | NovaRenderCompileStats | Сколько nodes rebuilt и cached. |
renderCullingStats | NovaRenderCullingStats | Сколько nodes tested и culled. |
Как применять
Используйте страницу как короткую рабочую заметку: сначала определите границу ответственности, затем откройте пример и сравните TypeScript-реализацию с DSL-описанием. Runtime-код остается в Nova-слое, а Vue отвечает только за mount, layout shell и cleanup.