tex-image-and-sub-image-2d-with-image-bitmap-from-image-bitmap.js (2033B)
1 /* 2 Copyright (c) 2019 The Khronos Group Inc. 3 Use of this source code is governed by an MIT-style license that can be 4 found in the LICENSE.txt file. 5 */ 6 7 function generateTest(internalFormat, pixelFormat, pixelType, prologue, resourcePath, defaultContextVersion) { 8 var wtu = WebGLTestUtils; 9 var tiu = TexImageUtils; 10 var gl = null; 11 var successfullyParsed = false; 12 13 function init() 14 { 15 description('Verify texImage2D and texSubImage2D code paths taking ImageBitmap created from an ImageBitmap (' + internalFormat + '/' + pixelFormat + '/' + pixelType + ')'); 16 17 if(!window.createImageBitmap || !window.ImageBitmap) { 18 finishTest(); 19 return; 20 } 21 22 // Set the default context version while still allowing the webglVersion URL query string to override it. 23 wtu.setDefault3DContextVersion(defaultContextVersion); 24 gl = wtu.create3DContext("example"); 25 26 if (!prologue(gl)) { 27 finishTest(); 28 return; 29 } 30 31 gl.clearColor(0,0,0,1); 32 gl.clearDepth(1); 33 gl.disable(gl.BLEND); 34 35 var imageData = new ImageData(new Uint8ClampedArray( 36 [255, 0, 0, 255, 37 255, 0, 0, 0, 38 0, 255, 0, 255, 39 0, 255, 0, 0]), 40 2, 2); 41 42 createImageBitmap(imageData, {imageOrientation: "none", premultiplyAlpha: "none"}) 43 .catch( () => { 44 testPassed("createImageBitmap with options may be rejected if it is not supported. Retrying without options."); 45 return createImageBitmap(imageData); 46 }).then( bitmap => { 47 return runImageBitmapTest(bitmap, 0, internalFormat, pixelFormat, pixelType, gl, tiu, wtu, false); 48 }, () => { 49 testFailed("createImageBitmap(imageData) should succeed."); 50 }).then(() => { 51 finishTest(); 52 }); 53 } 54 55 return init; 56 }