Debug FPS display with rendering backend info
This commit is contained in:
1 parent
ee7b76fa6a
commit
07371cc893
8 files changed
+133
-4
No files matched your search
@@ -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" });
|
||||
})();
|
||||
Reference in new issue
Block a user