| Index: third_party/WebKit/LayoutTests/fast/canvas/webgl/resources/tex-image-and-sub-image-image-bitmap-utils.js
|
| diff --git a/third_party/WebKit/LayoutTests/fast/canvas/webgl/resources/tex-image-and-sub-image-image-bitmap-utils.js b/third_party/WebKit/LayoutTests/fast/canvas/webgl/resources/tex-image-and-sub-image-image-bitmap-utils.js
|
| index fe6e8842e2f8bad506e8ab8a6dacab61e9a91a39..fc01d514a31b2a444bef962ff46befb80fdf2290 100644
|
| --- a/third_party/WebKit/LayoutTests/fast/canvas/webgl/resources/tex-image-and-sub-image-image-bitmap-utils.js
|
| +++ b/third_party/WebKit/LayoutTests/fast/canvas/webgl/resources/tex-image-and-sub-image-image-bitmap-utils.js
|
| @@ -13,7 +13,7 @@ function checkCanvasRect(buf, x, y, width, height, color, tolerance, bufWidth, r
|
| }
|
| }
|
|
|
| -function runOneIteration(useTexSubImage2D, bindingTarget, program, bitmap, flipY, premultiplyAlpha, retVal)
|
| +function runOneIteration(useTexSubImage2D, bindingTarget, program, bitmap, flipY, premultiplyAlpha, retVal, colorspace = 'empty')
|
| {
|
| gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
|
| // Enable writes to the RGBA channels
|
| @@ -61,12 +61,21 @@ function runOneIteration(useTexSubImage2D, bindingTarget, program, bitmap, flipY
|
| var bl = greenColor;
|
| var br = premultiplyAlpha ? ((retVal.alpha == 0.5) ? halfGreen : (retVal.alpha == 1) ? greenColor : blackColor) : greenColor;
|
|
|
| + var blueColor = [0, 0, 255];
|
| + if (colorspace == 'none') {
|
| + tl = tr = bl = br = blueColor;
|
| + } else if (colorspace == 'default' || colorspace == 'notprovided') {
|
| + tl = tr = bl = br = redColor;
|
| + }
|
| +
|
| var loc;
|
| if (bindingTarget == gl.TEXTURE_CUBE_MAP) {
|
| loc = gl.getUniformLocation(program, "face");
|
| }
|
|
|
| var tolerance = (retVal.alpha == 0) ? 0 : 3;
|
| + if (colorspace == 'default' || colorspace == 'none' || colorspace == 'notprovided')
|
| + tolerance = 13; // For linux and win, the tolerance can be 8.
|
| for (var tt = 0; tt < targets.length; ++tt) {
|
| if (bindingTarget == gl.TEXTURE_CUBE_MAP) {
|
| gl.uniform1i(loc, targets[tt]);
|
| @@ -89,27 +98,40 @@ function runOneIteration(useTexSubImage2D, bindingTarget, program, bitmap, flipY
|
|
|
| function runTestOnBindingTarget(bindingTarget, program, bitmaps, retVal) {
|
| var cases = [
|
| - { sub: false },
|
| - { sub: true },
|
| + { sub: false, bitmap: bitmaps.defaultOption, flipY: false, premultiply: true, colorspace: 'empty' },
|
| + { sub: true, bitmap: bitmaps.defaultOption, flipY: false, premultiply: true, colorspace: 'empty' },
|
| + { sub: false, bitmap: bitmaps.noFlipYPremul, flipY: false, premultiply: true, colorspace: 'empty' },
|
| + { sub: true, bitmap: bitmaps.noFlipYPremul, flipY: false, premultiply: true, colorspace: 'empty' },
|
| + { sub: false, bitmap: bitmaps.noFlipYDefault, flipY: false, premultiply: true, colorspace: 'empty' },
|
| + { sub: true, bitmap: bitmaps.noFlipYDefault, flipY: false, premultiply: true, colorspace: 'empty' },
|
| + { sub: false, bitmap: bitmaps.noFlipYUnpremul, flipY: false, premultiply: false, colorspace: 'empty' },
|
| + { sub: true, bitmap: bitmaps.noFlipYUnpremul, flipY: false, premultiply: false, colorspace: 'empty' },
|
| + { sub: false, bitmap: bitmaps.flipYPremul, flipY: true, premultiply: true, colorspace: 'empty' },
|
| + { sub: true, bitmap: bitmaps.flipYPremul, flipY: true, premultiply: true, colorspace: 'empty' },
|
| + { sub: false, bitmap: bitmaps.flipYDefault, flipY: true, premultiply: true, colorspace: 'empty' },
|
| + { sub: true, bitmap: bitmaps.flipYDefault, flipY: true, premultiply: true, colorspace: 'empty' },
|
| + { sub: false, bitmap: bitmaps.flipYUnpremul, flipY: true, premultiply: false, colorspace: 'empty' },
|
| + { sub: true, bitmap: bitmaps.flipYUnpremul, flipY: true, premultiply: false, colorspace: 'empty' },
|
| + { sub: false, bitmap: bitmaps.colorspaceDef, flipY: false, premultiply: true, colorspace: retVal.colorspaceEffect ? 'notprovided' : 'empty' },
|
| + { sub: true, bitmap: bitmaps.colorspaceDef, flipY: false, premultiply: true, colorspace: retVal.colorspaceEffect ? 'notprovided' : 'empty' },
|
| + { sub: false, bitmap: bitmaps.colorspaceNone, flipY: false, premultiply: true, colorspace: retVal.colorspaceEffect ? 'none' : 'empty' },
|
| + { sub: true, bitmap: bitmaps.colorspaceNone, flipY: false, premultiply: true, colorspace: retVal.colorspaceEffect ? 'none' : 'empty' },
|
| + { sub: false, bitmap: bitmaps.colorspaceDefault, flipY: false, premultiply: true, colorspace: retVal.colorspaceEffect ? 'default' : 'empty' },
|
| + { sub: true, bitmap: bitmaps.colorspaceDefault, flipY: false, premultiply: true, colorspace: retVal.colorspaceEffect ? 'default' : 'empty' },
|
| ];
|
|
|
| for (var i in cases) {
|
| - runOneIteration(cases[i].sub, bindingTarget, program, bitmaps.defaultOption, false, true, retVal);
|
| - runOneIteration(cases[i].sub, bindingTarget, program, bitmaps.noFlipYPremul, false, true, retVal);
|
| - runOneIteration(cases[i].sub, bindingTarget, program, bitmaps.noFlipYDefault, false, true, retVal);
|
| - runOneIteration(cases[i].sub, bindingTarget, program, bitmaps.noFlipYUnpremul, false, false, retVal);
|
| - runOneIteration(cases[i].sub, bindingTarget, program, bitmaps.flipYPremul, true, true, retVal);
|
| - runOneIteration(cases[i].sub, bindingTarget, program, bitmaps.flipYDefault, true, true, retVal);
|
| - runOneIteration(cases[i].sub, bindingTarget, program, bitmaps.flipYUnpremul, true, false, retVal);
|
| + runOneIteration(cases[i].sub, bindingTarget, program, cases[i].bitmap, cases[i].flipY,
|
| + cases[i].premultiply, retVal, cases[i].colorspace);
|
| }
|
| }
|
|
|
| -function runTest(bitmaps, alphaVal)
|
| +function runTest(bitmaps, alphaVal, colorspaceEffective)
|
| {
|
| - var retVal = {testPassed: true, alpha: alphaVal};
|
| + var retVal = {testPassed: true, alpha: alphaVal, colorspaceEffect: colorspaceEffective};
|
| var program = tiu.setupTexturedQuad(gl, internalFormat);
|
| runTestOnBindingTarget(gl.TEXTURE_2D, program, bitmaps, retVal);
|
| -// program = tiu.setupTexturedQuadWithCubeMap(gl, internalFormat);
|
| -// runTestOnBindingTarget(gl.TEXTURE_CUBE_MAP, program, bitmaps, retVal);
|
| + program = tiu.setupTexturedQuadWithCubeMap(gl, internalFormat);
|
| + runTestOnBindingTarget(gl.TEXTURE_CUBE_MAP, program, bitmaps, retVal);
|
| return retVal.testPassed;
|
| }
|
|
|