spryte 0.4.0 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/shared.js +21 -2
- package/dist/shared.js.map +1 -1
- package/package.json +1 -1
package/dist/shared.js
CHANGED
|
@@ -37,13 +37,29 @@ class SharedBackend extends WebGL2Backend {
|
|
|
37
37
|
fbH;
|
|
38
38
|
/** The host's scissor box at `begin()`, or null when its scissor test was off. */
|
|
39
39
|
hostScissor = null;
|
|
40
|
+
/** The context was restored since the last frame: rebuild at the next `begin()`, inside the host's slot. */
|
|
41
|
+
restored = false;
|
|
42
|
+
// Passive listeners: the host owns the events (its preventDefault lets the browser restore) and its own
|
|
43
|
+
// rebuild. spryte only notes them, since a loss and restore can both happen between two frames.
|
|
44
|
+
noteLost = () => {
|
|
45
|
+
this.lost = true;
|
|
46
|
+
};
|
|
47
|
+
noteRestored = () => {
|
|
48
|
+
this.restored = true;
|
|
49
|
+
};
|
|
40
50
|
constructor(gl) {
|
|
41
51
|
super(gl);
|
|
42
52
|
this.fbW = gl.drawingBufferWidth;
|
|
43
53
|
this.fbH = gl.drawingBufferHeight;
|
|
44
|
-
// The host owns context loss; begin() notices it instead.
|
|
45
54
|
gl.canvas.removeEventListener("webglcontextlost", this.onLost);
|
|
46
55
|
gl.canvas.removeEventListener("webglcontextrestored", this.onRestored);
|
|
56
|
+
gl.canvas.addEventListener("webglcontextlost", this.noteLost);
|
|
57
|
+
gl.canvas.addEventListener("webglcontextrestored", this.noteRestored);
|
|
58
|
+
}
|
|
59
|
+
dispose() {
|
|
60
|
+
this.gl.canvas.removeEventListener("webglcontextlost", this.noteLost);
|
|
61
|
+
this.gl.canvas.removeEventListener("webglcontextrestored", this.noteRestored);
|
|
62
|
+
super.dispose();
|
|
47
63
|
}
|
|
48
64
|
begin(clear, width, height) {
|
|
49
65
|
const gl = this.gl;
|
|
@@ -51,8 +67,11 @@ class SharedBackend extends WebGL2Backend {
|
|
|
51
67
|
this.lost = true;
|
|
52
68
|
return;
|
|
53
69
|
}
|
|
54
|
-
if (this.lost)
|
|
70
|
+
if (this.lost || this.restored) {
|
|
71
|
+
// Every GPU object died with the old context; the host has rebuilt its own by now.
|
|
72
|
+
this.restored = false;
|
|
55
73
|
this.onRestored();
|
|
74
|
+
}
|
|
56
75
|
// The host drew since last frame: rebind everything spryte otherwise assumes stays bound.
|
|
57
76
|
gl.useProgram(this.active.program);
|
|
58
77
|
gl.bindVertexArray(this.vao);
|
package/dist/shared.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAkB5C;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAAC,EAA0B,EAAE,OAAO,GAA0B,EAAE;IAClG,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,kBAAkB,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC;IAC3D,OAAO;QACL,IAAI;QACJ,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM;YAC/B,OAAO,CAAC,EAAE,GAAG,WAAW,CAAC;YACzB,OAAO,CAAC,GAAG,GAAG,KAAK,CAAC;YACpB,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC7B,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,aAAc,SAAQ,aAAa;IACvC,EAAE,GAA4B,IAAI,CAAC;IACnC,GAAG,CAAS;IACZ,GAAG,CAAS;IACZ,kFAAkF;IAC1E,WAAW,GAAsB,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED