UNPKG

pixi.js

Version:

<p align="center"> <a href="https://pixijs.com" target="_blank" rel="noopener noreferrer"> <img height="150" src="https://files.pixijs.download/branding/pixijs-logo-transparent-dark.svg?v=1" alt="PixiJS logo"> </a> </p> <br/> <p align="center">

42 lines (39 loc) 1.62 kB
import { warn } from '../../../../../utils/logging/warn.mjs'; import { getAttributeInfoFromFormat } from '../../../shared/geometry/utils/getAttributeInfoFromFormat.mjs'; "use strict"; function ensureAttributes(geometry, extractedData) { for (const i in geometry.attributes) { const attribute = geometry.attributes[i]; const attributeData = extractedData[i]; if (attributeData) { attribute.format ?? (attribute.format = attributeData.format); attribute.offset ?? (attribute.offset = attributeData.offset); attribute.instance ?? (attribute.instance = attributeData.instance); } else { warn(`Attribute ${i} is not present in the shader, but is present in the geometry. Unable to infer attribute details.`); } } ensureStartAndStride(geometry); } function ensureStartAndStride(geometry) { const { buffers, attributes } = geometry; const tempStride = {}; const tempStart = {}; for (const j in buffers) { const buffer = buffers[j]; tempStride[buffer.uid] = 0; tempStart[buffer.uid] = 0; } for (const j in attributes) { const attribute = attributes[j]; tempStride[attribute.buffer.uid] += getAttributeInfoFromFormat(attribute.format).stride; } for (const j in attributes) { const attribute = attributes[j]; attribute.stride ?? (attribute.stride = tempStride[attribute.buffer.uid]); attribute.start ?? (attribute.start = tempStart[attribute.buffer.uid]); tempStart[attribute.buffer.uid] += getAttributeInfoFromFormat(attribute.format).stride; } } export { ensureAttributes }; //# sourceMappingURL=ensureAttributes.mjs.map