feat: multi-material overlays, presentation guides, and release prebuilds

Align control/presentation with presentation screen rect and darkness z-order; sync window titles and session window cleanup. Pack Win/Mac/Linux with npmRebuild disabled and release-native-prep for classic-level and sharp.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Ivan Fontosh
2026-08-03 11:28:18 +08:00
parent 61446dacfc
commit 2979d06f1c
41 changed files with 1060 additions and 252 deletions
+10
View File
@@ -47,6 +47,7 @@ import {
createEditorWindowDeferred,
createWindows,
focusEditorWindow,
getPresentationContentSize,
getSceneDescriptionContent,
isMultiWindowOpen,
markAppQuitting,
@@ -61,6 +62,7 @@ import {
closeSceneEditorWindow,
closeNpcsWindow,
sendToAppWindows,
syncAllWindowChromeTitles,
togglePresentationFullscreen,
waitForEditorWindowReady,
warmNpcsEditorWindow,
@@ -414,6 +416,10 @@ async function main() {
closeMultiWindow();
return { ok: true };
});
registerHandler(ipcChannels.windows.syncChromeTitles, ({ localeTag }) => {
syncAllWindowChromeTitles(localeTag);
return { ok: true };
});
registerHandler(ipcChannels.windows.togglePresentationFullscreen, () => {
const isFullScreen = togglePresentationFullscreen();
return { ok: true, isFullScreen };
@@ -421,6 +427,10 @@ async function main() {
registerHandler(ipcChannels.windows.getMultiWindowState, () => {
return { open: isMultiWindowOpen() };
});
registerHandler(ipcChannels.windows.getPresentationContentSize, () => {
const size = getPresentationContentSize();
return size ?? { width: null, height: null };
});
registerHandler(ipcChannels.windows.openSceneDescription, ({ html }) => {
openSceneDescriptionWindow(html);
return { ok: true };