(drawlist: Uint8Array)
| 665 | }, |
| 666 | |
| 667 | requestFrame(drawlist: Uint8Array): Promise<void> { |
| 668 | if (disposed) return Promise.reject(new Error("NodeBackend(inline): disposed")); |
| 669 | if (fatal !== null) return Promise.reject(fatal); |
| 670 | if (stopRequested) return Promise.reject(new Error("NodeBackend(inline): stopped")); |
| 671 | if (!started) { |
| 672 | return backend.start().then(() => backend.requestFrame(drawlist)); |
| 673 | } |
| 674 | if (native === null || engineId === null) { |
| 675 | return Promise.reject(new Error("NodeBackend(inline): engine not started")); |
| 676 | } |
| 677 | |
| 678 | try { |
| 679 | const frameSeq = nextFrameSeq++; |
| 680 | const fp = frameAudit.enabled ? drawlistFingerprint(drawlist) : null; |
| 681 | maybeDumpDrawlistBytes("backend-inline", "requestFrame", frameSeq, drawlist); |
| 682 | if (fp !== null) { |
| 683 | frameAudit.emit("frame.submitted", { |
| 684 | frameSeq, |
| 685 | submitPath: "requestFrame", |
| 686 | transport: "inline-v1", |
| 687 | ...fp, |
| 688 | }); |
| 689 | frameAudit.emit("frame.submit.payload", { |
| 690 | frameSeq, |
| 691 | transport: "inline-v1", |
| 692 | ...fp, |
| 693 | }); |
| 694 | } |
| 695 | const submitRc = native.engineSubmitDrawlist(engineId, drawlist); |
| 696 | if (frameAudit.enabled) { |
| 697 | frameAudit.emit("frame.submit.result", { |
| 698 | frameSeq, |
| 699 | submitResult: submitRc, |
| 700 | }); |
| 701 | } |
| 702 | if (submitRc < 0) { |
| 703 | if (frameAudit.enabled) { |
| 704 | frameAudit.emit("frame.completed", { |
| 705 | frameSeq, |
| 706 | completedResult: submitRc, |
| 707 | }); |
| 708 | } |
| 709 | return Promise.reject( |
| 710 | new ZrUiError( |
| 711 | "ZRUI_BACKEND_ERROR", |
| 712 | `engine_submit_drawlist failed: code=${String(submitRc)}`, |
| 713 | ), |
| 714 | ); |
| 715 | } |
| 716 | if (frameAudit.enabled) { |
| 717 | frameAudit.emit("frame.accepted", { frameSeq }); |
| 718 | } |
| 719 | const presentRc = native.enginePresent(engineId); |
| 720 | if (frameAudit.enabled) { |
| 721 | frameAudit.emit("frame.present.result", { |
| 722 | frameSeq, |
| 723 | presentResult: presentRc, |
| 724 | }); |
nothing calls this directly
no test coverage detected