UNPKG

playcanvas

Version:

PlayCanvas WebGL game engine

34 lines (31 loc) 1.09 kB
import { blueNoiseData } from '../../core/math/blue-noise.js'; import { FILTER_NEAREST, TEXTURETYPE_DEFAULT, ADDRESS_REPEAT, PIXELFORMAT_RGBA8 } from '../../platform/graphics/constants.js'; import { DeviceCache } from '../../platform/graphics/device-cache.js'; import { Texture } from '../../platform/graphics/texture.js'; var createTexture = (device, namePrefix, size, data)=>{ var texture = new Texture(device, { name: "" + namePrefix + size, width: size, height: size, format: PIXELFORMAT_RGBA8, addressU: ADDRESS_REPEAT, addressV: ADDRESS_REPEAT, type: TEXTURETYPE_DEFAULT, magFilter: FILTER_NEAREST, minFilter: FILTER_NEAREST, anisotropy: 1, mipmaps: false }); texture.lock().set(data); texture.unlock(); return texture; }; var deviceCacheBlueNoise = new DeviceCache(); var getBlueNoiseTexture = (device)=>{ return deviceCacheBlueNoise.get(device, ()=>{ var data = blueNoiseData(); var size = Math.sqrt(data.length / 4); return createTexture(device, 'BlueNoise', size, data); }); }; export { getBlueNoiseTexture };