🚀 Big News:Socket Has Acquired Secure Annex.Learn More
Socket
Book a DemoSign in
Socket

webgltexture-loader-ndarray

Package Overview
Dependencies
Maintainers
1
Versions
28
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

webgltexture-loader-ndarray - npm Package Compare versions

Comparing version
0.6.0
to
0.9.0-beta.090a4900
+2
-2
lib/drawNDArrayTexture.js

@@ -46,3 +46,3 @@ "use strict";

exports.default = function (gl, texture, array) {
exports.default = function (gl, texture, array, floatSupported) {
var dtype = array.dtype;

@@ -89,3 +89,3 @@ var shape = array.shape.slice();

}
if (type === gl.FLOAT && !gl.getExtension("OES_texture_float")) {
if (type === gl.FLOAT && !floatSupported) {
type = gl.UNSIGNED_BYTE;

@@ -92,0 +92,0 @@ packed = false;

@@ -1,1 +0,1 @@

{"version":3,"sources":["../src/drawNDArrayTexture.js"],"names":["Buffer","global","isBuffer","b","isPacked","shape","stride","length","convertFloatToUint8","out","inp","muls","gl","texture","array","dtype","slice","maxSize","getParameter","MAX_TEXTURE_SIZE","Error","packed","type","FLOAT","UNSIGNED_BYTE","format","LUMINANCE","data","offset","ALPHA","LUMINANCE_ALPHA","RGB","RGBA","getExtension","buffer","buf_store","size","malloc","buf_array","assign","subarray","texImage2D","TEXTURE_2D","free"],"mappings":"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","file":"drawNDArrayTexture.js","sourcesContent":["//@flow\nimport type { NDArray } from \"ndarray\";\nimport ndarray from \"ndarray\";\nimport ops from \"ndarray-ops\";\nimport pool from \"typedarray-pool\";\n\nif (typeof Buffer === \"undefined\") {\n global.Buffer = class Buffer {\n // mock shim so pool don't crash..\n static isBuffer = b => b instanceof Buffer;\n };\n}\n\n// code is partly taken from https://github.com/stackgl/gl-texture2d/blob/master/texture.js\n\nfunction isPacked(shape, stride) {\n if (shape.length === 3) {\n return (\n stride[2] === 1 &&\n stride[1] === shape[0] * shape[2] &&\n stride[0] === shape[2]\n );\n }\n return stride[0] === 1 && stride[1] === shape[0];\n}\n\nfunction convertFloatToUint8(out, inp) {\n ops.muls(out, inp, 255.0);\n}\n\nexport default (\n gl: WebGLRenderingContext,\n texture: WebGLTexture,\n array: NDArray\n) => {\n let dtype = array.dtype;\n let shape = array.shape.slice();\n let maxSize = gl.getParameter(gl.MAX_TEXTURE_SIZE);\n if (\n shape[0] < 0 ||\n shape[0] > maxSize ||\n shape[1] < 0 ||\n shape[1] > maxSize\n ) {\n throw new Error(\"gl-react: Invalid texture size\");\n }\n let packed = isPacked(shape, array.stride.slice());\n let type = 0;\n if (dtype === \"float32\") {\n type = gl.FLOAT;\n } else if (dtype === \"float64\") {\n type = gl.FLOAT;\n packed = false;\n dtype = \"float32\";\n } else if (dtype === \"uint8\") {\n type = gl.UNSIGNED_BYTE;\n } else {\n type = gl.UNSIGNED_BYTE;\n packed = false;\n dtype = \"uint8\";\n }\n let format = 0;\n if (shape.length === 2) {\n format = gl.LUMINANCE;\n shape = [shape[0], shape[1], 1];\n array = ndarray(\n array.data,\n shape,\n [array.stride[0], array.stride[1], 1],\n array.offset\n );\n } else if (shape.length === 3) {\n if (shape[2] === 1) {\n format = gl.ALPHA;\n } else if (shape[2] === 2) {\n format = gl.LUMINANCE_ALPHA;\n } else if (shape[2] === 3) {\n format = gl.RGB;\n } else if (shape[2] === 4) {\n format = gl.RGBA;\n } else {\n throw new Error(\"gl-texture2d: Invalid shape for pixel coords\");\n }\n } else {\n throw new Error(\"gl-texture2d: Invalid shape for texture\");\n }\n if (type === gl.FLOAT && !gl.getExtension(\"OES_texture_float\")) {\n type = gl.UNSIGNED_BYTE;\n packed = false;\n }\n let buffer, buf_store;\n let size = array.size;\n if (!packed) {\n let stride = [shape[2], shape[2] * shape[0], 1];\n buf_store = pool.malloc(size, dtype);\n let buf_array = ndarray(buf_store, shape, stride, 0);\n if (\n (dtype === \"float32\" || dtype === \"float64\") &&\n type === gl.UNSIGNED_BYTE\n ) {\n convertFloatToUint8(buf_array, array);\n } else {\n ops.assign(buf_array, array);\n }\n buffer = buf_store.subarray(0, size);\n } else if (array.offset === 0 && array.data.length === size) {\n buffer = array.data;\n } else {\n buffer = array.data.subarray(array.offset, array.offset + size);\n }\n gl.texImage2D(\n gl.TEXTURE_2D,\n 0,\n format,\n shape[0],\n shape[1],\n 0,\n format,\n type,\n buffer\n );\n if (buf_store) {\n pool.free(buf_store);\n }\n};\n"]}
{"version":3,"sources":["../src/drawNDArrayTexture.js"],"names":["Buffer","global","isBuffer","b","isPacked","shape","stride","length","convertFloatToUint8","out","inp","muls","gl","texture","array","floatSupported","dtype","slice","maxSize","getParameter","MAX_TEXTURE_SIZE","Error","packed","type","FLOAT","UNSIGNED_BYTE","format","LUMINANCE","data","offset","ALPHA","LUMINANCE_ALPHA","RGB","RGBA","buffer","buf_store","size","malloc","buf_array","assign","subarray","texImage2D","TEXTURE_2D","free"],"mappings":"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","file":"drawNDArrayTexture.js","sourcesContent":["//@flow\nimport type { NDArray } from \"ndarray\";\nimport ndarray from \"ndarray\";\nimport ops from \"ndarray-ops\";\nimport pool from \"typedarray-pool\";\n\nif (typeof Buffer === \"undefined\") {\n global.Buffer = class Buffer {\n // mock shim so pool don't crash..\n static isBuffer = b => b instanceof Buffer;\n };\n}\n\n// code is partly taken from https://github.com/stackgl/gl-texture2d/blob/master/texture.js\n\nfunction isPacked(shape, stride) {\n if (shape.length === 3) {\n return (\n stride[2] === 1 &&\n stride[1] === shape[0] * shape[2] &&\n stride[0] === shape[2]\n );\n }\n return stride[0] === 1 && stride[1] === shape[0];\n}\n\nfunction convertFloatToUint8(out, inp) {\n ops.muls(out, inp, 255.0);\n}\n\nexport default (\n gl: WebGLRenderingContext,\n texture: WebGLTexture,\n array: NDArray,\n floatSupported: boolean\n) => {\n let dtype = array.dtype;\n let shape = array.shape.slice();\n let maxSize = gl.getParameter(gl.MAX_TEXTURE_SIZE);\n if (\n shape[0] < 0 ||\n shape[0] > maxSize ||\n shape[1] < 0 ||\n shape[1] > maxSize\n ) {\n throw new Error(\"gl-react: Invalid texture size\");\n }\n let packed = isPacked(shape, array.stride.slice());\n let type = 0;\n if (dtype === \"float32\") {\n type = gl.FLOAT;\n } else if (dtype === \"float64\") {\n type = gl.FLOAT;\n packed = false;\n dtype = \"float32\";\n } else if (dtype === \"uint8\") {\n type = gl.UNSIGNED_BYTE;\n } else {\n type = gl.UNSIGNED_BYTE;\n packed = false;\n dtype = \"uint8\";\n }\n let format = 0;\n if (shape.length === 2) {\n format = gl.LUMINANCE;\n shape = [shape[0], shape[1], 1];\n array = ndarray(\n array.data,\n shape,\n [array.stride[0], array.stride[1], 1],\n array.offset\n );\n } else if (shape.length === 3) {\n if (shape[2] === 1) {\n format = gl.ALPHA;\n } else if (shape[2] === 2) {\n format = gl.LUMINANCE_ALPHA;\n } else if (shape[2] === 3) {\n format = gl.RGB;\n } else if (shape[2] === 4) {\n format = gl.RGBA;\n } else {\n throw new Error(\"gl-texture2d: Invalid shape for pixel coords\");\n }\n } else {\n throw new Error(\"gl-texture2d: Invalid shape for texture\");\n }\n if (type === gl.FLOAT && !floatSupported) {\n type = gl.UNSIGNED_BYTE;\n packed = false;\n }\n let buffer, buf_store;\n let size = array.size;\n if (!packed) {\n let stride = [shape[2], shape[2] * shape[0], 1];\n buf_store = pool.malloc(size, dtype);\n let buf_array = ndarray(buf_store, shape, stride, 0);\n if (\n (dtype === \"float32\" || dtype === \"float64\") &&\n type === gl.UNSIGNED_BYTE\n ) {\n convertFloatToUint8(buf_array, array);\n } else {\n ops.assign(buf_array, array);\n }\n buffer = buf_store.subarray(0, size);\n } else if (array.offset === 0 && array.data.length === size) {\n buffer = array.data;\n } else {\n buffer = array.data.subarray(array.offset, array.offset + size);\n }\n gl.texImage2D(\n gl.TEXTURE_2D,\n 0,\n format,\n shape[0],\n shape[1],\n 0,\n format,\n type,\n buffer\n );\n if (buf_store) {\n pool.free(buf_store);\n }\n};\n"]}

@@ -28,6 +28,9 @@ "use strict";

function NDArrayTextureLoader() {
function NDArrayTextureLoader(gl) {
_classCallCheck(this, NDArrayTextureLoader);
return _possibleConstructorReturn(this, (NDArrayTextureLoader.__proto__ || Object.getPrototypeOf(NDArrayTextureLoader)).apply(this, arguments));
var _this = _possibleConstructorReturn(this, (NDArrayTextureLoader.__proto__ || Object.getPrototypeOf(NDArrayTextureLoader)).call(this, gl));
_this.floatSupported = gl.getExtension("OES_texture_float") && gl.getExtension("OES_texture_float_linear");
return _this;
}

@@ -57,3 +60,3 @@

(0, _drawNDArrayTexture2.default)(gl, texture, input);
(0, _drawNDArrayTexture2.default)(gl, texture, input, this.floatSupported);
return { texture: texture, width: width, height: height };

@@ -71,3 +74,3 @@ }

gl.bindTexture(gl.TEXTURE_2D, texture);
(0, _drawNDArrayTexture2.default)(gl, texture, input);
(0, _drawNDArrayTexture2.default)(gl, texture, input, this.floatSupported);
}

@@ -74,0 +77,0 @@ }]);

