Compare commits

..

5 Commits

Author SHA1 Message Date
greenkeeper[bot]
d9fd915efe chore(package): update copy-webpack-plugin to version 5.1.1
Closes #416
2019-12-12 10:11:35 +00:00
DD Liu
e12646871e Merge pull request #487 from adroitwhiz/pen-stamp-to-framebuffer
penStamp() directly to the PenSkin's framebuffer
2019-12-11 15:30:28 -05:00
adroitwhiz
b1419d0468 set silhouette dirty 2019-08-04 06:43:59 -04:00
adroitwhiz
a8320b9ebc remove magic numbers 2019-08-01 22:28:49 -04:00
adroitwhiz
9f15b86672 penStamp directly to PenSkin's framebuffer 2019-07-25 07:59:52 -04:00
2 changed files with 12 additions and 15 deletions

View File

@@ -30,7 +30,7 @@
"babel-polyfill": "^6.22.0",
"babel-preset-env": "^1.6.1",
"chromeless": "^1.5.1",
"copy-webpack-plugin": "^4.5.1",
"copy-webpack-plugin": "^5.1.1",
"docdash": "^0.4.0",
"eslint": "^4.6.1",
"eslint-config-scratch": "^5.0.0",
@@ -54,6 +54,6 @@
"raw-loader": "^0.5.1",
"scratch-storage": "^1.0.0",
"scratch-svg-renderer": "0.2.0-prerelease.20191104164753",
"twgl.js": "4.14.1"
"twgl.js": "4.4.0"
}
}

View File

@@ -1542,23 +1542,20 @@ class RenderWebGL extends EventEmitter {
const skin = /** @type {PenSkin} */ this._allSkins[penSkinID];
const gl = this._gl;
twgl.bindFramebufferInfo(gl, this._queryBufferInfo);
twgl.bindFramebufferInfo(gl, skin._framebuffer);
// Limit size of viewport to the bounds around the stamp Drawable and create the projection matrix for the draw.
gl.viewport(0, 0, bounds.width, bounds.height);
gl.viewport(
(this._nativeSize[0] * 0.5) + bounds.left,
(this._nativeSize[1] * 0.5) - bounds.top,
bounds.width,
bounds.height
);
const projection = twgl.m4.ortho(bounds.left, bounds.right, bounds.top, bounds.bottom, -1, 1);
gl.clearColor(0, 0, 0, 0);
gl.clear(gl.COLOR_BUFFER_BIT);
try {
gl.disable(gl.BLEND);
this._drawThese([stampID], ShaderManager.DRAW_MODE.stamp, projection, {ignoreVisibility: true});
} finally {
gl.enable(gl.BLEND);
}
skin._drawToBuffer(this._queryBufferInfo.attachments[0], bounds.left, bounds.top);
// Draw the stamped sprite onto the PenSkin's framebuffer.
this._drawThese([stampID], ShaderManager.DRAW_MODE.stamp, projection, {ignoreVisibility: true});
skin._silhouetteDirty = true;
}
/* ******