[HTML5] AudioWorklet API implementation.
Rewrote AudioDriverJavaScript to support multiple processor nodes. The old (and deprecated) ScriptProcessorNode when threads are not available, and the new AudioWorklet API when threads are enabled. The new implementation uses two ring buffers and a shared state to communicated with the AudioWorklet thread. The audio.worklet.js JavaScript file is always added to the export template, but only really used (and downloaded) in the thread build.
This commit is contained in:
parent
e2083871eb
commit
179ec3ca0e
8 changed files with 726 additions and 211 deletions
|
|
@ -94,6 +94,9 @@ public:
|
|||
} else if (req[1] == basereq + ".js") {
|
||||
filepath += ".js";
|
||||
ctype = "application/javascript";
|
||||
} else if (req[1] == basereq + ".audio.worklet.js") {
|
||||
filepath += ".audio.worklet.js";
|
||||
ctype = "application/javascript";
|
||||
} else if (req[1] == basereq + ".worker.js") {
|
||||
filepath += ".worker.js";
|
||||
ctype = "application/javascript";
|
||||
|
|
@ -440,6 +443,9 @@ Error EditorExportPlatformJavaScript::export_project(const Ref<EditorExportPrese
|
|||
} else if (file == "godot.worker.js") {
|
||||
file = p_path.get_file().get_basename() + ".worker.js";
|
||||
|
||||
} else if (file == "godot.audio.worklet.js") {
|
||||
file = p_path.get_file().get_basename() + ".audio.worklet.js";
|
||||
|
||||
} else if (file == "godot.wasm") {
|
||||
file = p_path.get_file().get_basename() + ".wasm";
|
||||
}
|
||||
|
|
@ -566,6 +572,7 @@ Error EditorExportPlatformJavaScript::run(const Ref<EditorExportPreset> &p_prese
|
|||
DirAccess::remove_file_or_error(basepath + ".html");
|
||||
DirAccess::remove_file_or_error(basepath + ".js");
|
||||
DirAccess::remove_file_or_error(basepath + ".worker.js");
|
||||
DirAccess::remove_file_or_error(basepath + ".audio.worklet.js");
|
||||
DirAccess::remove_file_or_error(basepath + ".pck");
|
||||
DirAccess::remove_file_or_error(basepath + ".png");
|
||||
DirAccess::remove_file_or_error(basepath + ".wasm");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue