Bootstrap execution mode
Bootstrap execution mode
当你在提供文件的情况下启动 scapp[.exe] 时,引导执行模式是有效的.js(通常是run.js)。
引导 JS 代码的主要目的是在创建任何窗口之前配置和运行一些准备代码。
以下是典型run.js代码的内容:
import * as env from "@env";
import * as sys from "@sys";
let startup;
let gfx = "gpu"; // use best GPU backend...
switch(env.PLATFORM) {
case "Windows":
startup = "main-win.js";
break;
case "OSX":
startup = "main-mac.js";
gfx = "opengl"; // force using OpenGL instead of Metal
break;
default:
startup = "main-linux.js";
break;
}
application.start(gfx); // configure graphics backend
const mainWindow = new Window({
url:__DIR__ + "hello.htm",
parameters: {} // parameters to pass
});
mainWindow.on("close",() => application.quit(0));
//... other initialization ...
let quitVal = application.run(); // message pump loop
//... shutdown ...
在这里,我们看到图形后端配置和主消息泵循环。
Bootstrap mode runtime
Bootstrap 阶段在特殊简化环境中运行:
所有与 DOM 相关的函数都不可用 - 没有 Document、Element 和其他相关的类和对象;
没有 fetch() API;
没有 setTimeout 和 setInterval;
没有 post() API;
但是模块@env、@sys和@sciter都在那里,所以引导 JS 可以读取文件、创建 TCP 套接字等。
唯一额外的特定于 bootstrap 的命名空间是具有以下功能的应用程序:
application.start(gfx)
选择要使用的图形图层。GFX是以下之一:“Raster” - 软件光栅化后端;
“direct2d-warp” - 仅限 Windows;Direct2d WARP 后端;
“direct2d” - 仅限 Windows;Direct2D GPU 后端 - Windows 上的默认值;
“OpenGL” - 所有平台;Skia/OpenGL 后端;
“vulkan” - Windows、Linux;Skia/Vulkan 后端;
“metal” - 仅限 MacOS;Skia/金属后端;
“gpu” - 默认值;使用可用的最佳(最快)后端。在某些 [旧] 系统上,现代后端(Metal、Vulkan)可能工作不可靠,因此您可以选择其他后端,例如“opengl”。
application.run():int
此函数将启动UI应用程序的所谓消息泵循环。该函数仅在发出时application.quit()
返回;application.quit(retval: int)
请求退出application.run()
循环。run() 函数将返回该 retval 值。