MCPcopy Index your code
hub / github.com/microsoft/SandDance / blit

Function blit

docs/app/js/sanddance-app.js:63858–63891  ·  view source on GitHub ↗
(source, target)

Source from the content-addressed store, hash-verified

63856 return texture;
63857}
63858function blit(source, target) {
63859 var _ref6 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}, _ref6$sourceAttachmen = _ref6.sourceAttachment, sourceAttachment = _ref6$sourceAttachmen === void 0 ? 36064 : _ref6$sourceAttachmen, _ref6$sourceX = _ref6.sourceX0, sourceX0 = _ref6$sourceX === void 0 ? 0 : _ref6$sourceX, _ref6$sourceY = _ref6.sourceY0, sourceY0 = _ref6$sourceY === void 0 ? 0 : _ref6$sourceY, sourceX1 = _ref6.sourceX1, sourceY1 = _ref6.sourceY1, _ref6$targetX = _ref6.targetX0, targetX0 = _ref6$targetX === void 0 ? 0 : _ref6$targetX, _ref6$targetY = _ref6.targetY0, targetY0 = _ref6$targetY === void 0 ? 0 : _ref6$targetY, targetX1 = _ref6.targetX1, targetY1 = _ref6.targetY1, _ref6$color = _ref6.color, color = _ref6$color === void 0 ? true : _ref6$color, _ref6$depth = _ref6.depth, depth = _ref6$depth === void 0 ? false : _ref6$depth, _ref6$stencil = _ref6.stencil, stencil = _ref6$stencil === void 0 ? false : _ref6$stencil, _ref6$mask = _ref6.mask, mask = _ref6$mask === void 0 ? 0 : _ref6$mask, _ref6$filter = _ref6.filter, filter = _ref6$filter === void 0 ? 9728 : _ref6$filter;
63860 var _getFramebuffer4 = getFramebuffer(source), srcFramebuffer = _getFramebuffer4.framebuffer, deleteSrcFramebuffer = _getFramebuffer4.deleteFramebuffer;
63861 var _getFramebuffer5 = getFramebuffer(target), dstFramebuffer = _getFramebuffer5.framebuffer, deleteDstFramebuffer = _getFramebuffer5.deleteFramebuffer;
63862 (0, _utils.assert)(srcFramebuffer);
63863 (0, _utils.assert)(dstFramebuffer);
63864 var gl = dstFramebuffer.gl, handle = dstFramebuffer.handle, width = dstFramebuffer.width, height = dstFramebuffer.height, readBuffer = dstFramebuffer.readBuffer;
63865 (0, _webglUtils.assertWebGL2Context)(gl);
63866 if (!srcFramebuffer.handle && sourceAttachment === 36064) sourceAttachment = 1028;
63867 if (color) mask |= 16384;
63868 if (depth) mask |= 256;
63869 if (stencil) mask |= 1024;
63870 if (deleteSrcFramebuffer || deleteDstFramebuffer) {
63871 if (mask & 1280) {
63872 mask = 16384;
63873 (0, _gltools.log).warn("Blitting from or into a Texture object, forcing mask to GL.COLOR_BUFFER_BIT")();
63874 }
63875 }
63876 (0, _utils.assert)(mask);
63877 sourceX1 = sourceX1 === undefined ? srcFramebuffer.width : sourceX1;
63878 sourceY1 = sourceY1 === undefined ? srcFramebuffer.height : sourceY1;
63879 targetX1 = targetX1 === undefined ? width : targetX1;
63880 targetY1 = targetY1 === undefined ? height : targetY1;
63881 var prevDrawHandle = gl.bindFramebuffer(36009, handle);
63882 var prevReadHandle = gl.bindFramebuffer(36008, srcFramebuffer.handle);
63883 gl.readBuffer(sourceAttachment);
63884 gl.blitFramebuffer(sourceX0, sourceY0, sourceX1, sourceY1, targetX0, targetY0, targetX1, targetY1, mask, filter);
63885 gl.readBuffer(readBuffer);
63886 gl.bindFramebuffer(36008, prevReadHandle || null);
63887 gl.bindFramebuffer(36009, prevDrawHandle || null);
63888 if (deleteSrcFramebuffer) srcFramebuffer["delete"]();
63889 if (deleteDstFramebuffer) dstFramebuffer["delete"]();
63890 return dstFramebuffer;
63891}
63892function getFramebuffer(source) {
63893 if (!(source instanceof (0, _framebufferDefault.default))) return {
63894 framebuffer: (0, _textureUtils.toFramebuffer)(source),

Callers

nothing calls this directly

Calls 2

getFramebufferFunction · 0.70
warnMethod · 0.45

Tested by

no test coverage detected