{
const canvas = this||html`<canvas width=${width} height="300" ></canvas>`;
yield canvas;
const gl = canvas.getContext('webgl2');
const vertexShader = createShader(gl,gl.VERTEX_SHADER,vertexShaderCode);
const fragmentShader = createShader(gl,gl.FRAGMENT_SHADER,fragmentShaderCode);
const program = createProgram(gl,vertexShader,fragmentShader);
const positionLoc = gl.getAttribLocation(program,'a_position');
const resolutionLoc = gl.getUniformLocation(program,'u_resolution');
const translationLoc = gl.getUniformLocation(program,'u_translation');
const rotationLoc = gl.getUniformLocation(program,'u_rotation');
const colorLoc = gl.getUniformLocation(program,'u_color');
const posBuffer = gl.createBuffer();
const vao = gl.createVertexArray();
gl.bindVertexArray(vao);
gl.enableVertexAttribArray(positionLoc);
gl.bindBuffer(gl.ARRAY_BUFFER, posBuffer);
setGeometry(gl)
gl.vertexAttribPointer(positionLoc,2,gl.FLOAT,false,0,0);
drawScene(gl,program,vao,resolutionLoc,colorLoc,translationLoc,rotationLoc);
}