Best JavaScript code snippet using wpt
tex-image-and-sub-image-utils.js
Source:tex-image-and-sub-image-utils.js  
...357  var setupSimpleUintTextureProgram = function(gl, opt_positionLocation, opt_texcoordLocation)358  {359    opt_positionLocation = opt_positionLocation || 0;360    opt_texcoordLocation = opt_texcoordLocation || 1;361    var vs = setupSimpleTextureVertexShader(gl),362        fs = setupSimpleUintTextureFragmentShader(gl);363    if (!vs || !fs) {364      return null;365    }366    var program = WebGLTestUtils.setupProgram(367      gl,368      [vs, fs],369      ['vPosition', 'texCoord0'],370      [opt_positionLocation, opt_texcoordLocation]);371    if (!program) {372      gl.deleteShader(fs);373      gl.deleteShader(vs);374    }375    gl.useProgram(program);376    return program;377  };378  /**379   * Creates a simple signed integer texture program.380   * @param {!WebGLRenderingContext} gl The WebGLRenderingContext to use.381   * @param {number} opt_positionLocation The attrib location for position.382   * @param {number} opt_texcoordLocation The attrib location for texture coords.383   * @return {WebGLProgram}384   */385  var setupSimpleIntTextureProgram = function(gl, opt_positionLocation, opt_texcoordLocation)386  {387    opt_positionLocation = opt_positionLocation || 0;388    opt_texcoordLocation = opt_texcoordLocation || 1;389    var vs = setupSimpleTextureVertexShader(gl),390        fs = setupSimpleIntTextureFragmentShader(gl);391    if (!vs || !fs) {392      return null;393    }394    var program = WebGLTestUtils.setupProgram(395      gl,396      [vs, fs],397      ['vPosition', 'texCoord0'],398      [opt_positionLocation, opt_texcoordLocation]);399    if (!program) {400      gl.deleteShader(fs);401      gl.deleteShader(vs);402    }403    gl.useProgram(program);404    return program;405  };406  /**407   * Creates a simple cube map unsigned integer texture program.408   * @param {!WebGLRenderingContext} gl The WebGLRenderingContext to use.409   * @param {number} opt_positionLocation The attrib location for position.410   * @param {number} opt_texcoordLocation The attrib location for texture coords.411   * @return {WebGLProgram}412   */413  var setupSimpleCubeMapUintTextureProgram = function(gl, opt_positionLocation, opt_texcoordLocation) {414    opt_positionLocation = opt_positionLocation || 0;415    opt_texcoordLocation = opt_texcoordLocation || 1;416    var vs = setupSimpleTextureVertexShader(gl);417    var fs = setupSimpleCubeMapUintTextureFragmentShader(gl);418    if (!vs || !fs) {419      return null;420    }421    var program = WebGLTestUtils.setupProgram(422      gl,423      [vs, fs],424      ['vPosition', 'texCoord0'],425      [opt_positionLocation, opt_texcoordLocation]);426    if (!program) {427      gl.deleteShader(fs);428      gl.deleteShader(vs);429    }430    gl.useProgram(program);431    return program;432  };433  /**434   * Creates a simple cube map signed integer texture program.435   * @param {!WebGLRenderingContext} gl The WebGLRenderingContext to use.436   * @param {number} opt_positionLocation The attrib location for position.437   * @param {number} opt_texcoordLocation The attrib location for texture coords.438   * @return {WebGLProgram}439   */440  var setupSimpleCubeMapIntTextureProgram = function(gl, opt_positionLocation, opt_texcoordLocation) {441    opt_positionLocation = opt_positionLocation || 0;442    opt_texcoordLocation = opt_texcoordLocation || 1;443    var vs = setupSimpleTextureVertexShader(gl);444    var fs = setupSimpleCubeMapIntTextureFragmentShader(gl);445    if (!vs || !fs) {446      return null;447    }448    var program = WebGLTestUtils.setupProgram(449      gl,450      [vs, fs],451      ['vPosition', 'texCoord0'],452      [opt_positionLocation, opt_texcoordLocation]);453    if (!program) {454      gl.deleteShader(fs);455      gl.deleteShader(vs);456    }457    gl.useProgram(program);458    return program;459  };460  /**461   * Creates a simple 3D texture program.462   * @param {!WebGLRenderingContext} gl The WebGLRenderingContext to use.463   * @param {number} opt_positionLocation The attrib location for position.464   * @param {number} opt_texcoordLocation The attrib location for texture coords.465   * @return {WebGLProgram}466   */467  var setupSimple3DTextureProgram = function(gl, opt_positionLocation, opt_texcoordLocation)468  {469    opt_positionLocation = opt_positionLocation || 0;470    opt_texcoordLocation = opt_texcoordLocation || 1;471    var vs = setupSimpleTextureVertexShader(gl),472        fs = setupSimple3DTextureFragmentShader(gl);473    if (!vs || !fs) {474      return null;475    }476    var program = WebGLTestUtils.setupProgram(477      gl,478      [vs, fs],479      ['vPosition', 'texCoord0'],480      [opt_positionLocation, opt_texcoordLocation]);481    if (!program) {482      gl.deleteShader(fs);483      gl.deleteShader(vs);484    }485    gl.useProgram(program);486    return program;487  };488  /**489   * Creates a simple 3D unsigned integer texture program.490   * @param {!WebGLRenderingContext} gl The WebGLRenderingContext to use.491   * @param {number} opt_positionLocation The attrib location for position.492   * @param {number} opt_texcoordLocation The attrib location for texture coords.493   * @return {WebGLProgram}494   */495  var setupSimple3DUintTextureProgram = function(gl, opt_positionLocation, opt_texcoordLocation)496  {497    opt_positionLocation = opt_positionLocation || 0;498    opt_texcoordLocation = opt_texcoordLocation || 1;499    var vs = setupSimpleTextureVertexShader(gl),500        fs = setupSimple3DUintTextureFragmentShader(gl);501    if (!vs || !fs) {502      return null;503    }504    var program = WebGLTestUtils.setupProgram(505      gl,506      [vs, fs],507      ['vPosition', 'texCoord0'],508      [opt_positionLocation, opt_texcoordLocation]);509    if (!program) {510      gl.deleteShader(fs);511      gl.deleteShader(vs);512    }513    gl.useProgram(program);514    return program;515  };516  /**517   * Creates a simple 3D signed integer texture program.518   * @param {!WebGLRenderingContext} gl The WebGLRenderingContext to use.519   * @param {number} opt_positionLocation The attrib location for position.520   * @param {number} opt_texcoordLocation The attrib location for texture coords.521   * @return {WebGLProgram}522   */523  var setupSimple3DIntTextureProgram = function(gl, opt_positionLocation, opt_texcoordLocation)524  {525    opt_positionLocation = opt_positionLocation || 0;526    opt_texcoordLocation = opt_texcoordLocation || 1;527    var vs = setupSimpleTextureVertexShader(gl),528        fs = setupSimple3DIntTextureFragmentShader(gl);529    if (!vs || !fs) {530      return null;531    }532    var program = WebGLTestUtils.setupProgram(533      gl,534      [vs, fs],535      ['vPosition', 'texCoord0'],536      [opt_positionLocation, opt_texcoordLocation]);537    if (!program) {538      gl.deleteShader(fs);539      gl.deleteShader(vs);540    }541    gl.useProgram(program);542    return program;543  };544  /**545   * Creates a simple 2D_ARRAY texture program.546   * @param {!WebGLRenderingContext} gl The WebGLRenderingContext to use.547   * @param {number} opt_positionLocation The attrib location for position.548   * @param {number} opt_texcoordLocation The attrib location for texture coords.549   * @return {WebGLProgram}550   */551  var setupSimple2DArrayTextureProgram = function(gl, opt_positionLocation, opt_texcoordLocation)552  {553    opt_positionLocation = opt_positionLocation || 0;554    opt_texcoordLocation = opt_texcoordLocation || 1;555    var vs = setupSimpleTextureVertexShader(gl),556        fs = setupSimple2DArrayTextureFragmentShader(gl);557    if (!vs || !fs) {558      return null;559    }560    var program = WebGLTestUtils.setupProgram(561      gl,562      [vs, fs],563      ['vPosition', 'texCoord0'],564      [opt_positionLocation, opt_texcoordLocation]);565    if (!program) {566      gl.deleteShader(fs);567      gl.deleteShader(vs);568    }569    gl.useProgram(program);570    return program;571  };572  /**573   * Creates a simple 2D_ARRAY unsigned integer texture program.574   * @param {!WebGLRenderingContext} gl The WebGLRenderingContext to use.575   * @param {number} opt_positionLocation The attrib location for position.576   * @param {number} opt_texcoordLocation The attrib location for texture coords.577   * @return {WebGLProgram}578   */579  var setupSimple2DArrayUintTextureProgram = function(gl, opt_positionLocation, opt_texcoordLocation)580  {581    opt_positionLocation = opt_positionLocation || 0;582    opt_texcoordLocation = opt_texcoordLocation || 1;583    var vs = setupSimpleTextureVertexShader(gl),584        fs = setupSimple2DArrayUintTextureFragmentShader(gl);585    if (!vs || !fs) {586      return null;587    }588    var program = WebGLTestUtils.setupProgram(589      gl,590      [vs, fs],591      ['vPosition', 'texCoord0'],592      [opt_positionLocation, opt_texcoordLocation]);593    if (!program) {594      gl.deleteShader(fs);595      gl.deleteShader(vs);596    }597    gl.useProgram(program);598    return program;599  };600  /**601   * Creates a simple 2D_ARRAY signed integer texture program.602   * @param {!WebGLRenderingContext} gl The WebGLRenderingContext to use.603   * @param {number} opt_positionLocation The attrib location for position.604   * @param {number} opt_texcoordLocation The attrib location for texture coords.605   * @return {WebGLProgram}606   */607  var setupSimple2DArrayIntTextureProgram = function(gl, opt_positionLocation, opt_texcoordLocation)608  {609    opt_positionLocation = opt_positionLocation || 0;610    opt_texcoordLocation = opt_texcoordLocation || 1;611    var vs = setupSimpleTextureVertexShader(gl),612        fs = setupSimple2DArrayIntTextureFragmentShader(gl);613    if (!vs || !fs) {614      return null;615    }616    var program = WebGLTestUtils.setupProgram(617      gl,618      [vs, fs],619      ['vPosition', 'texCoord0'],620      [opt_positionLocation, opt_texcoordLocation]);621    if (!program) {622      gl.deleteShader(fs);623      gl.deleteShader(vs);624    }625    gl.useProgram(program);...Using AI Code Generation
1function setupSimpleTextureVertexShader(gl, shader) {2    var vertexShader = gl.createShader(gl.VERTEX_SHADER);3    gl.shaderSource(vertexShader, shader);4    gl.compileShader(vertexShader);5    return vertexShader;6}7function setupSimpleTextureFragmentShader(gl, shader) {8    var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);9    gl.shaderSource(fragmentShader, shader);10    gl.compileShader(fragmentShader);11    return fragmentShader;12}13function setupSimpleTextureProgram(gl, vertexShader, fragmentShader) {14    var program = gl.createProgram();15    gl.attachShader(program, vertexShader);16    gl.attachShader(program, fragmentShader);17    gl.linkProgram(program);18    gl.useProgram(program);19    return program;20}21function setupSimpleTextureBuffers(gl, vertices, indices) {22    var vertexBuffer = gl.createBuffer();23    gl.bindBuffer(gl.ARRAY_BUFFER, vertexBuffer);24    gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(vertices), gl.STATIC_DRAW);25    vertexBuffer.itemSize = 3;26    vertexBuffer.numberOfItems = 4;27    var indexBuffer = gl.createBuffer();28    gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, indexBuffer);29    gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint16Array(indices), gl.STATIC_DRAW);30    indexBuffer.itemSize = 1;31    indexBuffer.numberOfItems = 6;32    return [vertexBuffer, indexBuffer];33}34function setupSimpleTextureTexture(gl, image) {35    var texture = gl.createTexture();36    gl.bindTexture(gl.TEXTURE_2D, texture);37    gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);38    gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, glUsing AI Code Generation
1function setupSimpleTextureVertexShader() {2    var canvas = document.getElementById("canvas");3    var gl = canvas.getContext("webgl");4    var vertexShader = gl.createShader(gl.VERTEX_SHADER);5    var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);6    gl.shaderSource(vertexShader, "attribute vec4 a_position;7    attribute vec2 a_texCoord;8    varying vec2 v_texCoord;9    void main() {10        gl_Position = a_position;11        v_texCoord = a_texCoord;12    }");13    gl.shaderSource(fragmentShader, "precision mediump float;14    varying vec2 v_texCoord;15    uniform sampler2D u_texture;16    void main() {17        gl_FragColor = texture2D(u_texture, v_texCoord);18    }");19    gl.compileShader(vertexShader);20    gl.compileShader(fragmentShader);21    var program = gl.createProgram();22    gl.attachShader(program, vertexShader);23    gl.attachShader(program, fragmentShader);24    gl.linkProgram(program);25    gl.useProgram(program);26    return program;27}28function setupSimpleTextureFragmentShader() {29    var canvas = document.getElementById("canvas");30    var gl = canvas.getContext("webgl");31    var vertexShader = gl.createShader(gl.VERTEX_SHADER);32    var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);33    gl.shaderSource(vertexShader, "attribute vec4 a_position;34    attribute vec2 a_texCoord;35    varying vec2 v_texCoord;36    void main() {37        gl_Position = a_position;38        v_texCoord = a_texCoord;39    }");40    gl.shaderSource(fragmentShader, "precision mediump float;41    varying vec2 v_texCoord;42    uniform sampler2D u_texture;43    void main() {44        gl_FragColor = texture2D(u_texture, v_texCoord);45    }");46    gl.compileShader(vertexShader);47    gl.compileShader(fragmentShader);48    var program = gl.createProgram();49    gl.attachShader(program, vertexShader);50    gl.attachShader(program, fragmentShader);51    gl.linkProgram(program);52    gl.useProgram(program);53    return program;54}55function setupSimpleTexture() {56    var canvas = document.getElementById("canvas");57    var gl = canvas.getContext("webgl");58    var program = setupSimpleTextureVertexShader();Using AI Code Generation
1function setupSimpleTextureVertexShader(gl) {2  var vertexShader = gl.createShader(gl.VERTEX_SHADER);3  gl.shaderSource(vertexShader, [4    'precision mediump float;',5    'attribute vec4 a_position;',6    'attribute vec2 a_texCoord;',7    'varying vec2 v_texCoord;',8    'void main() {',9    '  gl_Position = a_position;',10    '  v_texCoord = a_texCoord;',11    '}',12  ].join('13'));14  gl.compileShader(vertexShader);15  return vertexShader;16}17function setupSimpleTextureFragmentShader(gl) {18  var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);19  gl.shaderSource(fragmentShader, [20    'precision mediump float;',21    'varying vec2 v_texCoord;',22    'uniform sampler2D u_texture;',23    'void main() {',24    '  gl_FragColor = texture2D(u_texture, v_texCoord);',25    '}',26  ].join('27'));28  gl.compileShader(fragmentShader);29  return fragmentShader;30}31function setupProgram(gl, vertexShader, fragmentShader) {32  var program = gl.createProgram();33  gl.attachShader(program, vertexShader);34  gl.attachShader(program, fragmentShader);35  gl.linkProgram(program);36  gl.useProgram(program);37  return program;38}39function setupTexCoords(gl, program, texCoordBuffer) {40  var texCoordLocation = gl.getAttribLocation(program, 'a_texCoord');41  gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer);42  gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0);43  gl.enableVertexAttribArray(texCoordLocation);44}45function setupPositions(gl, program, positionBuffer) {46  var positionLocation = gl.getAttribLocation(program, 'a_position');47  gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer);48  gl.vertexAttribPointer(positionLocation, 2, gl.FLOAT, false, 0, 0);49  gl.enableVertexAttribArray(positionLocation);50}Using AI Code Generation
1var vertexShader = setupSimpleTextureVertexShader(gl, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2);2function setupSimpleTextureVertexShader(gl, a_position, a_texCoord, u_texUnit, u_textureSize, u_textureScale, u_textureOffset, u_textureRotation, u_textureFlipY, u_texturePremultiplyAlpha, u_textureColorSpaceConversion) {3  var vertexShader = setupVertexShader(gl, vertexShaderSource);4  return vertexShader;5}6function setupVertexShader(gl, vertexShaderSource) {7  var vertexShader = gl.createShader(gl.VERTEX_SHADER);8  return vertexShader;9}10importScripts('wpt.js');11var vertexShader = setupSimpleTextureVertexShader(gl, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2);Using AI Code Generation
1var wptTestHelper = {};2wptTestHelper.setupSimpleTextureVertexShader = function(gl, textureUnit) {3  var vertexShader = wptTestHelper.loadShader(gl, 'vertex', 'vertex_shader');4  var fragmentShader = wptTestHelper.loadShader(gl, 'fragment', 'fragment_shader');5  var program = wptTestHelper.createProgram(gl, [vertexShader, fragmentShader]);6  gl.useProgram(program);7  gl.uniform1i(gl.getUniformLocation(program, 'u_texture'), textureUnit);8  return program;9};10var wptTestHelper = {};11wptTestHelper.loadShader = function(gl, type, id) {12  var shaderScript = document.getElementById(id);13  var shaderSource = shaderScript.text;14  var shader;15  if (type == 'fragment') {16    shader = gl.createShader(gl.FRAGMENT_SHADER);17  } else if (type == 'vertex') {18    shader = gl.createShader(gl.VERTEX_SHADER);19  } else {20    return null;21  }22  gl.shaderSource(shader, shaderSource);23  gl.compileShader(shader);24  if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {25    console.log(gl.getShaderInfoLog(shader));26    return null;27  }28  return shader;29};30wptTestHelper.createProgram = function(gl, shaders) {31  var program = gl.createProgram();32  for (var i = 0; i < shaders.length; ++i) {33    gl.attachShader(program, shaders[i]);34  }35  gl.linkProgram(program);36  if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {37    console.log(gl.getProgramInfoLog(program));38    return null;39  }40  return program;41};42wptTestHelper.createTexture = function(gl, width, height, data) {43  var texture = gl.createTexture();44  gl.bindTexture(gl.TEXTURE_2D, texture);45  gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, data);46  gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);47  gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);48  gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMPUsing AI Code Generation
1var gl;2var shaderProgram;3var vertexPositionBuffer;4var vertexIndexBuffer;5var vertexTextureCoordBuffer;6var texture;7function initGL(canvas) {8  try {9    gl = canvas.getContext("experimental-webgl");10    gl.viewportWidth = canvas.width;11    gl.viewportHeight = canvas.height;12  } catch (e) {13  }14  if (!gl) {15    alert("Could not initialise WebGL, sorry :-(");16  }17}18function getShader(gl, id) {19  var shaderScript = document.getElementById(id);20  if (!shaderScript) {21    return null;22  }23  var str = "";24  var k = shaderScript.firstChild;25  while (k) {26    if (k.nodeType == 3) {27      str += k.textContent;28    }29    k = k.nextSibling;30  }31  var shader;32  if (shaderScript.type == "x-shader/x-fragment") {33    shader = gl.createShader(gl.FRAGMENT_SHADER);34  } else if (shaderScript.type == "x-shader/x-vertex") {35    shader = gl.createShader(gl.VERTEX_SHADER);36  } else {37    return null;38  }39  gl.shaderSource(shader, str);40  gl.compileShader(shader);41  if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {42    alert(gl.getShaderInfoLog(shader));43    return null;44  }45  return shader;46}47function initShaders() {48  var fragmentShader = getShader(gl, "shader-fs");49  var vertexShader = getShader(gl, "shader-vs");50  shaderProgram = gl.createProgram();51  gl.attachShader(shaderProgram, vertexShader);52  gl.attachShader(shaderProgram, fragmentShader);53  gl.linkProgram(shaderProgram);54  if (!gl.getProgramParameter(shaderProgram, gl.LINK_STATUS)) {55    alert("Could not initialise shaders");56  }57  gl.useProgram(shaderProgram);58  shaderProgram.vertexPositionAttribute = gl.getAttribLocation(shaderProgram, "aVertexPosition");59  gl.enableVertexAttribArray(shaderProgram.vertexPositionAttribute);60  shaderProgram.textureCoordAttribute = gl.getAttribLocation(shaderProgram, "aTextureCoord");61  gl.enableVertexAttribArray(shaderProgram.textureCoordAttribute);62  shaderProgram.samplerUniform = gl.getUniformLocation(shaderProgram, "uSampler");63}64function initBuffers() {Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
