Improve addConsoleLine

This commit is contained in:
gingerBill
2022-05-21 16:00:36 +01:00
parent d84d2f85e8
commit f3d225ca4f
+37 -25
View File
@@ -1172,6 +1172,9 @@ class WebGLInterface {
};
function newlineCount(str, substr) {
return (str.match(/\n/g) || []).length;
};
function odinSetupDefaultImports(wasmMemoryInterface, consoleElement) {
const MAX_INFO_CONSOLE_LINES = 512;
@@ -1182,25 +1185,34 @@ function odinSetupDefaultImports(wasmMemoryInterface, consoleElement) {
if (!line) {
return;
}
if (!line.includes("\n")) {
// Print to console
if (line == "\n") {
console.log(currentLine);
currentLine = "";
} else if (!line.includes("\n")) {
currentLine = currentLine.concat(line);
} else {
let printLast = line.endsWith("\n");
let lines = line.split("\n");
for (let i = 0; i < lines.length-1; i++) {
let theLine = lines[i].trim("\r");
currentLine = currentLine.concat(line);
console.log(currentLine);
currentLine = "";
let printLast = lines.length > 1 && line.endsWith("\n");
console.log(currentLine.concat(lines[0]));
currentLine = "";
for (let i = 1; i < lines.length-1; i++) {
console.log(lines[i]);
}
console.log(lines);
let last = lines[lines.length-1];
if (printLast) {
console.log(lines[lines.length-1]);
console.log(last);
} else {
currentLine = currentLine.concat(lines[lines.length-1]);
currentLine = last;
}
}
// HTML based console
if (!consoleElement) {
return;
}
if (line.endsWith("\n")) {
line = line.substring(0, line.length-1);
} else if (infoConsoleLines.length > 0) {
@@ -1212,19 +1224,18 @@ function odinSetupDefaultImports(wasmMemoryInterface, consoleElement) {
if (infoConsoleLines.length > MAX_INFO_CONSOLE_LINES) {
infoConsoleLines.shift();
}
if (consoleElement) {
let data = "";
for (let i = 0; i < infoConsoleLines.length; i++) {
if (i != 0) {
data = data.concat("\n");
}
data = data.concat(infoConsoleLines[i]);
}
let info = consoleElement;
info.innerHTML = data;
info.scrollTop = info.scrollHeight;
let data = "";
for (let i = 0; i < infoConsoleLines.length; i++) {
if (i != 0) {
data = data.concat("\n");
}
data = data.concat(infoConsoleLines[i]);
}
let info = consoleElement;
info.innerHTML = data;
info.scrollTop = info.scrollHeight;
};
let event_temp_data = {};
@@ -1369,7 +1380,6 @@ function odinSetupDefaultImports(wasmMemoryInterface, consoleElement) {
event_temp_data.id_len = id_len;
event_temp_data.event = e;
event_temp_data.name_code = name_code;
// console.log(e);
wasmMemoryInterface.exports.odin_dom_do_event_callback(data, callback, odin_ctx);
};
wasmMemoryInterface.listenerMap[{data: data, callback: callback}] = listener;
@@ -1403,7 +1413,6 @@ function odinSetupDefaultImports(wasmMemoryInterface, consoleElement) {
event_temp_data.id_len = 0;
event_temp_data.event = e;
event_temp_data.name_code = name_code;
// console.log(e);
wasmMemoryInterface.exports.odin_dom_do_event_callback(data, callback, odin_ctx);
};
wasmMemoryInterface.listenerMap[{data: data, callback: callback}] = listener;
@@ -1414,10 +1423,13 @@ function odinSetupDefaultImports(wasmMemoryInterface, consoleElement) {
remove_window_event_listener: (name_ptr, name_len, data, callback) => {
let name = wasmMemoryInterface.loadString(name_ptr, name_len);
let element = window;
let listener = wasmMemoryInterface.listenerMap[{data: data, callback: callback}];
if (listener == undefined) {
let key = {data: data, callback: callback};
let listener = wasmMemoryInterface.listenerMap[key];
if (!listener) {
return false;
}
wasmMemoryInterface.listenerMap[key] = undefined;
element.removeEventListener(name, listener);
return true;
},