@@ -1,1 +0,1 @@

{"version":3,"sources":["../src/NDArrayTextureLoader.js"],"names":["NDArrayTextureLoader","obj","shape","data","stride","input","gl","texture","createTexture","bindTexture","TEXTURE_2D","width","height","get","add"],"mappings":";;;;;;;;;;AACA;;AAKA;;;;;;;;;;;;IAEMA,oB;;;;;;;;;;;4BACIC,G,EAAU;AAChB,aAAOA,IAAIC,KAAJ,IAAaD,IAAIE,IAAjB,IAAyBF,IAAIG,MAApC;AACD;;;8BAESC,K,EAAgB;AACxB,aAAOA,KAAP;AACD;;;+BAEUA,K,EAAgB;AAAA,UACjBC,EADiB,GACV,IADU,CACjBA,EADiB;;AAEzB,UAAMC,UAAUD,GAAGE,aAAH,EAAhB;AACAF,SAAGG,WAAH,CAAeH,GAAGI,UAAlB,EAA8BH,OAA9B;;AAHyB,wCAIDF,MAAMH,KAJL;AAAA,UAIlBS,KAJkB;AAAA,UAIXC,MAJW;;AAKzB,wCAAmBN,EAAnB,EAAuBC,OAAvB,EAAgCF,KAAhC;AACA,aAAO,EAAEE,gBAAF,EAAWI,YAAX,EAAkBC,cAAlB,EAAP;AACD;;;2BAEMP,K,EAAgB;AACrB;AADqB,UAEbC,EAFa,GAEN,IAFM,CAEbA,EAFa;;AAAA,iBAGD,KAAKO,GAAL,CAASR,KAAT,CAHC;AAAA,UAGbE,OAHa,QAGbA,OAHa;;AAIrBD,SAAGG,WAAH,CAAeH,GAAGI,UAAlB,EAA8BH,OAA9B;AACA,wCAAmBD,EAAnB,EAAuBC,OAAvB,EAAgCF,KAAhC;AACD;;;;;;AAGH,mCAAeS,GAAf,CAAmBd,oBAAnB;;kBAEeA,oB","file":"NDArrayTextureLoader.js","sourcesContent":["//@flow\nimport {\n WebGLTextureLoaderSyncHashCache,\n globalRegistry\n} from \"webgltexture-loader\";\nimport type { NDArray } from \"ndarray\";\nimport drawNDArrayTexture from \"./drawNDArrayTexture\";\n\nclass NDArrayTextureLoader extends WebGLTextureLoaderSyncHashCache<NDArray> {\n canLoad(obj: any) {\n return obj.shape && obj.data && obj.stride;\n }\n\n inputHash(input: NDArray) {\n return input;\n }\n\n getNoCache(input: NDArray) {\n const { gl } = this;\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n const [width, height] = input.shape;\n drawNDArrayTexture(gl, texture, input);\n return { texture, width, height };\n }\n\n update(input: NDArray) {\n // For now we assume the NDArray always change & need a redraw but we might try to only update if changes later\n const { gl } = this;\n const { texture } = this.get(input);\n gl.bindTexture(gl.TEXTURE_2D, texture);\n drawNDArrayTexture(gl, texture, input);\n }\n}\n\nglobalRegistry.add(NDArrayTextureLoader);\n\nexport default NDArrayTextureLoader;\n"]}
{"version":3,"sources":["../src/NDArrayTextureLoader.js"],"names":["NDArrayTextureLoader","gl","floatSupported","getExtension","obj","shape","data","stride","input","texture","createTexture","bindTexture","TEXTURE_2D","width","height","get","add"],"mappings":";;;;;;;;;;AACA;;AAKA;;;;;;;;;;;;IAEMA,oB;;;AAEJ,gCAAYC,EAAZ,EAAmB;AAAA;;AAAA,4IACXA,EADW;;AAEjB,UAAKC,cAAL,GACED,GAAGE,YAAH,CAAgB,mBAAhB,KACAF,GAAGE,YAAH,CAAgB,0BAAhB,CAFF;AAFiB;AAKlB;;;;4BAEOC,G,EAAU;AAChB,aAAOA,IAAIC,KAAJ,IAAaD,IAAIE,IAAjB,IAAyBF,IAAIG,MAApC;AACD;;;8BAESC,K,EAAgB;AACxB,aAAOA,KAAP;AACD;;;+BAEUA,K,EAAgB;AAAA,UACjBP,EADiB,GACV,IADU,CACjBA,EADiB;;AAEzB,UAAMQ,UAAUR,GAAGS,aAAH,EAAhB;AACAT,SAAGU,WAAH,CAAeV,GAAGW,UAAlB,EAA8BH,OAA9B;;AAHyB,wCAIDD,MAAMH,KAJL;AAAA,UAIlBQ,KAJkB;AAAA,UAIXC,MAJW;;AAKzB,wCAAmBb,EAAnB,EAAuBQ,OAAvB,EAAgCD,KAAhC,EAAuC,KAAKN,cAA5C;AACA,aAAO,EAAEO,gBAAF,EAAWI,YAAX,EAAkBC,cAAlB,EAAP;AACD;;;2BAEMN,K,EAAgB;AACrB;AADqB,UAEbP,EAFa,GAEN,IAFM,CAEbA,EAFa;;AAAA,iBAGD,KAAKc,GAAL,CAASP,KAAT,CAHC;AAAA,UAGbC,OAHa,QAGbA,OAHa;;AAIrBR,SAAGU,WAAH,CAAeV,GAAGW,UAAlB,EAA8BH,OAA9B;AACA,wCAAmBR,EAAnB,EAAuBQ,OAAvB,EAAgCD,KAAhC,EAAuC,KAAKN,cAA5C;AACD;;;;;;AAGH,mCAAec,GAAf,CAAmBhB,oBAAnB;;kBAEeA,oB","file":"NDArrayTextureLoader.js","sourcesContent":["//@flow\nimport {\n WebGLTextureLoaderSyncHashCache,\n globalRegistry\n} from \"webgltexture-loader\";\nimport type { NDArray } from \"ndarray\";\nimport drawNDArrayTexture from \"./drawNDArrayTexture\";\n\nclass NDArrayTextureLoader extends WebGLTextureLoaderSyncHashCache<NDArray> {\n floatSupported: boolean;\n constructor(gl: *) {\n super(gl);\n this.floatSupported =\n gl.getExtension(\"OES_texture_float\") &&\n gl.getExtension(\"OES_texture_float_linear\");\n }\n\n canLoad(obj: any) {\n return obj.shape && obj.data && obj.stride;\n }\n\n inputHash(input: NDArray) {\n return input;\n }\n\n getNoCache(input: NDArray) {\n const { gl } = this;\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n const [width, height] = input.shape;\n drawNDArrayTexture(gl, texture, input, this.floatSupported);\n return { texture, width, height };\n }\n\n update(input: NDArray) {\n // For now we assume the NDArray always change & need a redraw but we might try to only update if changes later\n const { gl } = this;\n const { texture } = this.get(input);\n gl.bindTexture(gl.TEXTURE_2D, texture);\n drawNDArrayTexture(gl, texture, input, this.floatSupported);\n }\n}\n\nglobalRegistry.add(NDArrayTextureLoader);\n\nexport default NDArrayTextureLoader;\n"]}
{
"name": "webgltexture-loader-ndarray",
"version": "0.6.0",
"version": "0.9.0-beta.090a4900",
"description": "ndarray loader for webgltexture-loader",

@@ -17,4 +17,4 @@ "main": "lib/NDArrayTextureLoader.js",

"typedarray-pool": "^1.1.0",
"webgltexture-loader": "^0.6.0"
"webgltexture-loader": "^0.9.0-beta.090a4900"
}
}

