Core and the app · crate

kinogaki-harness

Coreused by tests alone

Studio's test harness: the real editor, its event routing and its background work, driven offscreen with only the packages a test names.

Repository
Core and the app (kinogaki/studio-core)
Folder
studio/core/harness
Source
11 files, 1,586 lines
Tests
0 files, 0 lines
depends onused by tests alonedependencies for tests alone are listed below, not drawn

What it is

Studio's test harness: the real editor, its event routing and its background work, driven offscreen with only the packages a test names. It is read through the SDK's host interface and plain values, never through the editor's parts, so a test checks what a user or a package would see; core's tests and every plugin's use it.

One selection a process. Installed packages are the process's (core installs a package once and never unloads it). Harness::start in a process made for its selection returns the harness; in any other it runs the calling test again in a child process with that selection, waits for it, and returns None, so the test returns at once. Children run one at a time.

Nothing escapes. The settings live in a folder of the harness's own under the system's temporary folder; no file dialog or window shows (dialogs wait for Harness::answer_dialog); the system clipboard is the harness's own (Harness::clipboard); the GPU is used only when a test grabs a frame's pixels.

Depends on

CrateRepositoryAsWhat it is
kinogaki-editorCore and the appnormalKinogaki Studio's editor: the document and everything the window shows of it, as parts one frame borrows one by one.
kinogaki-networkCore and the appnormalStudio's core networks (design: core-owned networks; "Cooking DAG for nodes is studio core").
kinogaki-pnglib-imagenormalPNG images (ISO/IEC 15948, W3C PNG Third Edition) over kinogaki_deflate.
kinogaki-render-apiSDKnormalKinogaki's render interface: what a host (Studio) sends a render engine and what comes back, with no GPU or OS API.
kinogaki-spansCore and the appnormalTimed spans of Studio's own work: where a frame, a cook or a render sync spends its time, without an instrumented build.
kinogaki-studio-apiSDKnormalKinogaki Studio's headless plugin API.
kinogaki-studio-api-testingSDKnormalThe SDK's test support (a dev-dependency only): assert_refused for admission tests, read_hostile for a format's tests of hostile files, format for its scratch folders and round trips, workers as a host installs them, with wgpu an ...
kinogaki-studio-ui-apiSDKnormalKinogaki Studio's UI layer for plugins.
kinogaki-testkitCore and the appnormalKinogaki Studio's core testkit: toy packages written against the SDK alone, so core is tested with no real plugin.
kinogaki-uilib-uinormalKinogaki UI: the immediate-mode UI framework Kinogaki applications are built on.
kinogaki-ui-wgpulib-uinormalkinogaki-ui drawn with wgpu.

Third-party

None.

Used by

CrateRepositoryAsWhat it is
kinogaki-compComptestsComp as an SDK package (kinogaki.comp): what fills Studio's Comp context (kinogaki.core.comp, core declares it, inside a Render Output object).
kinogaki-editorCore and the apptestsKinogaki Studio's editor: the document and everything the window shows of it, as parts one frame borrows one by one.
kinogaki-layoutLayouttestsThe Layout context: a page on the 2D canvas and the pieces arranged on it, images and text, back to front in the order their nodes run.
kinogaki-meshMeshtestsThe Mesh plugin: polygon modelling, Maya's and Houdini's toolset on core's editing API (plugins/mesh/PLAN.md holds the inventory and its groups).
kinogaki-spectreSpectretestsSpectre, the spectral path tracer, as a Kinogaki Studio render plugin.
kinogaki-workflowsWorkflowstestsTests alone: tests/workflows drives what a person does across the plugins the app ships, through the real editor offscreen.

Modules

Public types and traits

At the crate root

Structs HarnessRepaintsRowSelection

Re-exported from other crates

From kinogaki_editor drive::Askingdrive::Canvasdrive::Consoledrive::ConsoleLinedrive::CookWorkdrive::Displaydrive::DrawnPiecedrive::LevelRowdrive::Lookingdrive::Markeddrive::MarkingMenudrive::MenuItemdrive::NetworkPanedrive::Outlinerdrive::Overdrive::PaneNodedrive::Placementdrive::SheetReadsdrive::Shelfdrive::ShelfTiledrive::Spreadsheetdrive::StatusLinedrive::TabBrowserdrive::Tiledrive::Timelinedrive::ViewWorkdrive::Work

From kinogaki_studio_api ElementKind

From kinogaki_ui EventKeyModifiersPointerButtonPos2RectVec2pos2vec2

By module: 2 public types and traits in 2 modules

latency Report

repaints Repaints

Besides these, 11 public functions at module level.