(bufferGroup)
| 1605 | ////////////////////////////////////////////// |
| 1606 | |
| 1607 | _getUniformBufferFromPool(bufferGroup) { |
| 1608 | // Try to get a buffer from the pool |
| 1609 | if (bufferGroup.bufferPool.length > 0) { |
| 1610 | const bufferInfo = bufferGroup.bufferPool.pop(); |
| 1611 | bufferGroup.buffersInUse.add(bufferInfo); |
| 1612 | return bufferInfo; |
| 1613 | } |
| 1614 | |
| 1615 | // No buffers available, create a new one |
| 1616 | const newBuffer = this.device.createBuffer({ |
| 1617 | size: bufferGroup.size, |
| 1618 | usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST, |
| 1619 | }); |
| 1620 | const newData = new Float32Array(bufferGroup.size / 4); |
| 1621 | const newDataView = new DataView(newData.buffer); |
| 1622 | const bufferInfo = { |
| 1623 | buffer: newBuffer, |
| 1624 | data: newData, |
| 1625 | dataView: newDataView |
| 1626 | }; |
| 1627 | |
| 1628 | bufferGroup.buffersInUse.add(bufferInfo); |
| 1629 | return bufferInfo; |
| 1630 | } |
| 1631 | |
| 1632 | _getDynamicUniformBufferFromPool(bufferGroup) { |
| 1633 | // |
no test coverage detected