Skip to content

Commit a196265

Browse files
committed
Added gpu_utils class, to centralised all the reuse util functions (that is not GPU.JS specific)
1 parent 0265c60 commit a196265

13 files changed

Lines changed: 89 additions & 13 deletions

src/backend/gpu_utils.js

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
///
2+
/// Class: gpu_utils
3+
///
4+
/// Various utility functions / snippets of code that GPU.JS uses internally.
5+
///
6+
/// Note that all moethods in this class is "static" by nature `gpu_utils.functionName()`
7+
///
8+
var gpu_utils = (function() {
9+
10+
function gpu_utils() {
11+
throw new Error("This is a utility class - do not construct it");
12+
}
13+
14+
// system_endianness closure based memoizer
15+
var system_endianness_memoizer = null;
16+
17+
///
18+
/// Function: system_endianness
19+
///
20+
/// Gets the system endianness, and cache it
21+
///
22+
/// Credit: https://gist.github.com/TooTallNate/4750953
23+
function system_endianness() {
24+
if( system_endianness_memoizer !== null ) {
25+
return system_endianness_memoizer;
26+
}
27+
28+
var b = new ArrayBuffer(4);
29+
var a = new Uint32Array(b);
30+
var c = new Uint8Array(b);
31+
a[0] = 0xdeadbeef;
32+
if (c[0] == 0xef) return system_endianness_memoizer = 'LE';
33+
if (c[0] == 0xde) return system_endianness_memoizer = 'BE';
34+
throw new Error('unknown endianness');
35+
}
36+
37+
gpu_utils.system_endianness = system_endianness;
38+
39+
return gpu_utils;
40+
})();

test/html/features/addCustomFunction.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@
44
<meta charset="utf-8">
55
<title>GPU.JS : add(Custom)Function</title>
66
<link rel="stylesheet" href="../lib/qunit-1.20.0.css">
7-
7+
88
<!-- gpu.js scripts -->
99
<script src="../../../src/parser.js"></script>
1010
<script src="../../../src/gpu.js"></script>
11+
<script src="../../../src/backend/gpu_utils.js"></script>
1112
<script src="../../../src/backend/functionNode_webgl.js"></script>
1213
<script src="../../../src/backend/functionNode.js"></script>
1314
<script src="../../../src/backend/functionBuilder.js"></script>

test/html/features/for_loop.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@
44
<meta charset="utf-8">
55
<title>GPU.JS : For Loop</title>
66
<link rel="stylesheet" href="../lib/qunit-1.20.0.css">
7-
7+
88
<!-- gpu.js scripts -->
99
<script src="../../../src/parser.js"></script>
1010
<script src="../../../src/gpu.js"></script>
11+
<script src="../../../src/backend/gpu_utils.js"></script>
1112
<script src="../../../src/backend/functionNode_webgl.js"></script>
1213
<script src="../../../src/backend/functionNode.js"></script>
1314
<script src="../../../src/backend/functionBuilder.js"></script>

test/html/features/function_return.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@
44
<meta charset="utf-8">
55
<title>GPU.JS : Function Return</title>
66
<link rel="stylesheet" href="../lib/qunit-1.20.0.css">
7-
7+
88
<!-- gpu.js scripts -->
99
<script src="../../../src/parser.js"></script>
1010
<script src="../../../src/gpu.js"></script>
11+
<script src="../../../src/backend/gpu_utils.js"></script>
1112
<script src="../../../src/backend/functionNode_webgl.js"></script>
1213
<script src="../../../src/backend/functionNode.js"></script>
1314
<script src="../../../src/backend/functionBuilder.js"></script>

test/html/features/if_else.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@
44
<meta charset="utf-8">
55
<title>GPU.JS : If else block support</title>
66
<link rel="stylesheet" href="../lib/qunit-1.20.0.css">
7-
7+
88
<!-- gpu.js scripts -->
99
<script src="../../../src/parser.js"></script>
1010
<script src="../../../src/gpu.js"></script>
11+
<script src="../../../src/backend/gpu_utils.js"></script>
1112
<script src="../../../src/backend/functionNode_webgl.js"></script>
1213
<script src="../../../src/backend/functionNode.js"></script>
1314
<script src="../../../src/backend/functionBuilder.js"></script>

test/html/features/mult_AB.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@
44
<meta charset="utf-8">
55
<title>GPU.JS : Multiplication AB</title>
66
<link rel="stylesheet" href="../lib/qunit-1.20.0.css">
7-
7+
88
<!-- gpu.js scripts -->
99
<script src="../../../src/parser.js"></script>
1010
<script src="../../../src/gpu.js"></script>
11+
<script src="../../../src/backend/gpu_utils.js"></script>
1112
<script src="../../../src/backend/functionNode_webgl.js"></script>
1213
<script src="../../../src/backend/functionNode.js"></script>
1314
<script src="../../../src/backend/functionBuilder.js"></script>

test/html/features/nestedFunction.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@
44
<meta charset="utf-8">
55
<title>GPU.JS : Nested Function</title>
66
<link rel="stylesheet" href="../lib/qunit-1.20.0.css">
7-
7+
88
<!-- gpu.js scripts -->
99
<script src="../../../src/parser.js"></script>
1010
<script src="../../../src/gpu.js"></script>
11+
<script src="../../../src/backend/gpu_utils.js"></script>
1112
<script src="../../../src/backend/functionNode_webgl.js"></script>
1213
<script src="../../../src/backend/functionNode.js"></script>
1314
<script src="../../../src/backend/functionBuilder.js"></script>

test/html/features/sum_AB.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@
44
<meta charset="utf-8">
55
<title>GPU.JS : Sum AB</title>
66
<link rel="stylesheet" href="../lib/qunit-1.20.0.css">
7-
7+
88
<!-- gpu.js scripts -->
99
<script src="../../../src/parser.js"></script>
1010
<script src="../../../src/gpu.js"></script>
11+
<script src="../../../src/backend/gpu_utils.js"></script>
1112
<script src="../../../src/backend/functionNode_webgl.js"></script>
1213
<script src="../../../src/backend/functionNode.js"></script>
1314
<script src="../../../src/backend/functionBuilder.js"></script>

test/html/internal/functionBuilder_test.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@
44
<meta charset="utf-8">
55
<title>GPU.JS : FunctionBuilder unit testing</title>
66
<link rel="stylesheet" href="../../lib/qunit-1.20.0.css">
7-
7+
88
<!-- gpu.js scripts -->
99
<script src="../../../src/parser.js"></script>
10+
<script src="../../../src/backend/gpu_utils.js"></script>
1011
<script src="../../../src/backend/functionNode_webgl.js"></script>
1112
<script src="../../../src/backend/functionNode.js"></script>
1213
<script src="../../../src/backend/functionBuilder.js"></script>

test/html/internal/functionNode_test.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@
44
<meta charset="utf-8">
55
<title>GPU.JS : FunctionNode unit testing</title>
66
<link rel="stylesheet" href="../../lib/qunit-1.20.0.css">
7-
7+
88
<!-- gpu.js scripts -->
99
<script src="../../../src/parser.js"></script>
10+
<script src="../../../src/backend/gpu_utils.js"></script>
1011
<script src="../../../src/backend/functionNode_webgl.js"></script>
1112
<script src="../../../src/backend/functionNode.js"></script>
1213
</head>

0 commit comments

Comments
 (0)