initialize method

void initialize()

Implementation

void initialize() {
  var programHandle = loadProgram(_VertexShader,
      _FragmentShader.replaceAll("{l2r}", leftToRight ? "1.0 - " : ""));
  if (programHandle == null) return;
  _programHandle = programHandle;

  var ret = context.getProgramParameter(_programHandle, WebGL.LINK_STATUS);
  if (ret == 0) {
    var log = context.getProgramInfoLog(_programHandle);
    print("FlipTexture:$log");
  }

  context.useProgram(_programHandle);
  _positionAttr = context.getAttribLocation(_programHandle, "position");
  _texCoordAttr = context.getAttribLocation(_programHandle, "tex_coord");
  _textureUniform = context.getUniformLocation(_programHandle, "texture");
  _percentUniform = context.getUniformLocation(_programHandle, "percent");
  _tiltUniform = context.getUniformLocation(_programHandle, "tilt");
  _sizeUniform = context.getUniformLocation(_programHandle, "size");
  _rollSizeUniform = context.getUniformLocation(_programHandle, "roll_size");

  Float32List pos = Float32List.fromList([
    -1.0,
    1.0,
    0.0,
    1.0,
    1.0,
    0.0,
    -1.0,
    -1.0,
    0.0,
    1.0,
    -1.0,
    0.0,
  ]);

  Float32List uv = Float32List.fromList([
    0,
    0,
    1,
    0,
    0,
    1,
    1,
    1,
  ]);

  // VBO will cause crash on android simulator
  _posBuffer = context.createBuffer();
  context.bindBuffer(WebGL.ARRAY_BUFFER, _posBuffer);
  context.bufferData(WebGL.ARRAY_BUFFER, pos, WebGL.STATIC_DRAW);

  _uvBuffer = context.createBuffer();
  context.bindBuffer(WebGL.ARRAY_BUFFER, _uvBuffer);
  context.bufferData(WebGL.ARRAY_BUFFER, uv, WebGL.STATIC_DRAW);
}