Skip to content
This repository was archived by the owner on Mar 13, 2018. It is now read-only.

Commit 80b8152

Browse files
committed
Fix issue with canvas parameters
1 parent 3888683 commit 80b8152

3 files changed

Lines changed: 20 additions & 4 deletions

File tree

src/wrappers/CanvasRenderingContext2D.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
var mixin = scope.mixin;
99
var registerWrapper = scope.registerWrapper;
1010
var unwrap = scope.unwrap;
11+
var unwrapIfNeeded = scope.unwrapIfNeeded;
1112
var wrap = scope.wrap;
1213

1314
var OriginalCanvasRenderingContext2D = window.CanvasRenderingContext2D;
@@ -22,7 +23,7 @@
2223
},
2324

2425
drawImage: function() {
25-
arguments[0] = unwrap(arguments[0]);
26+
arguments[0] = unwrapIfNeeded(arguments[0]);
2627
this.impl.drawImage.apply(this.impl, arguments);
2728
},
2829

src/wrappers/WebGLRenderingContext.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
var mixin = scope.mixin;
99
var registerWrapper = scope.registerWrapper;
10-
var unwrap = scope.unwrap;
10+
var unwrapIfNeeded = scope.unwrapIfNeeded;
1111
var wrap = scope.wrap;
1212

1313
var OriginalWebGLRenderingContext = window.WebGLRenderingContext;
@@ -26,12 +26,12 @@
2626
},
2727

2828
texImage2D: function() {
29-
arguments[5] = unwrap(arguments[5]);
29+
arguments[5] = unwrapIfNeeded(arguments[5]);
3030
this.impl.texImage2D.apply(this.impl, arguments);
3131
},
3232

3333
texSubImage2D: function() {
34-
arguments[6] = unwrap(arguments[6]);
34+
arguments[6] = unwrapIfNeeded(arguments[6]);
3535
this.impl.texSubImage2D.apply(this.impl, arguments);
3636
}
3737
});

test/js/HTMLCanvasElement.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,11 +93,21 @@ suite('HTMLCanvasElement', function() {
9393
return;
9494
}
9595

96+
var imageData = document.createElement('canvas').getContext('2d').
97+
createImageData(16, 16);
98+
var arrayBufferView = new Uint8Array(16 * 16 * 4);
99+
96100
var img = document.createElement('img');
97101
img.onload = function() {
98102
var texture = gl.createTexture();
99103
gl.bindTexture(gl.TEXTURE_2D, texture);
100104
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, img);
105+
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE,
106+
imageData);
107+
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA,
108+
16, 16, 0,
109+
gl.RGBA, gl.UNSIGNED_BYTE, arrayBufferView);
110+
101111
done();
102112
};
103113
img.src = iconUrl;
@@ -118,11 +128,16 @@ suite('HTMLCanvasElement', function() {
118128
return;
119129
}
120130

131+
var arrayBufferView = new Uint8Array(16 * 16 * 4);
132+
121133
var img = document.createElement('img');
122134
img.onload = function() {
123135
var texture = gl.createTexture();
124136
gl.bindTexture(gl.TEXTURE_2D, texture);
125137
gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, img);
138+
gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0,
139+
16, 16,
140+
gl.RGBA, gl.UNSIGNED_BYTE, arrayBufferView);
126141
done();
127142
};
128143
img.src = iconUrl;

0 commit comments

Comments
 (0)