Typed .crn and tooling
The language, parser, semantic model, diagnostics, source generator, generated application paths, language server, Visual Studio integration, and preview infrastructure are integrated and tested.
Cerneala already combines ordinary application UI and complete 2D game rendering in one retained tree. The work ahead is about making SDL3 GPU the primary backend, evolving Cerberus without breaking retained ownership, and turning a source-first framework into something other developers can adopt without archaeology.
This records direction and maturity, not a release calendar. A type existing is not the same as a realistic scenario being conformant.
.crn and toolingThe language, parser, semantic model, diagnostics, source generator, generated application paths, language server, Visual Studio integration, and preview infrastructure are integrated and tested.
Typed state, logical and visual trees, Relay, invalidation, measure and arrange, retained drawing commands, input, focus, commands, resources, Aspect, Motion, Prism, diagnostics, and automation run under one root.
The game view is a retained ContentControl. It supports continuous or on-demand scheduling, retained drawing work, normal UI composition, and the complete implemented 2D drawing command surface.
Native desktop hosting, input, an SDL3 GPU drawing backend, Prism execution, cross-platform native smokes, and WindowsDX differential and pixel-conformance coverage exist in the repository.
Move repository defaults, samples, native behavior, drawing, and Prism toward SDL3. MonoGame remains available during the transition, but it will be discontinued gradually after compatibility and removal policy are documented.
Renderer changes must not steal ownership from the UI runtime. Unchanged elements keep their command reuse, batching preserves visible order, resources release deterministically, and backend disagreement is resolved against the semantic contract.
The checked-in plans cover the compiler and encoder core, frame scheduling and upload arenas, retained compiled packets and GPU geometry, and multi-texture material pages. Planned does not mean delivered.
Package boundaries, versioning, project templates, backend defaults, installation and upgrade instructions, a maintained minimal sample, and a preview compatibility policy still need explicit decisions and verified implementation.
This is not a foreign engine window embedded beside the interface. The surface is a retained control owned by the same application model as buttons, menus, inspectors, HUDs, dialogs, and ordinary desktop views.
Use one retained tree for game rendering and application UI instead of forcing a realtime loop through a desktop-framework workaround.
ContentControl.SDL3 owns the native direction. Cerberus owns SDL3 GPU batching and submission work without becoming a second UI runtime.
DrawingContext and DrawCommandList remain the drawing contract.IDrawingBackend remains the backend boundary.WindowsDX, MonoGame, and SDL3 GPU paths are present. SDL3 GPU has completed its initial end-to-end backend plan, but some samples still default to MonoGame. Documentation must say that until the defaults actually move.
There is no fake removal date. The adapter stays available during transition. Compatibility expectations and the removal policy must be documented before deletion.
Cerneala has a lot of controls and systems. Their maturity is mixed. A familiar type name proves only that the type exists, not that every WPF-shaped scenario or every native platform path is complete.
Internal semantics and automation exist, but native accessibility adapters are not complete across supported platforms.
The full text editing stack still needs platform behavior, shaping, selection, clipboard, accessibility, and lifecycle evidence.
Platform-backed advanced input scenarios have uneven maturity and must not be presented as complete from metadata alone.
The repository is still source-first. Normal onboarding needs justified package boundaries, templates, a minimal sample, and maintained installation instructions.
Backend disagreement establishes a mismatch, not truth. The semantic contract, deterministic scenes, and platform-specific evidence decide which implementation is wrong.
The direction is clear, but the public transition contract is not versioned yet. It must exist before the adapter is removed.
The intended behavior and architectural owner are explicit. A convenient implementation does not get to invent product semantics.
Focused tests and the original runtime scenario prove the relevant layout, input, lifecycle, rendering, or language path.
Applicable native smokes, visual diffs, performance measurements, resource checks, and backend comparisons pass.
Affected and full suites pass, API changes are reviewed, canonical documentation is current, and remaining uncertainty is recorded.