Files
WebGPU-Framework/framework/ShaderInpector.js

67 lines
1.3 KiB
JavaScript
Raw Normal View History

2025-11-17 15:06:39 +01:00
class shaderDebugger{
setup() {
var shaders = document.shaders;
var select = document.querySelector(".selectDebugShader");
for (var i = 0; i < shaders.length; i++) {
var currentShader = shaders[i];
var option = document.createElement("option");
option.innerText = currentShader.path;
option.id = i;
select.appendChild( option );
}
document.querySelector( "#showBuffers" ).addEventListener( "click", async function() {
var select = document.querySelector(".selectDebugShader");
var selectedIndex = select.selectedIndex;
var selectedShader = document.shaders[ selectedIndex ]
const keysArray = Array.from( selectedShader.buffers );
console.log("\n\n\n\n -------------------- Debugging Shader --------------- \n\n\n\n");
console.log( "Shader Path: ", selectedShader.path );
console.log( selectedShader );
for (var i = 0; i < keysArray.length; i++) {
const bindingInfo = selectedShader.bindings.find( b => b.varName === keysArray[i][0] );
if( bindingInfo ) {
if( bindingInfo.type == "storage" ) {
await selectedShader.debugBuffer( keysArray[i][0] );
}
} else {
console.log("this is a Uniform", keysArray, selectedShader.bindings);
}
}
});
}
}
export default shaderDebugger;