MCPcopy Create free account
hub / github.com/microsoft/SandDance / copyToTexture

Function copyToTexture

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

Source from the content-addressed store, hash-verified

63820 return targetImage;
63821}
63822function copyToTexture(source, target) {
63823 var _ref5 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}, _ref5$sourceX = _ref5.sourceX, sourceX = _ref5$sourceX === void 0 ? 0 : _ref5$sourceX, _ref5$sourceY = _ref5.sourceY, sourceY = _ref5$sourceY === void 0 ? 0 : _ref5$sourceY, targetX = _ref5.targetX, targetY = _ref5.targetY, targetZ = _ref5.targetZ, _ref5$targetMipmaplev = _ref5.targetMipmaplevel, targetMipmaplevel = _ref5$targetMipmaplev === void 0 ? 0 : _ref5$targetMipmaplev, _ref5$targetInternalF = _ref5.targetInternalFormat, targetInternalFormat = _ref5$targetInternalF === void 0 ? 6408 : _ref5$targetInternalF, width = _ref5.width, height = _ref5.height;
63824 var _getFramebuffer3 = getFramebuffer(source), framebuffer = _getFramebuffer3.framebuffer, deleteFramebuffer = _getFramebuffer3.deleteFramebuffer;
63825 (0, _utils.assert)(framebuffer);
63826 var gl = framebuffer.gl, handle = framebuffer.handle;
63827 var isSubCopy = typeof targetX !== "undefined" || typeof targetY !== "undefined" || typeof targetZ !== "undefined";
63828 targetX = targetX || 0;
63829 targetY = targetY || 0;
63830 targetZ = targetZ || 0;
63831 var prevHandle = gl.bindFramebuffer(36160, handle);
63832 (0, _utils.assert)(target);
63833 var texture = null;
63834 if (target instanceof (0, _textureDefault.default)) {
63835 texture = target;
63836 width = Number.isFinite(width) ? width : texture.width;
63837 height = Number.isFinite(height) ? height : texture.height;
63838 texture.bind(0);
63839 target = texture.target;
63840 }
63841 if (!isSubCopy) gl.copyTexImage2D(target, targetMipmaplevel, targetInternalFormat, sourceX, sourceY, width, height, 0);
63842 else switch(target){
63843 case 3553:
63844 case 34067:
63845 gl.copyTexSubImage2D(target, targetMipmaplevel, targetX, targetY, sourceX, sourceY, width, height);
63846 break;
63847 case 35866:
63848 case 32879:
63849 gl.copyTexSubImage3D(target, targetMipmaplevel, targetX, targetY, targetZ, sourceX, sourceY, width, height);
63850 break;
63851 default:
63852 }
63853 if (texture) texture.unbind();
63854 gl.bindFramebuffer(36160, prevHandle || null);
63855 if (deleteFramebuffer) framebuffer["delete"]();
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;

Callers

nothing calls this directly

Calls 1

getFramebufferFunction · 0.70

Tested by

no test coverage detected