@luma.gl/engine
Version:
3D Engine Components for luma.gl
28 lines • 1.28 kB
JavaScript
// luma.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors
/**
* Extracts a table suitable for `console.table()` from a shader layout to assist in debugging.
* @param layout shader layout
* @param name app should provide the most meaningful name, usually the model or pipeline name / id.
* @returns
*/
export function getDebugTableForShaderLayout(layout, name) {
const table = {};
const header = 'Values'; // '`Shader Layout for ${name}`;
if (layout.attributes.length === 0 && !layout.varyings?.length) {
return { 'No attributes or varyings': { [header]: 'N/A' } };
}
for (const attributeDeclaration of layout.attributes) {
if (attributeDeclaration) {
const glslDeclaration = `${attributeDeclaration.location} ${attributeDeclaration.name}: ${attributeDeclaration.type}`;
table[`in ${glslDeclaration}`] = { [header]: attributeDeclaration.stepMode || 'vertex' };
}
}
for (const varyingDeclaration of layout.varyings || []) {
const glslDeclaration = `${varyingDeclaration.location} ${varyingDeclaration.name}`;
table[`out ${glslDeclaration}`] = { [header]: JSON.stringify(varyingDeclaration) };
}
return table;
}
//# sourceMappingURL=debug-shader-layout.js.map