Тема
Порядок отрисовки
Порядок обхода nodes, surfaces и schema-элементов в пользовательской модели.
Практическая схема
- Документация: NovaCore.
- Раздел: Отрисовка.
- Тема страницы: Порядок отрисовки.
- Переключатель TypeScript / DSL находится в панели навигации; вкладка
Кодв примере показывает файлы выбранного подхода.
Исполняемый примерRender pipelineCompile, frame и replay phases.
import { Nova, NovaNode, type NovaSchema } from '@endge/nova'
// Документационный сценарий: nova-render-pipeline
class ExampleNode extends NovaNode<Record<string, Event>> {
render(): void {
const schema: NovaSchema = [
{
type: 'rect',
x: 24,
y: 24,
width: this.width - 48,
height: this.height - 48,
styles: { background: '#0d2745' },
},
{
type: 'text',
x: 44,
y: 44,
width: this.width - 88,
height: 32,
text: 'Render pipeline',
styles: { color: '#e8f5ff' },
},
]
this.renderer.schema(schema)
this.setRenderBoundsFromSchema(schema)
}
}
export function mountExample(canvas: HTMLCanvasElement) {
const app = Nova.createApp({
target: canvas,
size: { width: canvas.clientWidth, height: canvas.clientHeight, maxDpr: 2 },
scheduler: { loop: false },
})
const surface = app.surface({ id: 'render-pipeline' })
surface.createNode(ExampleNode)
return () => app.destroy()
}renderer · @endge/nova
NovaRenderContext
Recorder/context API для node render phase. Backend instance не является public root API.
interface NovaRenderContextSchema methods
| Поле | Тип | Описание |
|---|---|---|
schema(schema) | void | Рисует schema в текущем порядке. |
schemaBatched(schema) | void | Рисует schema с backend-specific batching. |
schemaOrdered(schema) | void | Сохраняет визуальный порядок primitives. |
Drawing state
| Поле | Тип | Описание |
|---|---|---|
save() / restore() | void | Управляет graphics state. |
clip(...) / clearClip() | void | Устанавливает и снимает clip region. |
setTransform(matrix) | void | Применяет node matrix перед render. |
Primitives
| Поле | Тип | Описание |
|---|---|---|
rect / border / line | void | Базовая геометрия UI и timelines. |
circle / polygon | void | Маркеры, зоны и схемы. |
text / icon | void | Labels, markdown chunks и icon textures. |
markState / restoreState | NovaRendererStateMark | Scoped boundary для clip/transform состояния компонента. |
Как применять
Используйте страницу как короткую рабочую заметку: сначала определите границу ответственности, затем откройте пример и сравните TypeScript-реализацию с DSL-описанием. Runtime-код остается в Nova-слое, а Vue отвечает только за mount, layout shell и cleanup.