UNPKG

paraview-glance

Version:

Web application for Visualizing Scientific and Medical datasets

26 lines (21 loc) 849 B
var copyImage = require('./copyImage.js'); var haveSharedArrayBuffer = typeof window.SharedArrayBuffer === 'function'; /** If SharedArrayBuffer's are available, ensure an itk.Image's buffer is a * SharedArrayBuffer. If SharedArrayBuffer's are not available, return a copy. * */ var imageSharedBufferOrCopy = function imageSharedBufferOrCopy(image) { if (haveSharedArrayBuffer) { if (image.data.buffer instanceof SharedArrayBuffer) { // eslint-disable-line return image; } var sharedBuffer = new SharedArrayBuffer(image.data.buffer.byteLength); // eslint-disable-line var sharedTypedArray = new image.data.constructor(sharedBuffer); sharedTypedArray.set(image.data, 0); image.data = sharedTypedArray; return image; } else { return copyImage(image); } }; export default imageSharedBufferOrCopy;