34 lines
		
	
	
		
			677 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			677 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import { GPU_CHUNK_BYTES } from './Constants.js';
 | |
| 
 | |
| function getFloatLength( floatLength ) {
 | |
| 
 | |
| 	// ensure chunk size alignment (STD140 layout)
 | |
| 
 | |
| 	return floatLength + ( ( GPU_CHUNK_BYTES - ( floatLength % GPU_CHUNK_BYTES ) ) % GPU_CHUNK_BYTES );
 | |
| 
 | |
| }
 | |
| 
 | |
| function getVectorLength( count, vectorLength = 4 ) {
 | |
| 
 | |
| 	const strideLength = getStrideLength( vectorLength );
 | |
| 
 | |
| 	const floatLength = strideLength * count;
 | |
| 
 | |
| 	return getFloatLength( floatLength );
 | |
| 
 | |
| }
 | |
| 
 | |
| function getStrideLength( vectorLength ) {
 | |
| 
 | |
| 	const strideLength = 4;
 | |
| 
 | |
| 	return vectorLength + ( ( strideLength - ( vectorLength % strideLength ) ) % strideLength );
 | |
| 
 | |
| }
 | |
| 
 | |
| export {
 | |
| 	getFloatLength,
 | |
| 	getVectorLength,
 | |
| 	getStrideLength
 | |
| };
 |