WIP: optimizations
This commit is contained in:
parent
eda11577c6
commit
7c4f817d96
|
@ -8,7 +8,7 @@
|
||||||
"integrity": "sha512-YstAqNb0MCN8PjdLCDfRsBcGVRN41f3vgLvaI0IrIcBp4AqILRSS0DeWNGkicC+f/zRIPJLc+9RURVSepwvfBw==",
|
"integrity": "sha512-YstAqNb0MCN8PjdLCDfRsBcGVRN41f3vgLvaI0IrIcBp4AqILRSS0DeWNGkicC+f/zRIPJLc+9RURVSepwvfBw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"commander": "2.19.0"
|
"commander": "^2.15.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@types/webgl2": {
|
"@types/webgl2": {
|
||||||
|
@ -45,9 +45,9 @@
|
||||||
"integrity": "sha1-3RqswsF/yyvT/DJBHGYz0Ne2D9Q=",
|
"integrity": "sha1-3RqswsF/yyvT/DJBHGYz0Ne2D9Q=",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"glsl-token-inject-block": "1.1.0",
|
"glsl-token-inject-block": "^1.0.0",
|
||||||
"glsl-token-string": "1.0.1",
|
"glsl-token-string": "^1.0.1",
|
||||||
"glsl-tokenizer": "2.1.5"
|
"glsl-tokenizer": "^2.0.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"glsl-resolve": {
|
"glsl-resolve": {
|
||||||
|
@ -56,8 +56,8 @@
|
||||||
"integrity": "sha1-iUvvc5ENeSyBtRQxgANdCnivdtM=",
|
"integrity": "sha1-iUvvc5ENeSyBtRQxgANdCnivdtM=",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"resolve": "0.6.3",
|
"resolve": "^0.6.1",
|
||||||
"xtend": "2.2.0"
|
"xtend": "^2.1.2"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"resolve": {
|
"resolve": {
|
||||||
|
@ -80,7 +80,7 @@
|
||||||
"integrity": "sha1-y4kqqVmTYjFyhHDU90AySJaX+p0=",
|
"integrity": "sha1-y4kqqVmTYjFyhHDU90AySJaX+p0=",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"glsl-tokenizer": "2.1.5"
|
"glsl-tokenizer": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"glsl-token-depth": {
|
"glsl-token-depth": {
|
||||||
|
@ -95,10 +95,10 @@
|
||||||
"integrity": "sha1-D8kKsyYYa4L1l7LnfcniHvzTIHY=",
|
"integrity": "sha1-D8kKsyYYa4L1l7LnfcniHvzTIHY=",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"glsl-token-assignments": "2.0.2",
|
"glsl-token-assignments": "^2.0.0",
|
||||||
"glsl-token-depth": "1.1.2",
|
"glsl-token-depth": "^1.1.0",
|
||||||
"glsl-token-properties": "1.0.1",
|
"glsl-token-properties": "^1.0.0",
|
||||||
"glsl-token-scope": "1.1.2"
|
"glsl-token-scope": "^1.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"glsl-token-inject-block": {
|
"glsl-token-inject-block": {
|
||||||
|
@ -137,7 +137,7 @@
|
||||||
"integrity": "sha512-XSZEJ/i4dmz3Pmbnpsy3cKh7cotvFlBiZnDOwnj/05EwNp2XrhQ4XKJxT7/pDt4kp4YcpRSKz8eTV7S+mwV6MA==",
|
"integrity": "sha512-XSZEJ/i4dmz3Pmbnpsy3cKh7cotvFlBiZnDOwnj/05EwNp2XrhQ4XKJxT7/pDt4kp4YcpRSKz8eTV7S+mwV6MA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"through2": "0.6.5"
|
"through2": "^0.6.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"glslify-bundle": {
|
"glslify-bundle": {
|
||||||
|
@ -146,15 +146,15 @@
|
||||||
"integrity": "sha512-plaAOQPv62M1r3OsWf2UbjN0hUYAB7Aph5bfH58VxJZJhloRNbxOL9tl/7H71K7OLJoSJ2ZqWOKk3ttQ6wy24A==",
|
"integrity": "sha512-plaAOQPv62M1r3OsWf2UbjN0hUYAB7Aph5bfH58VxJZJhloRNbxOL9tl/7H71K7OLJoSJ2ZqWOKk3ttQ6wy24A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"glsl-inject-defines": "1.0.3",
|
"glsl-inject-defines": "^1.0.1",
|
||||||
"glsl-token-defines": "1.0.0",
|
"glsl-token-defines": "^1.0.0",
|
||||||
"glsl-token-depth": "1.1.2",
|
"glsl-token-depth": "^1.1.1",
|
||||||
"glsl-token-descope": "1.0.2",
|
"glsl-token-descope": "^1.0.2",
|
||||||
"glsl-token-scope": "1.1.2",
|
"glsl-token-scope": "^1.1.1",
|
||||||
"glsl-token-string": "1.0.1",
|
"glsl-token-string": "^1.0.1",
|
||||||
"glsl-token-whitespace-trim": "1.0.0",
|
"glsl-token-whitespace-trim": "^1.0.0",
|
||||||
"glsl-tokenizer": "2.1.5",
|
"glsl-tokenizer": "^2.0.2",
|
||||||
"murmurhash-js": "1.0.0",
|
"murmurhash-js": "^1.0.0",
|
||||||
"shallow-copy": "0.0.1"
|
"shallow-copy": "0.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -164,14 +164,14 @@
|
||||||
"integrity": "sha512-Ogm179MCazwIRyEqs3g3EOY4Y3XIAa0yl8J5RE9rJC6QH1w8weVOp2RZu0mvnYy/2xIas1w166YR2eZdDkWQxg==",
|
"integrity": "sha512-Ogm179MCazwIRyEqs3g3EOY4Y3XIAa0yl8J5RE9rJC6QH1w8weVOp2RZu0mvnYy/2xIas1w166YR2eZdDkWQxg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@choojs/findup": "0.2.1",
|
"@choojs/findup": "^0.2.0",
|
||||||
"events": "1.1.1",
|
"events": "^1.0.2",
|
||||||
"glsl-resolve": "0.0.1",
|
"glsl-resolve": "0.0.1",
|
||||||
"glsl-tokenizer": "2.1.5",
|
"glsl-tokenizer": "^2.0.0",
|
||||||
"graceful-fs": "4.1.15",
|
"graceful-fs": "^4.1.2",
|
||||||
"inherits": "2.0.3",
|
"inherits": "^2.0.1",
|
||||||
"map-limit": "0.0.1",
|
"map-limit": "0.0.1",
|
||||||
"resolve": "1.8.1"
|
"resolve": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"graceful-fs": {
|
"graceful-fs": {
|
||||||
|
@ -198,7 +198,7 @@
|
||||||
"integrity": "sha1-63lhAxwPDo0AG/LVb6toXViCLzg=",
|
"integrity": "sha1-63lhAxwPDo0AG/LVb6toXViCLzg=",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"once": "1.3.3"
|
"once": "~1.3.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"murmurhash-js": {
|
"murmurhash-js": {
|
||||||
|
@ -213,7 +213,7 @@
|
||||||
"integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=",
|
"integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"wrappy": "1.0.2"
|
"wrappy": "1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"parse-color": {
|
"parse-color": {
|
||||||
|
@ -221,7 +221,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/parse-color/-/parse-color-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/parse-color/-/parse-color-1.0.0.tgz",
|
||||||
"integrity": "sha1-e3SLlag/A/FqlPU15S1/PZRlhhk=",
|
"integrity": "sha1-e3SLlag/A/FqlPU15S1/PZRlhhk=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"color-convert": "0.5.3"
|
"color-convert": "~0.5.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"path-parse": {
|
"path-parse": {
|
||||||
|
@ -236,10 +236,10 @@
|
||||||
"integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
|
"integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"core-util-is": "1.0.2",
|
"core-util-is": "~1.0.0",
|
||||||
"inherits": "2.0.3",
|
"inherits": "~2.0.1",
|
||||||
"isarray": "0.0.1",
|
"isarray": "0.0.1",
|
||||||
"string_decoder": "0.10.31"
|
"string_decoder": "~0.10.x"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"resolve": {
|
"resolve": {
|
||||||
|
@ -248,7 +248,7 @@
|
||||||
"integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==",
|
"integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"path-parse": "1.0.6"
|
"path-parse": "^1.0.5"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"shallow-copy": {
|
"shallow-copy": {
|
||||||
|
@ -274,8 +274,8 @@
|
||||||
"integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
|
"integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"readable-stream": "1.0.34",
|
"readable-stream": ">=1.0.33-1 <1.1.0-0",
|
||||||
"xtend": "4.0.1"
|
"xtend": ">=4.0.0 <4.1.0-0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"xtend": {
|
"xtend": {
|
||||||
|
|
|
@ -246,6 +246,7 @@ class App {
|
||||||
gl.drawArraysInstanced(gl.TRIANGLE_FAN, 0, 4, unwrapNull(this.primitiveCount));
|
gl.drawArraysInstanced(gl.TRIANGLE_FAN, 0, 4, unwrapNull(this.primitiveCount));
|
||||||
gl.disable(gl.BLEND);
|
gl.disable(gl.BLEND);
|
||||||
|
|
||||||
|
/*
|
||||||
// Read back stencil and dump it.
|
// Read back stencil and dump it.
|
||||||
const totalStencilFramebufferSize = STENCIL_FRAMEBUFFER_SIZE.width *
|
const totalStencilFramebufferSize = STENCIL_FRAMEBUFFER_SIZE.width *
|
||||||
STENCIL_FRAMEBUFFER_SIZE.height * 4;
|
STENCIL_FRAMEBUFFER_SIZE.height * 4;
|
||||||
|
@ -272,6 +273,7 @@ class App {
|
||||||
stencilDumpCanvasContext.putImageData(stencilDumpImageData, 0, 0);
|
stencilDumpCanvasContext.putImageData(stencilDumpImageData, 0, 0);
|
||||||
document.body.appendChild(stencilDumpCanvas);
|
document.body.appendChild(stencilDumpCanvas);
|
||||||
//console.log(stencilData);
|
//console.log(stencilData);
|
||||||
|
*/
|
||||||
|
|
||||||
// Cover.
|
// Cover.
|
||||||
gl.bindFramebuffer(gl.FRAMEBUFFER, null);
|
gl.bindFramebuffer(gl.FRAMEBUFFER, null);
|
||||||
|
|
|
@ -37,7 +37,8 @@ void main() {
|
||||||
vec2 from = aFrom, ctrl = aCtrl, to = aTo;
|
vec2 from = aFrom, ctrl = aCtrl, to = aTo;
|
||||||
|
|
||||||
vec2 dilation, position;
|
vec2 dilation, position;
|
||||||
bool zeroArea = abs(from.x - to.x) < 0.01;
|
bool zeroArea = abs(from.x - to.x) < 0.1 ||
|
||||||
|
abs(uTileSize.y - min(min(from.y, to.y), ctrl.y)) < 0.1;
|
||||||
if (aTessCoord.x < 0.5) {
|
if (aTessCoord.x < 0.5) {
|
||||||
position.x = min(min(from.x, to.x), ctrl.x);
|
position.x = min(min(from.x, to.x), ctrl.x);
|
||||||
dilation.x = zeroArea ? 0.0 : -0.5;
|
dilation.x = zeroArea ? 0.0 : -0.5;
|
||||||
|
@ -58,5 +59,8 @@ void main() {
|
||||||
vCtrl = ctrl - position;
|
vCtrl = ctrl - position;
|
||||||
vTo = to - position;
|
vTo = to - position;
|
||||||
|
|
||||||
gl_Position = vec4((tileOrigin + position) / uFramebufferSize * 2.0 - 1.0, 0.0, 1.0);
|
if (zeroArea)
|
||||||
|
gl_Position = vec4(0.0);
|
||||||
|
else
|
||||||
|
gl_Position = vec4((tileOrigin + position) / uFramebufferSize * 2.0 - 1.0, 0.0, 1.0);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue