Skip to content

Commit c49e096

Browse files
author
Tobias Knöschke
committed
Re-enable chaining in user JS code
1 parent 23908a4 commit c49e096

File tree

3 files changed

+27
-23
lines changed

3 files changed

+27
-23
lines changed

data/glkernel.js

+20-20
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@ var _Kernel = function(x,y,z) {
2929
this.noise = {
3030
uniform: function(range_min, range_max) {
3131
_glkernel.noise_uniform(that.kernel, range_min, range_max);
32-
return that.kernel;
32+
return that;
3333
},
3434
normal: function(mean, stddev) {
3535
_glkernel.noise_normal(that.kernel, mean, stddev);
36-
return that.kernel;
36+
return that;
3737
},
3838
gradient: function(noise_type, octave_type, startFrequency, octaves) {
3939
// Defaults
@@ -43,7 +43,7 @@ var _Kernel = function(x,y,z) {
4343
octaves = (typeof octaves !== 'undefined') ? octaves : 5;
4444

4545
_glkernel.noise_gradient(that.kernel, noise_type, octave_type, startFrequency, octaves);
46-
return that.kernel;
46+
return that;
4747
}
4848
};
4949
this.sample = {
@@ -52,62 +52,62 @@ var _Kernel = function(x,y,z) {
5252
num_probes = (typeof num_probes !== 'undefined') ? num_probes : 32;
5353

5454
_glkernel.sample_poisson_square(that.kernel, num_probes);
55-
return that.kernel;
55+
return that;
5656
},
5757
poisson_square: function(min_dist, num_probes) {
5858
// Defaults
5959
num_probes = (typeof num_probes !== 'undefined') ? num_probes : 32;
6060

6161
_glkernel.sample_poisson_square1(that.kernel, min_dist, num_probes);
62-
return that.kernel;
62+
return that;
6363
},
6464
stratified: function() {
6565
_glkernel.sample_stratified(that.kernel);
66-
return that.kernel;
66+
return that;
6767
},
6868
hammersley: function() {
6969
_glkernel.sample_hammersley(that.kernel);
70-
return that.kernel;
70+
return that;
7171
},
7272
halton: function(base1, base2) {
7373
_glkernel.sample_halton(that.kernel, base1, base2);
74-
return that.kernel;
74+
return that;
7575
},
7676
hammersley_sphere: function(type) {
7777
// Defaults
7878
type = (typeof type !== 'undefined') ? type : HemisphereMapping.Uniform;
7979

8080
_glkernel.sample_hammersley_sphere(that.kernel, type);
81-
return that.kernel;
81+
return that;
8282
},
8383
halton_sphere: function(base1, base2, type) {
8484
// Defaults
8585
type = (typeof type !== 'undefined') ? type : HemisphereMapping.Uniform;
8686

8787
_glkernel.sample_halton_sphere(that.kernel, base1, base2, type);
88-
return that.kernel;
88+
return that;
8989
},
9090
best_candidate: function(num_candidates) {
9191
// Defaults
9292
num_candidates = (typeof num_candidates !== 'undefined') ? num_candidates : 32;
9393

9494
_glkernel.sample_best_candidate(that.kernel, num_candidates);
95-
return that.kernel;
95+
return that;
9696
},
9797
n_rooks: function() {
9898
_glkernel.sample_n_rooks(that.kernel);
99-
return that.kernel;
99+
return that;
100100
},
101101
multi_jittered: function(correlated) {
102102
// Defaults
103103
correlated = (typeof correlated !== 'undefined') ? correlated : false;
104104

105105
_glkernel.sample_multi_jittered(that.kernel, correlated);
106-
return that.kernel;
106+
return that;
107107
},
108108
golden_point_set: function() {
109109
_glkernel.sample_golden_point_set(that.kernel);
110-
return that.kernel;
110+
return that;
111111
}
112112
};
113113
this.scale = {
@@ -117,13 +117,13 @@ var _Kernel = function(x,y,z) {
117117
rangeFromUpper = (typeof rangeFromUpper !== 'undefined') ? rangeFromUpper : 1;
118118

119119
_glkernel.scale_range(that.kernel, rangeToLower, rangeToUpper, rangeFromLower, rangeFromUpper);
120-
return that.kernel;
120+
return that;
121121
}
122122
};
123123
this.sequence = {
124124
uniform: function(range_min, range_max) {
125125
_glkernel.sequence_uniform(that.kernel, range_min, range_max);
126-
return that.kernel;
126+
return that;
127127
}
128128
};
129129
this.shuffle = {
@@ -135,24 +135,24 @@ var _Kernel = function(x,y,z) {
135135
permutate_per_bucket = (typeof permutate_per_bucket !== 'undefined') ? permutate_per_bucket : false;
136136

137137
_glkernel.shuffle_bucket_permutate(that.kernel, subkernel_width, subkernel_height, subkernel_depth, permutate_per_bucket);
138-
return that.kernel;
138+
return that;
139139
},
140140
bayer: function() {
141141
_glkernel.shuffle_bayer(that.kernel);
142-
return that.kernel;
142+
return that;
143143
},
144144
random: function(start) {
145145
// Defaults
146146
start = (typeof start !== 'undefined') ? start : 1;
147147

148148
_glkernel.shuffle_random(that.kernel, start);
149-
return that.kernel;
149+
return that;
150150
}
151151
};
152152
this.sort = {
153153
distance: function(origin) {
154154
_glkernel.sort_distance(that.kernel, origin);
155-
return that.kernel;
155+
return that;
156156
}
157157
};
158158
};

scripts/generate.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ def jsFunction(func, enums):
202202

203203
jsCode = """{firstLine}{defaultChecks}
204204
{finalCall}
205-
return that.kernel;
205+
return that;
206206
}}""".format(firstLine = firstLine, defaultChecks = defaultChecks, finalCall = finalCall)
207207

208208
return jsCode

source/tools/glkernel-cli/KernelGenerator.cpp

+6-2
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,13 @@ cppexpose::Variant KernelGenerator::generateKernelFromJavascript()
4242

4343
auto variant = scriptContext.evaluate(m_scriptCode);
4444

45-
if (variant.hasType<cppexpose::Object*>())
45+
if (variant.hasType<cppexpose::VariantMap>())
4646
{
47-
auto kernelObject = variant.value<cppexpose::Object*>();
47+
auto kernelWrapper = variant.value<cppexpose::VariantMap>();
48+
if (!kernelWrapper.count("kernel"))
49+
return variant;
50+
51+
auto kernelObject = kernelWrapper["kernel"].value<cppexpose::Object*>();
4852

4953
auto kernel1Object = dynamic_cast<Kernel1Object*>(kernelObject);
5054
if (kernel1Object)

0 commit comments

Comments
 (0)