author | Victor Porof <vporof@mozilla.com> |
Tue, 22 Jul 2014 13:01:26 -0400 | |
changeset 195539 | ab11981ffeb0522984fa0fbbcd318748843061c6 |
parent 195538 | 3d091524a1b8b81722ef94b1bab23d70cf2e5a02 |
child 195540 | 5683746bac22b4b198e6d049742d04b870dfb480 |
child 195669 | 5796b420f292c613be6f49c50d5a485c7ba3dc56 |
push id | 27185 |
push user | kwierso@gmail.com |
push date | Wed, 23 Jul 2014 01:05:43 +0000 |
treeherder | mozilla-central@5683746bac22 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | rcampbell |
bugs | 1041225, 1041158 |
milestone | 34.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/toolkit/devtools/server/actors/canvas.js +++ b/toolkit/devtools/server/actors/canvas.js @@ -607,17 +607,17 @@ let ContextUtils = { // In case of WebGL contexts, rendering will be done offscreen, in a // custom framebuffer, but using the same provided context. This is // necessary because it's very memory-unfriendly to rebuild all the // required GL state (like recompiling shaders, setting global flags, etc.) // in an entirely new canvas. However, special care is needed to not // permanently affect the existing GL state in the process. if (contextType == CallWatcherFront.CANVAS_WEBGL_CONTEXT) { // To keep things fast, replay the context calls on a framebuffer - // of smaller dimensions than the actual canvas (maximum 512x512 pixels). + // of smaller dimensions than the actual canvas (maximum 256x256 pixels). let scaling = Math.min(CanvasFront.WEBGL_SCREENSHOT_MAX_HEIGHT, h) / h; replayContextScaling = scaling; w = (w * scaling) | 0; h = (h * scaling) | 0; // Fetch the same WebGL context and bind a new framebuffer. let gl = replayContext = this.getWebGLContext(canvas); let { newFramebuffer, oldFramebuffer } = this.createBoundFramebuffer(gl, w, h); @@ -662,18 +662,16 @@ let ContextUtils = { replayContext.viewport.apply(replayContext, customViewport); continue; } } if (type == CallWatcherFront.METHOD_FUNCTION) { replayContext[name].apply(replayContext, args); } else if (type == CallWatcherFront.SETTER_FUNCTION) { replayContext[name] = args; - } else { - // Ignore getter calls. } if (CanvasFront.DRAW_CALLS.has(name)) { lastDrawCallIndex = i; } } return { replayContext: replayContext, @@ -737,17 +735,17 @@ let ContextUtils = { createBoundFramebuffer: function(gl, width, height) { let oldFramebuffer = gl.getParameter(gl.FRAMEBUFFER_BINDING); let oldRenderbufferBinding = gl.getParameter(gl.RENDERBUFFER_BINDING); let oldTextureBinding = gl.getParameter(gl.TEXTURE_BINDING_2D); let newFramebuffer = gl.createFramebuffer(); gl.bindFramebuffer(gl.FRAMEBUFFER, newFramebuffer); - // Use a texture as the color rendebuffer attachment, since consumers of + // Use a texture as the color renderbuffer attachment, since consumers of // this function will most likely want to read the rendered pixels back. let colorBuffer = gl.createTexture(); gl.bindTexture(gl.TEXTURE_2D, colorBuffer); gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);