<!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]; var blob = null; 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 generateTest() { var bitmaps = []; var canvas = document.getElementById("example"); gl = canvas.getContext("webgl"); gl.clearColor(0,0,0,1); gl.clearDepth(1); var bitmap; // bitmap will be in unpremultiplied format createImageBitmap(blob, {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.overridePreference("WebKitWebGLEnabled", "1"); testRunner.dumpAsText(); } var xhr = new XMLHttpRequest(); xhr.open("GET", 'resources/red-green-semi-transparent.png'); xhr.responseType = 'blob'; xhr.send(); xhr.onload = function() { blob = xhr.response; 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>