platform
libraries/kinogaki-platform · 0 open · 8 done
Disciplined and now covered. The pure Cocoa event-translation is hoisted and unit-tested, headless RHI tests exercise texture/blend/scissor + the null backend, the build naming is renamed to kinogaki, and the docstring + swallowed-write notes are fixed. 43 cases / 144 checks green.
Resolved 2026-06-20. Hoisted keyOf/modifiersOf into a pure header EventTranslate.h (no AppKit types) and added translate_test.cpp covering keys + modifier chords.
Resolved 2026-06-20. Added headless RHI tests: sampled texture readback, alpha blend, scissor confinement, and a null-backend createSystem()==nullptr check.
Resolved 2026-06-20. Renamed CMake PRISMAPLATFORM* -> KINOGAKIPLATFORM* and removed the stale rename-era test binaries.
Resolved 2026-06-20. Rewrote the System.h usage example to the real frame API (beginWindow/submit/endFrame), dropping the nonexistent ctx->clear call.
Resolved 2026-06-20. MetalBuffer::update now logs the deliberate out-of-bounds drop and a comment documents the intent.
Where: whole tree
Problem: None. Windowing (ISystem/IWindow), drawing context (IContext), RHI (rhi::Device), and the two buses are cleanly separated interfaces; the Cocoa/Metal specifics are isolated entirely in src/cocoa/*.mm behind internal factory headers (makeCocoaWindow, makeMetalContext), and no public header imports AppKit/Metal (the MetalHandles/drawable handles are deliberately opaque void*). The buses depend on nothing. No god files.
Where: function/method names across the tree
Problem: None worth flagging. Public methods read as verbs (createWindow, processEvents, nextEvent, beginFrame, setPipeline, subscribe, publish, run, undo). The few noun-ish names are correct conventions, not violations: now() (clock accessor), effect()/describe() (Command queries), context()/metalHandles() (accessors, exempt as getters), and the factory createSystem()/fromContext(). EventSynth::feed is a verb. No ambiguous or noun-named action functions found.
Where: all source files
Problem: None. Largest files: src/cocoa/CocoaWindow.mm (286), include/kinogaki/command/CommandBus.h (182), src/events/Bus.cpp (175), src/cocoa/MetalRhi.mm (266). Nothing approaches the 800-line caution line, let alone 1000.