From 3bca99f1420d8398f6530176f464792f10075af8 Mon Sep 17 00:00:00 2001 From: Robert Plummer Date: Mon, 10 Jul 2017 15:12:09 -0400 Subject: [PATCH 1/3] Add strict use --- src/backend/cpu/function-builder.js | 2 ++ src/backend/cpu/function-node.js | 2 ++ src/backend/cpu/kernel-string.js | 2 ++ src/backend/cpu/kernel.js | 2 ++ src/backend/cpu/runner.js | 2 ++ src/backend/function-builder-base.js | 2 ++ src/backend/function-node-base.js | 2 ++ src/backend/kernel-base.js | 2 ++ src/backend/kernel-run-shortcut.js | 2 ++ src/backend/runner-base.js | 2 ++ src/backend/web-gl/function-builder.js | 2 ++ src/backend/web-gl/function-node.js | 2 ++ src/backend/web-gl/kernel-string.js | 2 ++ src/backend/web-gl/kernel.js | 2 ++ src/backend/web-gl/runner.js | 2 ++ src/backend/web-gl/validator-kernel.js | 2 ++ src/core/alias.js | 2 ++ src/core/gpu-core.js | 2 ++ src/core/gpu.js | 2 ++ src/core/texture.js | 6 ++++-- src/core/utils-core.js | 2 ++ src/core/utils.js | 2 ++ src/index-core.js | 2 ++ src/index.js | 2 ++ 24 files changed, 50 insertions(+), 2 deletions(-) diff --git a/src/backend/cpu/function-builder.js b/src/backend/cpu/function-builder.js index c7e53cd8..8e996ddf 100644 --- a/src/backend/cpu/function-builder.js +++ b/src/backend/cpu/function-builder.js @@ -1,3 +1,5 @@ +'use strict'; + const FunctionBuilderBase = require('../function-builder-base'); const CPUFunctionNode = require('./function-node'); diff --git a/src/backend/cpu/function-node.js b/src/backend/cpu/function-node.js index 9e59ea1d..1a07af30 100644 --- a/src/backend/cpu/function-node.js +++ b/src/backend/cpu/function-node.js @@ -1,3 +1,5 @@ +'use strict'; + const BaseFunctionNode = require('../function-node-base'); /** diff --git a/src/backend/cpu/kernel-string.js b/src/backend/cpu/kernel-string.js index 71e36a30..4b1d1cb1 100644 --- a/src/backend/cpu/kernel-string.js +++ b/src/backend/cpu/kernel-string.js @@ -1,3 +1,5 @@ +'use strict'; + const utils = require('../../core/utils'); const kernelRunShortcut = require('../kernel-run-shortcut'); diff --git a/src/backend/cpu/kernel.js b/src/backend/cpu/kernel.js index 21f5282f..b9d30fdb 100644 --- a/src/backend/cpu/kernel.js +++ b/src/backend/cpu/kernel.js @@ -1,3 +1,5 @@ +'use strict'; + const KernelBase = require('../kernel-base'); const utils = require('../../core/utils'); const kernelString = require('./kernel-string'); diff --git a/src/backend/cpu/runner.js b/src/backend/cpu/runner.js index 1e534250..74b74fc3 100644 --- a/src/backend/cpu/runner.js +++ b/src/backend/cpu/runner.js @@ -1,3 +1,5 @@ +'use strict'; + const utils = require('../../core/utils'); const RunnerBase = require('../runner-base'); const CPUKernel = require('./kernel'); diff --git a/src/backend/function-builder-base.js b/src/backend/function-builder-base.js index d4899891..a1e4200b 100644 --- a/src/backend/function-builder-base.js +++ b/src/backend/function-builder-base.js @@ -1,3 +1,5 @@ +'use strict'; + module.exports = class FunctionBuilderBase { /** diff --git a/src/backend/function-node-base.js b/src/backend/function-node-base.js index cca73ff2..2c71dd01 100644 --- a/src/backend/function-node-base.js +++ b/src/backend/function-node-base.js @@ -1,3 +1,5 @@ +'use strict'; + const utils = require('../core/utils'); const parser = require('../core/parser').parser; diff --git a/src/backend/kernel-base.js b/src/backend/kernel-base.js index b17cb8c3..5c7de59a 100644 --- a/src/backend/kernel-base.js +++ b/src/backend/kernel-base.js @@ -1,3 +1,5 @@ +'use strict'; + const utils = require('../core/utils'); module.exports = class BaseKernel { diff --git a/src/backend/kernel-run-shortcut.js b/src/backend/kernel-run-shortcut.js index fc7b531a..a8c6ac79 100644 --- a/src/backend/kernel-run-shortcut.js +++ b/src/backend/kernel-run-shortcut.js @@ -1,3 +1,5 @@ +'use strict'; + const utils = require('../core/utils'); module.exports = function kernelRunShortcut(kernel) { diff --git a/src/backend/runner-base.js b/src/backend/runner-base.js index 4dda7fa6..06d04990 100644 --- a/src/backend/runner-base.js +++ b/src/backend/runner-base.js @@ -1,3 +1,5 @@ +'use strict'; + const utils = require('../core/utils'); const kernelRunShortcut = require('./kernel-run-shortcut'); diff --git a/src/backend/web-gl/function-builder.js b/src/backend/web-gl/function-builder.js index 48b404ef..c8f49943 100644 --- a/src/backend/web-gl/function-builder.js +++ b/src/backend/web-gl/function-builder.js @@ -1,3 +1,5 @@ +'use strict'; + const FunctionBuilderBase = require('../function-builder-base'); const WebGLFunctionNode = require('./function-node'); const utils = require('../../core/utils'); diff --git a/src/backend/web-gl/function-node.js b/src/backend/web-gl/function-node.js index e1aef0d4..f872b163 100644 --- a/src/backend/web-gl/function-node.js +++ b/src/backend/web-gl/function-node.js @@ -1,3 +1,5 @@ +'use strict'; + const FunctionNodeBase = require('../function-node-base'); const utils = require('../../core/utils'); // Closure capture for the ast function, prevent collision with existing AST functions diff --git a/src/backend/web-gl/kernel-string.js b/src/backend/web-gl/kernel-string.js index 46d8db9f..720e5cbd 100644 --- a/src/backend/web-gl/kernel-string.js +++ b/src/backend/web-gl/kernel-string.js @@ -1,3 +1,5 @@ +'use strict'; + const utils = require('../../core/utils'); const kernelRunShortcut = require('../kernel-run-shortcut'); diff --git a/src/backend/web-gl/kernel.js b/src/backend/web-gl/kernel.js index 50fdfb6b..4c606f68 100644 --- a/src/backend/web-gl/kernel.js +++ b/src/backend/web-gl/kernel.js @@ -1,3 +1,5 @@ +'use strict'; + const fs = require('fs'); const KernelBase = require('../kernel-base'); const utils = require('../../core/utils'); diff --git a/src/backend/web-gl/runner.js b/src/backend/web-gl/runner.js index 373a03c3..64b31516 100644 --- a/src/backend/web-gl/runner.js +++ b/src/backend/web-gl/runner.js @@ -1,3 +1,5 @@ +'use strict'; + const RunnerBase = require('../runner-base'); const WebGLKernel = require('./kernel'); const utils = require('../../core/utils'); diff --git a/src/backend/web-gl/validator-kernel.js b/src/backend/web-gl/validator-kernel.js index da498258..0de87df2 100644 --- a/src/backend/web-gl/validator-kernel.js +++ b/src/backend/web-gl/validator-kernel.js @@ -1,3 +1,5 @@ +'use strict'; + const WebGLKernel = require('./kernel'); const utils = require('../../core/utils'); diff --git a/src/core/alias.js b/src/core/alias.js index c6c6b2db..39a60afb 100644 --- a/src/core/alias.js +++ b/src/core/alias.js @@ -1,3 +1,5 @@ +'use strict'; + const utils = require('./utils'); module.exports = function alias(name, fn) { const fnString = fn.toString(); diff --git a/src/core/gpu-core.js b/src/core/gpu-core.js index a875fdcf..4cf1d56b 100644 --- a/src/core/gpu-core.js +++ b/src/core/gpu-core.js @@ -1,3 +1,5 @@ +'use strict'; + const UtilsCore = require("./utils-core"); /** diff --git a/src/core/gpu.js b/src/core/gpu.js index 7fde8443..f61a7a07 100644 --- a/src/core/gpu.js +++ b/src/core/gpu.js @@ -1,3 +1,5 @@ +'use strict'; + const utils = require('./utils'); const WebGLRunner = require('../backend/web-gl/runner'); const CPURunner = require('../backend/cpu/runner'); diff --git a/src/core/texture.js b/src/core/texture.js index 84dafe12..5f09e801 100644 --- a/src/core/texture.js +++ b/src/core/texture.js @@ -33,9 +33,11 @@ module.exports = class Texture { } const copy = gpu.createKernel(function(x) { return x[this.thread.z][this.thread.y][this.thread.x]; - }); + }, { + dimensions: this.dimensions + }); - return copy(this.texture); + return copy(this); } /** diff --git a/src/core/utils-core.js b/src/core/utils-core.js index 67b25642..10a41164 100644 --- a/src/core/utils-core.js +++ b/src/core/utils-core.js @@ -1,3 +1,5 @@ +'use strict'; + /** * * @desc Reduced subset of Utils, used exclusively in gpu-core.js diff --git a/src/core/utils.js b/src/core/utils.js index a6ff231d..0f38e985 100644 --- a/src/core/utils.js +++ b/src/core/utils.js @@ -1,3 +1,5 @@ +'use strict'; + /** * * @classdesc Various utility functions / snippets of code that GPU.JS uses internally.\ diff --git a/src/index-core.js b/src/index-core.js index ce57cf40..0dafae04 100644 --- a/src/index-core.js +++ b/src/index-core.js @@ -1,3 +1,5 @@ +'use strict'; + const GPUCore = require("./core/gpu-core"); if (typeof module !== 'undefined') { module.exports = GPUCore; diff --git a/src/index.js b/src/index.js index b22c9c89..c8a03bf0 100644 --- a/src/index.js +++ b/src/index.js @@ -1,3 +1,5 @@ +'use strict'; + const GPU = require('./core/gpu'); const alias = require('./core/alias'); const utils = require('./core/utils'); From 92f955df827fda0aa30da1de8d8cd645b1f0b9fd Mon Sep 17 00:00:00 2001 From: Robert Plummer Date: Mon, 10 Jul 2017 15:20:06 -0400 Subject: [PATCH 2/3] equality check --- src/index-core.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index-core.js b/src/index-core.js index 0dafae04..37d75529 100644 --- a/src/index-core.js +++ b/src/index-core.js @@ -6,7 +6,7 @@ if (typeof module !== 'undefined') { } if (typeof window !== 'undefined') { window.GPUCore = GPUCore; - if(window.GPU == null) { + if(window.GPU === null) { window.GPU = GPUCore; } } \ No newline at end of file From c081a3714cbc054250460262b049ebf689628b91 Mon Sep 17 00:00:00 2001 From: Robert Plummer Date: Mon, 10 Jul 2017 15:24:21 -0400 Subject: [PATCH 3/3] fix cpu support for node and strict in texture --- src/core/texture.js | 2 ++ src/core/utils-core.js | 14 ++++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/core/texture.js b/src/core/texture.js index 467f4b9e..22eadd89 100644 --- a/src/core/texture.js +++ b/src/core/texture.js @@ -1,3 +1,5 @@ +'use strict'; + let gpu = null; module.exports = class Texture { diff --git a/src/core/utils-core.js b/src/core/utils-core.js index 10a41164..b6896ed3 100644 --- a/src/core/utils-core.js +++ b/src/core/utils-core.js @@ -218,10 +218,16 @@ class UtilsCore { const _isCanvasSupported = typeof document !== 'undefined' ? UtilsCore.isCanvas(document.createElement('canvas')) : false; const _testingWebGl = UtilsCore.initWebGl(UtilsCore.initCanvas()); const _isWebGlSupported = UtilsCore.isWebGl(_testingWebGl); -const _isWebGlDrawBuffersSupported = Boolean(_testingWebGl.getExtension('WEBGL_draw_buffers')); +const _isWebGlDrawBuffersSupported = _isWebGlSupported && Boolean(_testingWebGl.getExtension('WEBGL_draw_buffers')); -UtilsCore.OES_texture_float = _testingWebGl.OES_texture_float; -UtilsCore.OES_texture_float_linear = _testingWebGl.OES_texture_float_linear; -UtilsCore.OES_element_index_uint = _testingWebGl.OES_element_index_uint; +if (_isWebGlSupported) { + UtilsCore.OES_texture_float = _testingWebGl.OES_texture_float; + UtilsCore.OES_texture_float_linear = _testingWebGl.OES_texture_float_linear; + UtilsCore.OES_element_index_uint = _testingWebGl.OES_element_index_uint; +} else { + UtilsCore.OES_texture_float = false; + UtilsCore.OES_texture_float_linear = false; + UtilsCore.OES_element_index_uint = false; +} module.exports = UtilsCore; \ No newline at end of file