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