EasyUniversal / DocsДокументация · SDK 0.3Подписка Universal ↗
Easy Universal / Справочник SDK

Отрисовка

AngelScript · native runtime · локальная сборка

Native renderer prototype

./bin/EasyUniversal.exe preview ./examples/demo --frames 60 --reload --capture ./build/preview.png

This opens Easy Universal — SDK preview, a normal, resizable window owned
by the host. It shows commands from the worker using the existing render
functions. No game memory, input automation, overlay hijacking or kernel driver
is involved. It is a diagnostic viewport, not the planned package-management UI.

Default preview now stays open until the user closes it. --frames or --seconds
can bound the session for tests; --capture saves its last successful
frame as PNG. The parent directory must already exist. Explicitly choosing an
existing capture filename overwrites that image. Capture failure reports failure.

Coordinate contract

  • screen::width/height are current client dimensions in logical units.
  • One logical unit maps to DPI / 96 physical pixels; text and geometry scale

together. Snapshot resize notifications use viewport.changed.

  • Colors are 0xRRGGBBAA, with alpha blended over an opaque dark background.
  • Text is UTF-8; invalid byte sequences fail rendering. Font: Segoe UI, 14

logical units. There is no font/style selector yet.

  • Circles are outlines; lines use their requested logical thickness.
  • RC11 also supports filled_circle and outline/filled rect. Existing alpha

handling and frame quotas apply; signatures and bounds in EXTENSIONS_RU.md.

  • ui::label is non-interactive text, stacked near the bottom of the viewport.

Large label counts can clip; layout containers/scrolling are not implemented.

  • ui::button/ui::checkbox draw bounded interactive rectangles. Their text is

clipped to the control. See GUI.md for ID, event and state semantics.

  • ui::slider / ui::cycle are additive interactive controls in own preview.
  • Drawing outside the client bitmap is clipped. Minimized windows retain the

last nonzero viewport and do not pause the session.

Verification and limits

tests/renderer.ps1 checks opaque/transparent pixel results, scale=2 rendering,
native window resize/close handling, repeated presentation resource counts,
invalid-command rejection, PNG output and preview lifecycle with reload.

Automated DPI scaling checks are not proof of cross-monitor hardware behavior.
No guarantee of latency, frame rate, exclusive fullscreen or third-party overlay
compatibility is made. Closing the window requests normal worker shutdown;
pending configuration is saved only on a successful unload. If shutdown stalls,
the five-second progress watchdog terminates the worker without a graceful save.

Easy Universal — отдельный проект. Easy External не изменён.