@@ -34,3 +34,4 @@ //@flow

texture: WebGLTexture,
array: NDArray
array: NDArray,
floatSupported: boolean
) => {

@@ -88,3 +89,3 @@ let dtype = array.dtype;

}
if (type === gl.FLOAT && !gl.getExtension("OES_texture_float")) {
if (type === gl.FLOAT && !floatSupported) {
type = gl.UNSIGNED_BYTE;

@@ -91,0 +92,0 @@ packed = false;

@@ -10,2 +10,10 @@ //@flow

class NDArrayTextureLoader extends WebGLTextureLoaderSyncHashCache<NDArray> {
floatSupported: boolean;
constructor(gl: *) {
super(gl);
this.floatSupported =
gl.getExtension("OES_texture_float") &&
gl.getExtension("OES_texture_float_linear");
}
canLoad(obj: any) {

@@ -24,3 +32,3 @@ return obj.shape && obj.data && obj.stride;

const [width, height] = input.shape;
drawNDArrayTexture(gl, texture, input);
drawNDArrayTexture(gl, texture, input, this.floatSupported);
return { texture, width, height };

@@ -34,3 +42,3 @@ }

gl.bindTexture(gl.TEXTURE_2D, texture);
drawNDArrayTexture(gl, texture, input);
drawNDArrayTexture(gl, texture, input, this.floatSupported);
}

@@ -37,0 +45,0 @@ }

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet