| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="./resources/webgl-test-utils-full.js"></script> |
| <script src="./resources/tex-image-and-sub-image-utils.js"></script> |
| <script src="./resources/tex-image-and-sub-image-image-bitmap-utils.js"></script> |
| <script src="../../resources/js-test.js"></script> |
| <script> |
| |
| window.jsTestIsAsync = true; |
| |
| var wtu = WebGLTestUtils; |
| var tiu = TexImageUtils; |
| var gl = null; |
| var internalFormat = "RGBA"; |
| var pixelFormat = "RGBA"; |
| var pixelType = "UNSIGNED_BYTE"; |
| var redColor = [255, 0, 0]; |
| var greenColor = [0, 255, 0]; |
| var blackColor = [0, 0, 0]; |
| var darkRed = [26, 0, 0]; |
| var darkGreen = [0, 26, 0]; |
| |
| function promiseRejected() |
| { |
| document.getElementById("results").innerHTML = "Promise <span style='color:red'>REJECTED</span>"; |
| } |
| |
| function pass() |
| { |
| document.getElementById("results").innerHTML = "Test <span style='color:green'>PASSED</span>"; |
| } |
| |
| function setCanvasToRedGreen(ctx) { |
| ctx.canvas.width = 2; |
| ctx.canvas.height = 2; |
| var width = ctx.canvas.width; |
| var halfWidth = Math.floor(width / 2); |
| var height = ctx.canvas.height; |
| var halfHeight = Math.floor(height / 2); |
| ctx.fillStyle = "rgba(255, 0, 0, 1)"; |
| ctx.fillRect(0, 0, halfWidth, halfHeight); |
| ctx.fillStyle = "rgba(255, 0, 0, 0.1)"; |
| ctx.fillRect(halfWidth, 0, halfWidth, halfHeight); |
| ctx.fillStyle = "rgba(0, 255, 0, 1)"; |
| ctx.fillRect(0, halfHeight, halfWidth, halfHeight); |
| ctx.fillStyle = "rgba(0, 255, 0, 0.1)"; |
| ctx.fillRect(halfWidth, halfHeight, halfWidth, halfHeight); |
| } |
| |
| function generateTest() |
| { |
| var bitmaps = []; |
| |
| var canvas = document.getElementById("example"); |
| gl = canvas.getContext("webgl"); |
| |
| gl.clearColor(0,0,0,1); |
| gl.clearDepth(1); |
| |
| var testCanvas = document.createElement('canvas'); |
| var ctx = testCanvas.getContext("2d"); |
| setCanvasToRedGreen(ctx); |
| |
| var bitmap; // bitmap will be in unpremultiplied format |
| createImageBitmap(testCanvas, {imageOrientation: "none", premultiplyAlpha: "none"}).then(function(imageBitmap) { |
| bitmap = imageBitmap; |
| var p1 = createImageBitmap(bitmap).then(function(imageBitmap) { bitmaps.defaultOption = imageBitmap }); |
| var p2 = createImageBitmap(bitmap, {imageOrientation: "none", premultiplyAlpha: "premultiply"}).then(function(imageBitmap) { bitmaps.noFlipYPremul = imageBitmap }); |
| var p3 = createImageBitmap(bitmap, {imageOrientation: "none", premultiplyAlpha: "default"}).then(function(imageBitmap) { bitmaps.noFlipYDefault = imageBitmap }); |
| var p4 = createImageBitmap(bitmap, {imageOrientation: "none", premultiplyAlpha: "none"}).then(function(imageBitmap) { bitmaps.noFlipYUnpremul = imageBitmap }); |
| var p5 = createImageBitmap(bitmap, {imageOrientation: "flipY", premultiplyAlpha: "premultiply"}).then(function(imageBitmap) { bitmaps.flipYPremul = imageBitmap }); |
| var p6 = createImageBitmap(bitmap, {imageOrientation: "flipY", premultiplyAlpha: "default"}).then(function(imageBitmap) { bitmaps.flipYDefault = imageBitmap }); |
| var p7 = createImageBitmap(bitmap, {imageOrientation: "flipY", premultiplyAlpha: "none"}).then(function(imageBitmap) { bitmaps.flipYUnpremul = imageBitmap }); |
| var p8 = createImageBitmap(bitmap).then(function(imageBitmap) { bitmaps.colorSpaceDef = imageBitmap }); |
| var p9 = createImageBitmap(bitmap, {colorSpaceConversion: "none"}).then(function(imageBitmap) { bitmaps.colorSpaceNone = imageBitmap }); |
| var p10 = createImageBitmap(bitmap, {colorSpaceConversion: "default"}).then(function(imageBitmap) { bitmaps.colorSpaceDefault = imageBitmap }); |
| Promise.all([p1, p2, p3, p4, p5, p6, p7, p8, p9, p10]).then(function() { |
| var alphaVal = 0.5; |
| var testPassed = runTest(bitmaps, alphaVal, false); |
| if (testPassed) |
| pass(); |
| finishJSTest(); |
| }, function() { |
| promiseRejected(); |
| finishJSTest(); |
| }); |
| }, function() { |
| promiseRejected(); |
| finishJSTest(); |
| }); |
| } |
| |
| function init() |
| { |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| } |
| generateTest(); |
| } |
| </script> |
| </head> |
| <body onload="init()"> |
| <canvas id="texcanvas" width="2" height="2"></canvas> |
| <canvas id="example" width="32" height="32"></canvas> |
| <div id="results">Test <span style="color:red">FAILED</span></div> |
| </body> |
| </html> |