WebGLShader object

The object that specifies what and how content is to be drawn to the screen.

IE11

 

Syntax


<body>
  <canvas id="canvas"></canvas>
  ...
<script>
  var gl = document.getElementById("canvas").getContext("experimental-webgl");
  ...
  var webGLShader = gl.createShader(type);

DOM Information

Inheritance Hierarchy

 WebGLObject
   WebGLShader

Members

The WebGLShader object does not define any members.

Remarks

Shaders are created using createShader.

Examples

The following example gets shader code from a <script> tag in an HTML document, and creates a fragment or vertex shader based on its type. For more info on this example, see Get started with WebGL.


// Loads a shader from a script tag
// Parameters:
//   WebGL context
//   id of script element containing the shader to load
function getShader(gl, id) {
  var shaderScript = document.getElementById(id);

  // error - element with supplied id couldn't be retrieved
  if (!shaderScript) {
    return null;
  }

  // If successful, build a string representing the shader source
  var str = "";
  var k = shaderScript.firstChild;
  while (k) {
    if (k.nodeType == 3) {
      str += k.textContent;
    }
    k = k.nextSibling;
  }

  var shader;

  // Create shaders based on the type we set
  //   note: these types are commonly used, but not required
  if (shaderScript.type == "x-shader/x-fragment") {
    shader = gl.createShader(gl.FRAGMENT_SHADER);
  } else if (shaderScript.type == "x-shader/x-vertex") {
    shader = gl.createShader(gl.VERTEX_SHADER);
  } else {
    return null;
  }

  gl.shaderSource(shader, str);
  gl.compileShader(shader);

  // Check the compile status, return an error if failed
  if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
    console.log(gl.getShaderInfoLog(shader));
    return null;
  }

  return shader;
}



 

 

Show:
© 2014 Microsoft