Skip to content

Make Pencuil view-build update order configurable #449

Description

@botoddly

Problem

UsePencuil exposes order and inputOrder, but neither controls when IPencuilView.Build runs among IUpdatable services:

  • order is passed only to PencuilRenderer and controls render ordering.
  • inputOrder controls mouse, keyboard, and text-input subscription priority.
  • PencilSystem calls IPencuilView.Build during its IUpdatable.Update, but it does not implement IOrderable, so its update order is always 0.

Pencuil is immediate-mode: button and field actions are produced during Build. Applications therefore cannot explicitly place UI action processing before or after simulation and presentation updates. The generic name order also makes the distinction easy to miss. This is longstanding behavior, not a regression.

Proposed direction

Expose an explicit Pencuil update/build order and apply it to PencilSystem through IOrderable. Keep render order and input subscription priority independently configurable, and clarify their names or API documentation.

Acceptance criteria

  • Callers can explicitly order IPencuilView.Build relative to other IUpdatable services.
  • Pencuil render order remains independently configurable.
  • Pencuil input subscription priority remains independently configurable.
  • The API or documentation clearly distinguishes build/update, render, and input ordering.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions