Skip to content

test(editor): verify the complete scale layout and input matrix #36

Closed

Description

@FLwolfy

Verified on branch / awaiting merge

Production implementation: dd5979c613b0fe8ebd9f7026f25001ceee9f8cee. Delivered head: dbae93e8f211d45a69cdffdb6afa3a33a0af0fa5; the subsequent diff contains documentation/acceptance evidence only. Exact-head CI: Engine CI and NuGet dependency graph passed; all six checks on this exact head are successful. All applicable acceptance conditions for this issue are verified; unavailable physical/manual device checks are explicitly scoped, not reported passed.

Owner: Real ImGui public input/geometry and matched content review. Implementation commits: d7f383f0, e3f02ebe, bc88dc04.

Evidence: complete report, exact-head delivery attachment, portable test-case/raw-measurement/requirement indexes linked by the report. Specific proof: Visual: independent Zoom/DPI/size matrix and occlusion/text/state cases; Final current and retained original 6000-preparation-frame capture; Physical monitor/IME/manual Mac explicitly unexecuted.

Commands: official tests/Invoke-EditorUiAcceptance.ps1 Contracts/Workflows/Visual/Lifecycle/Products with SDK-selected independent outputs; complete source/entry preparation; formal InnoEngine.Build scripts --ide for the three companions; tests/Invoke-WikiChecks.ps1; controlled public performance fixtures where applicable. The report records original command owners, TRX/binlogs, negative tests, failures, skips, input hashes and device limits.

Profiles overlap; do not sum their pass counts into a distinct-test claim. Windows-only sharing fixtures and Unix-only filesystem fixtures are scoped to the executing host. Real native contexts/simulated display metrics and hidden product feature journeys are not a claim of physical display, OS IME or manual Mac testing. No BGCS/vendor/package/generated-binding modification, parallel Core system, test hook, IVT or private reflection was used.

Keep this issue Open. PR #26 includes an individual Fixes #36 and will close it only when the user merges to master. No automatic merge or premature master-resolution claim.

Original defect, ownership and accepted work

The following baseline observations describe the issue as opened. The verification above supersedes intermediate pending checkpoints; original failed/negative logs remain preserved. Acceptance checkboxes are checked only after the exact delivery-head verification completes.

Parent and original requirement

Parent: #27. Work item E09 from the approved Editor UI closure plan and its original implementation/acceptance requirements.

Baseline facts and risks at issue creation

Some genuine native scale/layout tests and a FlappyBird screenshot exist; they do not cover the original complete matrix or matching before/after visual evidence.

Owner and dependency boundary

Existing native Editor fixtures and public input contracts; domain views retain their presentation ownership.

Dependencies: #30, #31, #32, #33, #34, #35.

Implementation

  • Run Zoom 75/85/90/100/110/125/150 percent with DPI 100/125/150/200 percent: at least 28 combinations.
  • Cover 1280x720 and 1920x1080, narrow Inspector, small/floating/docked windows.
  • Use real ImGui context and public native Host input; distinguish simulated metrics from physical display checks.
  • Capture matching layout/data/scale/size baseline and final screenshots.

Acceptance

  • Long labels, Unicode/Chinese, text/clipboard, mixed/read-only/Missing/error/busy/empty states.
  • Popup/modal/floating occlusion, one scroll owner and bounded combos.
  • Same-frame movement/click/double-click/disclosure/overlay and keyboard focus/shortcuts.
  • State remains understandable without color alone.
  • Record automated geometry separately from human visual conclusions and unavailable devices.

Failure and lifecycle constraints

Preserve diagnostics, cancellation, atomic rollback/publication, Missing recovery and generation retirement. Reuse Core Events, Identity, IO, Serialization and History. Do not modify BGCS/vendor/generated code or add global/implicit imports, compatibility paths, IVT or private reflection.

Evidence and closure

Commits, exact commands, logs/TRX/data and remaining limits will be added during implementation. Until all acceptance passes this issue remains open. After verification mark Verified on branch / awaiting merge; add Fixes #36 with this issue's actual number to PR #26 only when complete. Close on merge to master, not on branch implementation.

