Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
WebGLShader

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;
}



See also

WebGLObject

 

 

Show:
© 2015 Microsoft