From e24b8a8cef001e1c7e50ab12b739486f59b2a850 Mon Sep 17 00:00:00 2001 From: Berke Güzel Date: Tue, 13 Oct 2026 15:43:04 +0300 Subject: Let yasl_app_desc describe its initial window A new optional yasl_app_desc.window spec makes yasl_run() create that toplevel and request its first frame before init(), which is now optional too. If creation fails, yasl_run() closes the display and returns an error without calling init(). Co-Authored-By: Claude Opus 5.5 --- docs/guide.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'docs/guide.md') diff --git a/docs/guide.md b/docs/guide.md index f195e5e..a65972f 100644 --- a/docs/guide.md +++ b/docs/guide.md @@ -40,8 +40,11 @@ it advertises CSD. Check each result and provide an application fallback. ## Window creation and callbacks All examples include `` and call `yasl_run()` with a -`yasl_app_desc`. Create surfaces in `init`, handle `YASL_EVENT_*` notifications -in `event`, and render into `frame->cpu.pixels` in `frame`. Present with +`yasl_app_desc`. Set `window` to a `yasl_window_spec` for a single toplevel, +which the runner creates before `init` with its first frame requested; `yasl_run()` returns an +error if creation fails. Create further surfaces in the optional `init`, handle +`YASL_EVENT_*` notifications in `event`, and render into `frame->cpu.pixels` in +`frame`. Present with `yasl_frame_present_cpu(frame, NULL, 0)` and return `YASL_APP_QUIT` from an event handler to exit. The runner handles dispatch, input polling, resize redraws, and remaining surface/display cleanup. Display quit stops the runner; connection -- cgit v1.2.3