X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fthird_party%2Fwebgl%2Fsrc%2Fsdk%2Ftests%2Fconformance%2Fresources%2Fglsl-generator.js;h=7c1e3382810e1bbedf0f4a742ea73c160d8d51fb;hb=3545e9f2671f595d2a2f3ee75ca0393b01e35ef6;hp=b2d8a1e4f1c2bf6dc52879237bf32458d2a05086;hpb=7d210d4c7e9ba36e635eabc5b5780495f8a63292;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/third_party/webgl/src/sdk/tests/conformance/resources/glsl-generator.js b/src/third_party/webgl/src/sdk/tests/conformance/resources/glsl-generator.js index b2d8a1e..7c1e338 100644 --- a/src/third_party/webgl/src/sdk/tests/conformance/resources/glsl-generator.js +++ b/src/third_party/webgl/src/sdk/tests/conformance/resources/glsl-generator.js @@ -248,6 +248,68 @@ var generateTestShader = function( return shader; }; +function _reportResults(refData, refImg, testData, testImg, tolerance, + width, height, ctx, imgData, wtu, canvas2d, consoleDiv) { + var same = true; + var firstFailure = null; + for (var yy = 0; yy < height; ++yy) { + for (var xx = 0; xx < width; ++xx) { + var offset = (yy * width + xx) * 4; + var imgOffset = ((height - yy - 1) * width + xx) * 4; + imgData.data[imgOffset + 0] = 0; + imgData.data[imgOffset + 1] = 0; + imgData.data[imgOffset + 2] = 0; + imgData.data[imgOffset + 3] = 255; + if (Math.abs(refData[offset + 0] - testData[offset + 0]) > tolerance || + Math.abs(refData[offset + 1] - testData[offset + 1]) > tolerance || + Math.abs(refData[offset + 2] - testData[offset + 2]) > tolerance || + Math.abs(refData[offset + 3] - testData[offset + 3]) > tolerance) { + var detail = 'at (' + xx + ',' + yy + '): ref=(' + + refData[offset + 0] + ',' + + refData[offset + 1] + ',' + + refData[offset + 2] + ',' + + refData[offset + 3] + ') test=(' + + testData[offset + 0] + ',' + + testData[offset + 1] + ',' + + testData[offset + 2] + ',' + + testData[offset + 3] + ') tolerance=' + tolerance; + consoleDiv.appendChild(document.createTextNode(detail)); + consoleDiv.appendChild(document.createElement('br')); + if (!firstFailure) { + firstFailure = ": " + detail; + } + imgData.data[imgOffset] = 255; + same = false; + } + } + } + + var diffImg = null; + if (!same) { + ctx.putImageData(imgData, 0, 0); + diffImg = wtu.makeImageFromCanvas(canvas2d); + } + + var div = document.createElement("div"); + div.className = "testimages"; + wtu.insertImage(div, "ref", refImg); + wtu.insertImage(div, "test", testImg); + if (diffImg) { + wtu.insertImage(div, "diff", diffImg); + } + div.appendChild(document.createElement('br')); + + consoleDiv.appendChild(div); + + if (!same) { + testFailed("images are different" + (firstFailure ? firstFailure : "")); + } else { + testPassed("images are the same"); + } + + consoleDiv.appendChild(document.createElement('hr')); +} + var runFeatureTest = function(params) { var wtu = WebGLTestUtils; var gridRes = params.gridRes; @@ -348,7 +410,7 @@ var runFeatureTest = function(params) { var refData = draw( referenceVertexShader, referenceFragmentShader); - var refImg = wtu.makeImage(canvas); + var refImg = wtu.makeImageFromCanvas(canvas); if (ss == 0) { var testData = draw( testVertexShader, referenceFragmentShader); @@ -356,61 +418,15 @@ var runFeatureTest = function(params) { var testData = draw( referenceVertexShader, testFragmentShader); } - var testImg = wtu.makeImage(canvas); + var testImg = wtu.makeImageFromCanvas(canvas); - reportResults(refData, refImg, testData, testImg, shaderInfo.tolerance); + _reportResults(refData, refImg, testData, testImg, shaderInfo.tolerance, + width, height, ctx, imgData, wtu, canvas2d, consoleDiv); } } finishTest(); - function reportResults(refData, refImage, testData, testImage, tolerance) { - var same = true; - for (var yy = 0; yy < height; ++yy) { - for (var xx = 0; xx < width; ++xx) { - var offset = (yy * width + xx) * 4; - var imgOffset = ((height - yy - 1) * width + xx) * 4; - imgData.data[imgOffset + 0] = 0; - imgData.data[imgOffset + 1] = 0; - imgData.data[imgOffset + 2] = 0; - imgData.data[imgOffset + 3] = 255; - if (Math.abs(refData[offset + 0] - testData[offset + 0]) > tolerance || - Math.abs(refData[offset + 1] - testData[offset + 1]) > tolerance || - Math.abs(refData[offset + 2] - testData[offset + 2]) > tolerance || - Math.abs(refData[offset + 3] - testData[offset + 3]) > tolerance) { - imgData.data[imgOffset] = 255; - same = false; - } - } - } - - var diffImg = null; - if (!same) { - ctx.putImageData(imgData, 0, 0); - diffImg = wtu.makeImage(canvas2d); - } - - var div = document.createElement("div"); - div.className = "testimages"; - wtu.insertImage(div, "ref", refImg); - wtu.insertImage(div, "test", testImg); - if (diffImg) { - wtu.insertImage(div, "diff", diffImg); - } - div.appendChild(document.createElement('br')); - - - consoleDiv.appendChild(div); - - if (!same) { - testFailed("images are different"); - } else { - testPassed("images are the same"); - } - - consoleDiv.appendChild(document.createElement('hr')); - } - function draw(vertexShader, fragmentShader) { var program = wtu.createProgram(gl, vertexShader, fragmentShader, testFailed); @@ -526,66 +542,21 @@ var runBasicTest = function(params) { debug(""); var refData = draw(referenceVertexShader, referenceFragmentShader); - var refImg = wtu.makeImage(canvas); + var refImg = wtu.makeImageFromCanvas(canvas); if (ss == 0) { var testData = draw(testVertexShader, referenceFragmentShader); } else { var testData = draw(referenceVertexShader, testFragmentShader); } - var testImg = wtu.makeImage(canvas); + var testImg = wtu.makeImageFromCanvas(canvas); - reportResults(refData, refImg, testData, testImg, shaderInfo.tolerance); + _reportResults(refData, refImg, testData, testImg, shaderInfo.tolerance, + width, height, ctx, imgData, wtu, canvas2d, consoleDiv); } } finishTest(); - function reportResults(refData, refImage, testData, testImage, tolerance) { - var same = true; - for (var yy = 0; yy < height; ++yy) { - for (var xx = 0; xx < width; ++xx) { - var offset = (yy * width + xx) * 4; - var imgOffset = ((height - yy - 1) * width + xx) * 4; - imgData.data[imgOffset + 0] = 0; - imgData.data[imgOffset + 1] = 0; - imgData.data[imgOffset + 2] = 0; - imgData.data[imgOffset + 3] = 255; - if (Math.abs(refData[offset + 0] - testData[offset + 0]) > tolerance || - Math.abs(refData[offset + 1] - testData[offset + 1]) > tolerance || - Math.abs(refData[offset + 2] - testData[offset + 2]) > tolerance || - Math.abs(refData[offset + 3] - testData[offset + 3]) > tolerance) { - imgData.data[imgOffset] = 255; - same = false; - } - } - } - - var diffImg = null; - if (!same) { - ctx.putImageData(imgData, 0, 0); - diffImg = wtu.makeImage(canvas2d); - } - - var div = document.createElement("div"); - div.className = "testimages"; - wtu.insertImage(div, "ref", refImg); - wtu.insertImage(div, "test", testImg); - if (diffImg) { - wtu.insertImage(div, "diff", diffImg); - } - div.appendChild(document.createElement('br')); - - consoleDiv.appendChild(div); - - if (!same) { - testFailed("images are different"); - } else { - testPassed("images are the same"); - } - - consoleDiv.appendChild(document.createElement('hr')); - } - function draw(vertexShader, fragmentShader) { var program = wtu.createProgram(gl, vertexShader, fragmentShader, testFailed); @@ -717,7 +688,7 @@ var runReferenceImageTest = function(params) { } else { refData = drawFragmentReferenceImage(referenceTextureOrArray); } - var refImg = wtu.makeImage(canvas); + var refImg = wtu.makeImageFromCanvas(canvas); var testData; if (isVertex) { var referenceFragmentShader = wtu.loadShader(gl, referenceFragmentShaderSource, gl.FRAGMENT_SHADER, testFailed); @@ -728,74 +699,18 @@ var runReferenceImageTest = function(params) { testData = draw( referenceVertexShader, testFragmentShader); } - var testImg = wtu.makeImage(canvas); + var testImg = wtu.makeImageFromCanvas(canvas); var testTolerance = shaderInfo.tolerance; // Provide per-test tolerance so that we can increase it only for those desired. if ('tolerance' in tests[ii]) testTolerance = tests[ii].tolerance || 0; - reportResults(refData, refImg, testData, testImg, testTolerance); + _reportResults(refData, refImg, testData, testImg, testTolerance, + width, height, ctx, imgData, wtu, canvas2d, consoleDiv); } } finishTest(); - function reportResults(refData, refImage, testData, testImage, tolerance) { - var same = true; - for (var yy = 0; yy < height; ++yy) { - for (var xx = 0; xx < width; ++xx) { - var offset = (yy * width + xx) * 4; - var imgOffset = ((height - yy - 1) * width + xx) * 4; - imgData.data[imgOffset + 0] = 0; - imgData.data[imgOffset + 1] = 0; - imgData.data[imgOffset + 2] = 0; - imgData.data[imgOffset + 3] = 255; - if (Math.abs(refData[offset + 0] - testData[offset + 0]) > tolerance || - Math.abs(refData[offset + 1] - testData[offset + 1]) > tolerance || - Math.abs(refData[offset + 2] - testData[offset + 2]) > tolerance || - Math.abs(refData[offset + 3] - testData[offset + 3]) > tolerance) { - consoleDiv.appendChild(document.createTextNode('at (' + xx + ',' + yy + '): ref=(' + - refData[offset + 0] + ',' + - refData[offset + 1] + ',' + - refData[offset + 2] + ',' + - refData[offset + 3] + ') test=(' + - testData[offset + 0] + ',' + - testData[offset + 1] + ',' + - testData[offset + 2] + ',' + - testData[offset + 3] + ')')); - consoleDiv.appendChild(document.createElement('br')); - - imgData.data[imgOffset] = 255; - same = false; - } - } - } - - var diffImg = null; - if (!same) { - ctx.putImageData(imgData, 0, 0); - diffImg = wtu.makeImage(canvas2d); - } - - var div = document.createElement("div"); - div.className = "testimages"; - wtu.insertImage(div, "ref", refImg); - wtu.insertImage(div, "test", testImg); - if (diffImg) { - wtu.insertImage(div, "diff", diffImg); - } - div.appendChild(document.createElement('br')); - - consoleDiv.appendChild(div); - - if (!same) { - testFailed("images are different"); - } else { - testPassed("images are the same"); - } - - consoleDiv.appendChild(document.createElement('hr')); - } - function draw(vertexShader, fragmentShader) { var program = wtu.createProgram(gl, vertexShader, fragmentShader, testFailed);