Debug FPS display with rendering backend info

This commit is contained in:
Richard Zink committed 2026-11-05 07:21:37 +01:00
1 parent ee7b76fa6a
commit 07371cc893
8 files changed
+133 -4

No files matched your search

+44
View File
@@ -261,5 +261,49 @@
window.addEventListener(ev, startAudio, true);
});
function gfxInfo() {
try {
var canvas = document.getElementById("glcanvas");
if (!canvas) {
var cs = document.getElementsByTagName("canvas");
canvas = cs.length ? cs[0] : null;
}
if (!canvas) return "";
var gl = canvas.getContext("webgl2");
var version = "WebGL 2";
if (!gl) {
gl = canvas.getContext("webgl");
version = "WebGL 1";
}
if (!gl) return "";
var versionName = gl.getParameter(gl.VERSION) || version;
var dbg = gl.getExtension("WEBGL_debug_renderer_info");
var gpu = dbg ? gl.getParameter(dbg.UNMASKED_RENDERER_WEBGL) || "" : "";
var vendor = dbg ? gl.getParameter(dbg.UNMASKED_VENDOR_WEBGL) || "" : "";
var api = "WebGL";
var all = versionName + " " + gpu + " " + vendor;
if (all.indexOf("Vulkan") >= 0) api = "Vulkan";
else if (all.indexOf("Metal") >= 0) api = "Metal";
else if (all.indexOf("Direct3D") >= 0 || all.indexOf("D3D") >= 0) api = "D3D";
else if (all.indexOf("OpenGL") >= 0) api = "OpenGL";
return versionName + " | " + api + " | " + (gpu || vendor || api);
} catch (e) {
return "";
}
}
function registerGfx(importObject) {
importObject.env.dc_renderer = function () {
pending = new TextEncoder().encode(gfxInfo());
return pending.length;
};
}
var oldRegister = register;
register = function (importObject) {
oldRegister(importObject);
registerGfx(importObject);
};
miniquad_add_plugin({ register_plugin: register, version: 1, name: "dungeoncraft" });
})();