Screen constructor

Screen(
  1. RenderingContext gl,
  2. Camera camera
)

Implementation

Screen(this.gl, this.camera) {
   for (int r = 0; r < 6; r++) {
       for (int g = 0; g < 6; g++) {
           for (int b = 0; b < 6; b++) {
               int rr = (r * 255 ~/ 5);
               int gg = (g * 255 ~/ 5);
               int bb = (b * 255 ~/ 5);
               colours.add(rr << 16 | gg << 8 | bb);
           }
       }
   }

  worldTransformLocation = gl.getUniformLocation(testShader.program, "u_world");
  viewTransformLocation = gl.getUniformLocation(testShader.program, "u_view");
  projTransformLocation = gl.getUniformLocation(testShader.program, "u_proj");

  texTransformLocation = gl.getUniformLocation(testShader.program, "u_text");

  colorLocation1 = gl.getUniformLocation(testShader.program, "u_col1");
  colorLocation2 = gl.getUniformLocation(testShader.program, "u_col2");
  colorLocation3 = gl.getUniformLocation(testShader.program, "u_col3");
  colorLocation4 = gl.getUniformLocation(testShader.program, "u_col4");

  Float32List vertexArray = Float32List(4*5);
  vertexArray.setAll(0*5, [-0.5, -0.5, 0.0, 1.0, 1.0]);
  vertexArray.setAll(1*5, [-0.5, 0.5, 0.0, 1.0, 0.0]);
  vertexArray.setAll(2*5, [0.5, 0.5, 0.0, 0.0, 0.0]);
  vertexArray.setAll(3*5, [0.5, -0.5, 0.0, 0.0, 1.0]);

  Int16List indexArray = Int16List(6);
  indexArray.setAll(0, [0, 1, 2, 0, 2, 3]);

  WebGL.Buffer vertexBuffer = gl.createBuffer();
  gl.bindBuffer(WebGL.WebGL.ARRAY_BUFFER, vertexBuffer);
  gl.bufferData(WebGL.WebGL.ARRAY_BUFFER, vertexArray, WebGL.WebGL.STATIC_DRAW);
  gl.vertexAttribPointer(posLocation, 3, WebGL.WebGL.FLOAT, false, 5 * Float32List.bytesPerElement, 0 * Float32List.bytesPerElement);
  gl.enableVertexAttribArray(posLocation);
  gl.vertexAttribPointer(texLocation,	2, WebGL.WebGL.FLOAT, false, 5 * Float32List.bytesPerElement, 3 * Float32List.bytesPerElement);
  gl.enableVertexAttribArray(texLocation);

  WebGL.Buffer indexBuffer = gl.createBuffer();
  gl.bindBuffer(WebGL.WebGL.ELEMENT_ARRAY_BUFFER, indexBuffer);
  gl.bufferData(WebGL.WebGL.ELEMENT_ARRAY_BUFFER, indexArray, WebGL.WebGL.STATIC_DRAW);
}