Activity

  1. FLwolfy commented on Oct 27, 2026

    @FLwolfy
    MemberAuthor

    The unified Visual profile completed 135 test cases successfully on the current working candidate, including real ImGui contexts and public input. The independent FlappyBird D3D12 product also verified Settings cancellation/reopen and Play/stop without losing Browser contents. Physical multi-monitor DPI and the full matched original/current screenshot set remain separate, unverified requirements; simulated metric combinations do not establish those results.

  2. FLwolfy commented on Oct 27, 2026

    @FLwolfy
    MemberAuthor

    Final product smoke exposed an acceptance configuration error: the Editor boot log reports the actual API (Direct3D11), while my run supplied BGFX as its expected pattern. The process itself completed 300 frames and full teardown, but this run is retained as failed acceptance and will be rerun with explicit platform-owned expectations. The new unified Products profile also has the same unsuitable default; I will require an explicit expected initialization pattern rather than embedding a backend assumption or weakening the smoke assertions.

  3. FLwolfy commented on Oct 27, 2026

    @FLwolfy
    MemberAuthor

    Corrected product expectations have now passed all six Windows Editor combinations: Debug/Release × Direct3D11/Direct3D12/Vulkan, 300 frames each, sRGB enabled, process exit 0 and complete adapter teardown. Logs are products/stable-<configuration>-<api>.log and matching .boot.log under the acceptance evidence owner. Commit af6eac31 removes the unified Products profile's backend-specific default assertion and requires an explicit product expectation. This is rendering smoke evidence, not a substitute for the remaining complete visual/input matrix.

  4. FLwolfy commented on Oct 28, 2026

    @FLwolfy
    MemberAuthor

    The macOS ARM64 job for 660962a reports seven failures in native input acceptance (Settings search/selection, primary-modifier tree activation and visible-range navigation). The fixtures explicitly compose a Control keyboard policy, but their native ImGui contexts retain the runner-dependent macOS keyboard convention. I am checking the native input contract and will align fixture composition with its declared keyboard policy, then verify the actual input paths and rerun ARM64 CI. This is not a reason to disable macOS acceptance or change BGCS, platform dependencies, or production failure semantics. Issue remains open pending evidence.

  5. FLwolfy commented on Oct 28, 2026

    @FLwolfy
    MemberAuthor

    Source inspection found an additional production boundary issue, beyond fixture composition: the installed Dear ImGui swaps Control/Super inside AddKeyAnalogEvent when ConfigMacOSXBehaviors is enabled. EditorUiInput and list selection currently interpret those normalized flags as physical Core modifiers, while the macOS composition correctly declares Super as primary. I will normalize the presentation snapshot back to the explicit Core modifier meaning, reuse it for list selection, and exercise both native keyboard modes with real input. Native text controls keep their own conventions; no OS detection or platform references are added to shared Editor code.

  6. FLwolfy commented on Oct 28, 2026

    @FLwolfy
    MemberAuthor

    Committed the native modifier and fixture correction in f7dce89. The complete SDK-built PlayMode/native suite passes 141 cases, including four real-input Control/Super × native-mode combinations; Workflows passes 305 and Visual passes 136. The shared presentation layer uses the current native context configuration, not OS detection or a platform project reference. Mac ARM64 CI for this exact commit is running at https://github.com/Wolfiora/InnoEngine/actions/runs/40653896090 . This verifies the focused correction, not the entire E09 screenshot/device matrix; issue remains open.

  7. FLwolfy commented on Oct 28, 2026

    @FLwolfy
    MemberAuthor

    The current continuation expands the real Hierarchy and both Browser input workflows across the existing 56 simulated display combinations (seven Zoom values × four framebuffer scales × two logical window sizes). These are public native-input fixtures with complete range/focus/text-exclusivity assertions, not physical-monitor certification. Test-owned panel dimensions now stay inside each logical display. The existing generic form/docking cases remain separate; no production API or UI behavior was added for testing. Final TRX and exact candidate evidence are pending.

  8. FLwolfy commented on Oct 28, 2026

    @FLwolfy
    MemberAuthor

    Deeper visual-matrix review found that the fixture helper changed managed zoom metrics without reapplying the native layout style. The production Host already prepares style before NewFrame; this is an acceptance-fixture gap, not a confirmed production regression. The next fixture candidate will apply the public SetupStyle contract before frame creation, replay actual Console search/keyboard workflows at all 28 scale combinations and both logical sizes, and expand actual Shader canvas resize coverage to independent zoom/density. Current frozen-candidate verification is preserved separately; no partial result is being labelled complete.

  9. FLwolfy commented on Oct 29, 2026

    @FLwolfy
    MemberAuthor

    The final orchestration review found that Invoke-EditorSmoke.ps1 did not accept the hidden-window mode already used by the full workflow journey. Add an explicit opt-in HiddenWindow switch and pass it from unattended UI Products acceptance; ordinary renderer CI retains its existing visible-window behavior. Hidden initialization/frame checks are reported separately from physical-display/pixel-level acceptance. This prevents unattended runs from taking over the user's desktop without introducing computer use or a production API.

  10. FLwolfy commented on Oct 29, 2026

    @FLwolfy
    MemberAuthor

    The test-owned public presentation/rendering SPI collector now records the historical product's actual native UI triangles, CPU font atlas and both real GPU viewport textures. The replay has zero unavailable texture commands and zero unexecuted draw callbacks. Readback is scheduled through the ordinary render graph and consumed at the following frame safety points; no BGCS, native source or generated binding was changed. The diagnostic color targets explicitly request CopySource in both producer compositions. This remains a software replay of actual submitted UI data/pixels, not a final backbuffer or physical-display screenshot. The current producer capture and normal shutdown are being verified; early invalid-phase/underprepared/time-limited diagnostic attempts remain retained and do not count as passes.

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions