compileShader method

void compileShader(
  1. WebGLShader shader, [
  2. bool checkForErrors = true
])

Implementation

void compileShader(WebGLShader shader, [bool checkForErrors = true]) {
  startCheck('compileShader');
  gl.glCompileShader(shader.id);

  if (checkForErrors) {
    gl.glGetShaderiv(shader.id, GL_COMPILE_STATUS, _intBuffer);

    if (_intBuffer.value == GL_FALSE) {
      gl.glGetShaderiv(shader.id, GL_INFO_LOG_LENGTH, _intBuffer);
      final int logLen = _intBuffer.value;

      String message = "Shader compilation failed.";
      if (logLen > 0) {
        final infoLog = calloc<Int8>(logLen);
        gl.glGetShaderInfoLog(shader.id, logLen, nullptr, infoLog);
        message = infoLog.cast<Utf8>().toDartString();

        calloc.free(infoLog);
      }
      throw OpenGLException(message, 0);
    }
  }
}