createShader static method

int createShader(
  1. OpenGLContextES gl,
  2. int type,
  3. String source
)

Creates a shader.

Takes a type that can be a gl.VERTEX_SHADER or gl.FRAGMENT_SHADER

and a source the shader source as a String.

Finaly returns the shader id.

Implementation

static int createShader(OpenGLContextES gl, int type, String source) {
  int shader = gl.createShader(type);
  gl.shaderSource(shader, source);
  gl.compileShader(shader);
  var result = gl.getShaderParameter(shader, gl.COMPILE_STATUS);
  if (result == GL_FALSE) {
    String shaderName = type == GL_VERTEX_SHADER ? 'vertex' : 'fragment';
    // gl.deleteShader(shader);
    throw 'Failed to compile $shaderName shader! the log is: ${gl.getShaderInfoLog(shader)}';
  }
  return shader;
}