Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All
Expand Minimize

shaderSource method

Sets and replaces shader source code in a shader object.

IE11

 

Syntax

WebGLRenderingContext.shaderSource(shader, source);

Parameters

shader [in]

Type: WebGLShader

The shader object to set the source code on.

source [in]

Type: String

GLSL source code.

Return value

This method does not return a value.

Remarks

WebGL errorDescription
gl.INVALID_VALUEIf shader isn't a WebGL object or value.
gl.INVALID_OPERATIONIf shader isn't a WebGLShader object.

 

Examples

The following example copies the shader source into a shader object using shaderSource. 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

WebGLRenderingContext

 

 

Show:
© 2015 Microsoft