Skip to content

Commit aed296f

Browse files
Merge remote-tracking branch 'origin/master'
Conflicts: dist/htmlgl.min.js page/js/htmlgl.min.js
2 parents 4a6d0f3 + a191ed4 commit aed296f

7 files changed

Lines changed: 97 additions & 41 deletions

File tree

bower.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
2-
"name": "HTMLGL",
3-
"version": "0.1.1",
2+
"name": "htmlgl",
3+
"version": "0.2",
44
"authors": [
55
"PixelsCommander <denis.radin@gmail.com>"
66
],
@@ -13,7 +13,7 @@
1313
"tests"
1414
],
1515
"dependencies": {
16-
"pixi": "~2.2.5",
16+
"pixi": "~2.2.9",
1717
"webcomponents.js": "~0.5.5",
1818
"promise-polyfill": "~2.0.0",
1919
"jquery": "~2.1.3"

dist/htmlgl.js

Lines changed: 36 additions & 12 deletions
Large diffs are not rendered by default.

dist/htmlgl.min.js

Lines changed: 15 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

page/js/htmlgl.min.js

Lines changed: 15 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/gl-context.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
p.initListeners = function () {
5050
//window listeners
5151
w.addEventListener('scroll', this.updateScrollPosition.bind(this));
52-
w.addEventListener('resize', this.resizeViewer.bind(this));
52+
w.addEventListener('resize', w.HTMLGL.util.debounce(this.resizeViewer, 500).bind(this));
5353

5454
//document listeners - mouse and touch events
5555
document.addEventListener('click', this.onMouseEvent.bind(this), true);
@@ -97,7 +97,7 @@
9797

9898
p.appendViewer = function () {
9999
document.body.appendChild(this.renderer.view);
100-
requestAnimFrame(this.redrawStage.bind(this));
100+
requestAnimationFrame(this.redrawStage.bind(this));
101101
}
102102

103103
p.resizeViewer = function () {
@@ -143,7 +143,7 @@
143143
//We would like to rerender if something changed, otherwise stand by
144144
p.markStageAsChanged = function () {
145145
if (w.HTMLGL.stage && !w.HTMLGL.stage.changed) {
146-
requestAnimFrame(this.redrawStage);
146+
requestAnimationFrame(this.redrawStage);
147147
w.HTMLGL.stage.changed = true;
148148
}
149149
}

src/gl-element.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,16 @@
1919

2020
p.createdCallback = function () {
2121
//Checking is node created inside of html2canvas virtual window or not. We do not need WebGL there
22-
var isInsideHtml2Canvas = this.baseURI !== undefined && this.baseURI.length === 0;
22+
var currentNode = this,
23+
isMounted = false;
24+
25+
while (currentNode = currentNode.parentNode) {
26+
if (currentNode.tagName === 'BODY') {
27+
isMounted = true;
28+
}
29+
}
30+
31+
var isInsideHtml2Canvas = isMounted && (this.baseURI !== undefined && this.baseURI.length === 0);
2332

2433
if (!isInsideHtml2Canvas) {
2534
HTMLGL.elements.push(this);
@@ -110,6 +119,7 @@
110119
new HTMLGL.ImagesLoaded(self, function () {
111120
//Bounds could change during images loading
112121
self.updateBoundingRect();
122+
113123
self.image = html2canvas(self, {
114124
onrendered: self.applyNewTexture,
115125
width: self.boundingRect.width,

src/util.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,20 @@
2828
newEvent.dispatcher = 'html-gl';
2929
event.stopPropagation();
3030
element.dispatchEvent(newEvent);
31+
},
32+
debounce: function(func, wait, immediate) {
33+
var timeout;
34+
return function() {
35+
var context = this, args = arguments;
36+
var later = function() {
37+
timeout = null;
38+
if (!immediate) func.apply(context, args);
39+
};
40+
var callNow = immediate && !timeout;
41+
clearTimeout(timeout);
42+
timeout = setTimeout(later, wait);
43+
if (callNow) func.apply(context, args);
44+
};
3145
}
3246
}
3347
})(window);

0 commit comments

Comments
 (0)